whatisgithub

What is api?

dingo/api — explained in plain English

Analysis updated 2026-06-24

9,352PHPAudience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

A PHP package for building web APIs on Laravel and Lumen that handles versioning, authentication, rate limiting, and response formatting out of the box, now moved to a new GitHub organization.

Mindmap

mindmap
  root((repo))
    What it does
      Laravel API toolkit
      API scaffolding
    Features
      API versioning
      Rate limiting
      Auth adapters
      Response transformers
    Status
      Unmaintained here
      Moved to new org
    License
      BSD 3-Clause
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add API versioning to a Laravel app so existing clients keep working when you release a new API version.

USE CASE 2

Implement rate limiting on your Laravel API endpoints to protect the server from overload.

USE CASE 3

Use response transformers to control exactly what data your API returns to different types of clients.

What is it built with?

PHPLaravelLumen

How does it compare?

dingo/apiphpdocumentor/reflectiondocblockswiftmailer/swiftmailer
Stars9,3529,3879,459
LanguagePHPPHPPHP
Setup difficultymoderateeasyeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

This repository is no longer maintained, new development has moved to the api-ecosystem-for-laravel GitHub organization.

Use and redistribute freely for any purpose as long as you keep the copyright notice and license text.

So what is it?

Dingo API is a PHP package designed to help developers build web APIs on top of the Laravel and Lumen frameworks. An API (Application Programming Interface) is the layer that lets different software systems communicate with each other, for example when a mobile app sends a request to a server to fetch user data. Dingo provides the scaffolding so you do not have to build that layer from scratch. The package handles several concerns that come up repeatedly when building APIs. Content negotiation means the server can respond in different formats depending on what the client requests. Authentication adapters let you plug in different login or token verification strategies. API versioning allows you to release a new version of your API without breaking older clients that still rely on the previous version. Rate limiting controls how many requests a single client can make in a given time window, which protects your server from overload. Response transformers let you shape the data before it goes back to the caller, and there is built-in error handling to return consistent error messages. The package also supports internal requests, where one part of your application can call another API endpoint without going through the network, and it can generate API Blueprint documentation, which is a structured description of your API's endpoints. Note: the README states that this repository is no longer actively maintained at this location. The project has moved to a different GitHub organization (api-ecosystem-for-laravel), and users are asked to switch to that repository instead. The code and history here remain accessible, but new development happens elsewhere. The package is licensed under the BSD 3-Clause license, which permits broad use and redistribution with minimal restrictions. Documentation is available in the project's wiki.

Copy-paste prompts

Prompt 1
Set up Dingo API in a Laravel project and show me how to define versioned route groups for v1 and v2 of my API.
Prompt 2
Configure JWT authentication with Dingo API in Laravel and show me a protected endpoint that returns the logged-in user's data.
Prompt 3
Add rate limiting to a Dingo API route group in Laravel and show me how to return a friendly error message when the limit is exceeded.

Frequently asked questions

What is api?

A PHP package for building web APIs on Laravel and Lumen that handles versioning, authentication, rate limiting, and response formatting out of the box, now moved to a new GitHub organization.

What language is api written in?

Mainly PHP. The stack also includes PHP, Laravel, Lumen.

What license does api use?

Use and redistribute freely for any purpose as long as you keep the copyright notice and license text.

How hard is api to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is api for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.