Skip to main content
To see which endpoints the Vue client actually calls (and how), see Frontend API Integration.

Interactive API Route Map

Searchable, filterable diagram of all 150+ routes, controllers, and middleware — current API, legacy v1, and web routes.

Base URLs

API versions

Two API versions coexist: The current API also supports header-based versioning via the API-Version request header. Controllers dynamically resolve service and transformer classes based on this header.

Authentication

Three authentication modes are used across endpoints:

Rate limiting

API endpoints are throttled at 300 requests per minute per client (configured in app/Http/Kernel.php).

CORS

CORS is handled by the TrustedOrigins middleware (not Laravel’s built-in CORS package):
  • Exact match: TRUSTED_ORIGINS env var — comma-separated origins
  • Substring match: WHITELISTED_ORIGINS env var — comma-separated partial origins
Returns 403 if the Origin header doesn’t match either list.

Response format

All API responses are JSON. Errors follow this structure:
exception and trace fields are only included when APP_DEBUG=true.

HTTP caching

The ETag middleware (app/Http/Middleware/API/v1/ETag.php) adds ETag-based caching for GET requests. Returns 304 Not Modified when the client’s If-None-Match header matches.

Security headers

All responses include (via SecureHeaders middleware):
Headers removed: X-Powered-By, Server.