PHPackages                             creativitykills/api-starter-kit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. creativitykills/api-starter-kit

ActiveProject[API Development](/categories/api)

creativitykills/api-starter-kit
===============================

API starter kit for the Laravel framework

v0.0.4(8mo ago)12MITPHPPHP ^8.4CI passing

Since Aug 30Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/CreativityKills/api-starter-kit)[ Packagist](https://packagist.org/packages/creativitykills/api-starter-kit)[ RSS](/packages/creativitykills-api-starter-kit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (18)Versions (5)Used By (0)

API Starter Kit
===============

[](#api-starter-kit)

Minimal Laravel starter kit aimed at accelerating API development with authentication, and comprehensive documentation tooling built in.

Whats Inside?
-------------

[](#whats-inside)

✨ **Authentication Ready**

- Laravel Fortify as the backend for user management
    - Create access token
    - Refresh access token
    - Revoke access token
- Laravel Sanctum integration for API token management with refresh token support
- Token-based authentication with configurable abilities and access levels

📚 **Auto-Generated Documentation**[![API Documentation](https://private-user-images.githubusercontent.com/807318/483892764-c28ced8f-4475-47eb-8a88-d1a93eb6deef.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NTIzNDEsIm5iZiI6MTc3NTQ1MjA0MSwicGF0aCI6Ii84MDczMTgvNDgzODkyNzY0LWMyOGNlZDhmLTQ0NzUtNDdlYi04YTg4LWQxYTkzZWI2ZGVlZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNlQwNTA3MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wOTQzZTk5NmM1ZDkyMGFiMDdlZjEwMDFmNDM5MDg1ZmFkZTFjYzJmZjdkZTE5ZDYzYjVjODQzYmNjN2JiYTEzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.0QPz9v1bPGGqQZqa0i7R85wYKa2mIqrhvdYdFZaTZpE)](https://private-user-images.githubusercontent.com/807318/483892764-c28ced8f-4475-47eb-8a88-d1a93eb6deef.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NTIzNDEsIm5iZiI6MTc3NTQ1MjA0MSwicGF0aCI6Ii84MDczMTgvNDgzODkyNzY0LWMyOGNlZDhmLTQ0NzUtNDdlYi04YTg4LWQxYTkzZWI2ZGVlZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNlQwNTA3MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wOTQzZTk5NmM1ZDkyMGFiMDdlZjEwMDFmNDM5MDg1ZmFkZTFjYzJmZjdkZTE5ZDYzYjVjODQzYmNjN2JiYTEzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.0QPz9v1bPGGqQZqa0i7R85wYKa2mIqrhvdYdFZaTZpE)

[![Postman Screenshot](https://private-user-images.githubusercontent.com/807318/483892963-098d9599-3211-43b1-b587-28919d0d1e73.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NTIzNDEsIm5iZiI6MTc3NTQ1MjA0MSwicGF0aCI6Ii84MDczMTgvNDgzODkyOTYzLTA5OGQ5NTk5LTMyMTEtNDNiMS1iNTg3LTI4OTE5ZDBkMWU3My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNlQwNTA3MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMmM4ZDI0OWNiODhjZTcxNDRlNjlmOGVjM2RlNTQ1ZGQxNTkzMDk4OThhMmNlZWFhOTFlOWVhZTY2ODNhODlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.sl90F-t65LAAtlrfUGESJCm2DNyM_JJ7rfiQPuM0tnU)](https://private-user-images.githubusercontent.com/807318/483892963-098d9599-3211-43b1-b587-28919d0d1e73.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NTIzNDEsIm5iZiI6MTc3NTQ1MjA0MSwicGF0aCI6Ii84MDczMTgvNDgzODkyOTYzLTA5OGQ5NTk5LTMyMTEtNDNiMS1iNTg3LTI4OTE5ZDBkMWU3My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNlQwNTA3MjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMmM4ZDI0OWNiODhjZTcxNDRlNjlmOGVjM2RlNTQ1ZGQxNTkzMDk4OThhMmNlZWFhOTFlOWVhZTY2ODNhODlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.sl90F-t65LAAtlrfUGESJCm2DNyM_JJ7rfiQPuM0tnU)- Scribe integration with custom extensions for enhanced API docs
    - Improved Postman collection generation with pre-request script for automatic token generation for all endpoints
    - Supports environment variables in API Documentation
- Structured response documentation with reusable classes (using Attributes)
- Structured API Documentation with groups &amp; subgroups (using Attributes)

🏗️ **Optional Action-based Architecture**

- Action-based architecture for business logic
- DTOs for type-safe data transfer

🧪 **Testing Foundation**

- Pre-configured Pest testing setup, with existing tests for authentication
- PHPStan for static analysis
- PHP CS Fixer for code style

Quick Start
-----------

[](#quick-start)

1. **Install using Laravel new command:**See ```
    laravel new example-api --using=creativitykills/api-starter-kit
    ```
2. **Using Composer**```
    composer create-project creativitykills/api-starter-kit
    ```

Your API documentation will be available at `/docs` and your API endpoints will be ready for authentication and token management.

Default API Endpoints
---------------------

[](#default-api-endpoints)

- **POST** `/v1/auth/token/create` - User authentication and token issuance
- **POST** `/v1/auth/token/refresh` - Refresh access tokens
- **POST** `/v1/auth/token/revoke` - Revoke access tokens

### Project Structure

[](#project-structure)

The starter kit remains largely unchanged from the original Laravel application. However, here are **some of the notable changes** that have been made to the project.

Click to expand project structure```
api-starter-kit/
├── app/
│   ├── Actions/
│   │   ├── Fortify/                         # User management actions (Laravel Fortify)
│   │   └── Sanctum/                         # API token management actions (Laravel Sanctum)
│   │       └── IssueAccessToken.php         # This action can be used to issue API tokens
│   ├── Contracts/                           # Interface definitions
│   │   └── SupportsDocumentation.php        # This interface is used to document API endpoints, usable in Requests & Actions
│   ├── Data/
│   │   ├── Enums/
│   │   │   ├── Abilities.php                # This enum is used to define the abilities of a user token
│   │   │   └── AccessLevel.php              # This enum is used to define groups of abilities as access levels
│   │   ├── IssueAccessTokenDto.php          # This class is a simple DTO for holding the data needed to issue a new access token
│   │   └── IssuedAccessTokenDto.php         # This class is a simple DTO for holding the data of an issued access token
│   ├── Extensions/
│   │   └── Scribe/                          # Here extend some parts of the Scribe package to allow for even better documentation
│   │       ├── Concerns/
│   │       │   └── ExtendableAttributeNames.php
│   │       ├── Config/
│   │       │   └── Defaults.php
│   │       ├── Extracting/
│   │       │   └── Strategies/               # Extend the strategies to allow for custom responses and documentation groups
│   │       │       ├── Metadata/
│   │       │       │   ├── GetFromDocBlocks.php
│   │       │       │   ├── GetFromMetadataAttributes.php
│   │       │       │   └── GetValidationRulesFromAction.php
│   │       │       └── Response/
│   │       │           └── UseResponseAttributes.php
│   │       └── Writing/                      # Added support for generating even better Postman collections with pre-request scripts
│   │           ├── Postman/
│   │           │   ├── PostmanCollectionWriter.php
│   │           │   ├── PostmanEndpointProcessor.php
│   │           │   └── Processors/           # Processors allow you even greater control over the Postman collection
│   │           │       ├── CreateTokenEndpointProcessor.php
│   │           │       ├── EndpointProcessor.php
│   │           │       └── RefreshTokenEndpointProcessor.php
│   │           └── Writer.php
│   ├── Http/
│   │   ├── [...]
│   │   ├── Documentation/                     # API documentation structure classes
│   │   │   ├── Groups/                        # API Documentation groups
│   │   │   │   ├── AuthenticationGroup.php
│   │   │   │   ├── GenericGroup.php
│   │   │   │   └── GenericSubgroup.php
│   │   │   └── Responses/                     # API Response documentation classes
│   │   │       ├── Authentication/
│   │   │       │   └── AccessTokenResponse.php # Response documentation for access tokens
│   │   │       ├── BadRequestResponse.php
│   │   │       ├── CreatedResponse.php
│   │   │       ├── [...]
│   │   │       ├── UnauthorizedResponse.php
│   │   │       └── UnprocessableEntityResponse.php
│   │   └── [...]
│   └── [...]
└── [...]

```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance59

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

261d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cdfba6ac9dc28ba4134c841782ef374a05e6fb57974b0f106d64cf17e971db39?d=identicon)[neoighodaro](/maintainers/neoighodaro)

---

Top Contributors

[![neoighodaro](https://avatars.githubusercontent.com/u/807318?v=4)](https://github.com/neoighodaro "neoighodaro (40 commits)")

---

Tags

apilaravelstarterkitstarter-kitapi starter kit

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/creativitykills-api-starter-kit/health.svg)

```
[![Health](https://phpackages.com/badges/creativitykills-api-starter-kit/health.svg)](https://phpackages.com/packages/creativitykills-api-starter-kit)
```

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[knuckleswtf/scribe

Generate API documentation for humans from your Laravel codebase.✍

2.3k12.2M45](/packages/knuckleswtf-scribe)[aimeos/aimeos-headless

Aimeos headless ecommerce system

2.5k2.3k](/packages/aimeos-aimeos-headless)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
