REST API
The same data exposed by the MCP server is also available over plain HTTP. Use this when you’re building a custom dashboard, alerting integration, or one-off script.
Base URL: https://api.auralog.ai/v1
Authentication: Authorization: Bearer aura_read_YOUR_KEY
OpenAPI spec: https://api.auralog.ai/openapi.json — point any OpenAPI tool (Swagger UI, Postman, code generators) at this URL.
Endpoints
Section titled “Endpoints”| Method | Path | Description |
|---|---|---|
GET | /projects | List the scoped project. |
GET | /projects/{projectId} | Get a project by id. |
GET | /projects/{projectId}/logs | List logs (filter by level, since, until). |
GET | /projects/{projectId}/logs/search | Full-text search logs (q parameter). |
GET | /logs/{logId} | Get a single log with full context. |
GET | /projects/{projectId}/analyses | List analyses (filter by severity, type, include_archived). |
GET | /analyses/{analysisId} | Get a single analysis. |
Quick examples
Section titled “Quick examples”List projects
Section titled “List projects”curl -s https://api.auralog.ai/v1/projects \ -H "Authorization: Bearer aura_read_YOUR_KEY"{ "data": [ { "id": "70f262cd-9659-4d9d-a0b1-51b2673d821e", "name": "PasteCollage", "created_at": "2026-04-04T01:03:13.961517+00:00" } ], "next_cursor": null}Last 5 errors from the past hour
Section titled “Last 5 errors from the past hour”curl -s "https://api.auralog.ai/v1/projects/$PROJECT_ID/logs?level=error&since=-1h&limit=5" \ -H "Authorization: Bearer aura_read_YOUR_KEY"Active high-severity analyses
Section titled “Active high-severity analyses”By default, archived analyses are excluded — the response answers “what’s currently broken?”.
curl -s "https://api.auralog.ai/v1/projects/$PROJECT_ID/analyses?severity=high" \ -H "Authorization: Bearer aura_read_YOUR_KEY"To include archived analyses (for audits or follow-up review):
curl -s "https://api.auralog.ai/v1/projects/$PROJECT_ID/analyses?include_archived=true" \ -H "Authorization: Bearer aura_read_YOUR_KEY"include_archived accepts only canonical values: true, false, 1, 0. Anything else (e.g. ?include_archived=yes) returns a 400 so a typo can’t silently flip behaviour.
Pagination
Section titled “Pagination”Responses include next_cursor (an ISO timestamp). Pass it back as the cursor query parameter to fetch the next page:
curl -s "https://api.auralog.ai/v1/projects/$PROJECT_ID/logs?cursor=$NEXT_CURSOR" \ -H "Authorization: Bearer aura_read_YOUR_KEY"When next_cursor is null, you’re at the end.
Errors
Section titled “Errors”Errors return JSON with an error object:
{ "error": { "code": "unauthorized", "message": "Invalid or revoked key" }}| Status | Code | When |
|---|---|---|
| 400 | invalid_request | Query or path parameters failed schema validation |
| 401 | unauthorized | Missing, malformed, or revoked bearer token |
| 404 | not_found | Resource does not exist or is outside the read key’s scope |
| 429 | rate_limited | Exceeded 60 requests per minute |
| 500 | internal_error | Unexpected server-side failure |
| 503 | service_unavailable | Temporary backend outage |
Rate limits
Section titled “Rate limits”60 requests per minute per read key. Exceeding the limit returns 429 with a Retry-After header.
Time-range shorthand
Section titled “Time-range shorthand”The since and until parameters accept either a full ISO 8601 timestamp or a relative shorthand:
| Shorthand | Means |
|---|---|
-30s | 30 seconds ago |
-15m | 15 minutes ago |
-1h | 1 hour ago |
-24h | 24 hours ago |
-7d | 7 days ago |
The accepted units are s, m, h, d. Anything else returns a 400.