Base URL
All API endpoints are prefixed with/exo-api (configurable via config('exo.route_prefix')):
Authentication
Every request must include a Bearer token in theAuthorization header:
exo:user command:
Response format
Successful responses return JSON. Single records are returned directly, lists are paginated: Single record:Error responses
Errors return a JSON object with amessage field:
| Status code | Meaning |
|---|---|
401 | Missing or invalid token |
403 | Authenticated but not authorized to access this record |
404 | Resource or record not found |
405 | Operation not supported (e.g. creation disabled on this resource) |
422 | Validation errors |
Endpoints overview
Resources
| Method | Endpoint | Description |
|---|---|---|
GET | /exo-api/whoami | Get the authenticated user’s identity |
GET | /exo-api/resources | List all registered resources |
GET | /exo-api/resources/{name} | List records for a resource (paginated) |
GET | /exo-api/resources/{name}/{id} | Get a single record |
POST | /exo-api/resources/{name} | Create a new record |
PUT | /exo-api/resources/{name}/{id} | Update a record |
DELETE | /exo-api/resources/{name}/{id} | Delete a record |
Webhooks
| Method | Endpoint | Description |
|---|---|---|
GET | /exo-api/webhooks | List your webhook subscriptions |
POST | /exo-api/webhooks | Create a webhook subscription |
GET | /exo-api/webhooks/{id} | Get a webhook subscription |
PUT | /exo-api/webhooks/{id} | Update a webhook subscription |
DELETE | /exo-api/webhooks/{id} | Delete a webhook subscription |