HTTP API
Two different things live under /api, and it is worth knowing which one you want.
Reporting an event
POST https://www.larabug.com/api/log
This is the endpoint the clients post to, and the one a client for a language we do not ship would target. It authenticates with the application's ingest key and project key, or with the DSN that carries both, and it reaches nothing else in your account.
An older pairing, an account token plus the project key, still works for the clients deployed before the ingest key existed. It answers with a Deprecation header and will not be there forever.
Unless you are writing a client, use a client: the Laravel and JavaScript packages do the filtering, the batching, the deduplication and the retries, and those are most of the work.
Reading your account
The rest of the API reads what LaraBug has stored: your applications, their exceptions, their queue jobs and queries. It authenticates with your account token, which is a different credential from the one above and is your whole account rather than one application.
POST /api/login with your email and password returns it, which is how the mobile app signs in.
Send it as a bearer token:
curl https://www.larabug.com/api/projects \
-H "Authorization: Bearer YOUR_ACCOUNT_TOKEN" \
-H "Accept: application/json"
| Endpoint | What it returns |
|---|---|
GET /api/user |
The account the token belongs to. |
GET /api/projects |
Your applications. |
POST /api/projects |
A new application. |
GET /api/projects/{project} |
One application. |
GET /api/projects/{project}/exceptions |
Its exceptions. |
GET /api/projects/{project}/exceptions/{exception} |
One of its exceptions. |
GET /api/projects/{project}/queue-jobs |
Its queue jobs. |
GET /api/projects/{project}/queries |
Its queries. |
GET /api/projects/{project}/scheduled-tasks |
Its scheduled tasks. |
GET /api/projects/{project}/mail |
The mail it sent. |
GET /api/projects/{project}/notifications |
The notifications it sent. |
GET /api/projects/{project}/cache |
Its cache events. |
GET /api/projects/{project}/commands |
The commands it ran. |
GET /api/exceptions |
Exceptions across your applications. |
GET /api/exceptions/{exception} |
One exception. |
POST /api/exceptions/{exception}/read |
Mark it read. |
POST /api/exceptions/{exception}/toggle-public |
Turn its public page on or off. |
DELETE /api/exceptions/{exception} |
Delete it. |
Everything is JSON, everything is scoped to the account the token belongs to, and a token sees exactly what its owner sees.
The tokens under Profile, API tokens are a different credential. Those are for the MCP server and for apps you connect through OAuth, and they are not what this API reads.
Asking the API what it offers
GET https://www.larabug.com/api
The root describes itself: every endpoint, what it returns, how to authenticate, what the rate limit is, and where the MCP server is. Nothing authenticates it, because the question it answers is how to authenticate.
Or ask an assistant instead
If what you want is to read issues while you work rather than to build something, the MCP server is the same data without the plumbing.