The Core API is for resource management — discovering your organisation and its locations, fetching recordings, managing measurement campaigns, and reading historic uptime. Standard JSON-over-HTTPS, one request per call.

**Base URL:**`https://api.auravisionlabs.com/v1`

Authenticate with a JWT bearer token — see [Authentication](/content/api/authentication/index.html).

## All endpoints

| Resource      | Description                                        | Endpoints                                                                                           |
|---------------|----------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| Service       | Health check for the API gateway                   | [Status](/content/api/core/status/index.html) — public, no auth                            |
| Users         | The authenticated user behind the token            | [Profile](/content/api/core/users/profile/index.html)                                       |
| Organisation  | Your tenant and what it’s allowed to query         | [Get organisation](/content/api/core/organisation/get/index.html) · [Available metrics](/content/api/core/organisation/available-metrics/index.html) |
| Locations     | Physical sites where cameras are deployed          | [List](/content/api/core/locations/list/index.html) · [Get](/content/api/core/locations/get/index.html) |
| Recordings    | Camera feeds, one per camera per location          | [List](/content/api/core/recordings/list/index.html) · [Get](/content/api/core/recordings/get/index.html) · [Uptime](/content/api/core/recordings/uptime/index.html) · [Bulk uptime](/content/api/core/recordings/uptimes/index.html) |
| Campaigns     | Measurement campaigns — test vs control periods    | [List](/content/api/core/campaigns/list/index.html) · [Get](/content/api/core/campaigns/get/index.html) · [Create](/content/api/core/campaigns/create/index.html) · [Update](/content/api/core/campaigns/update/index.html) · [Delete](/content/api/core/campaigns/delete/index.html) |

## Conventions

- **IDs** are 24-character hexadecimal strings. Top-level resources expose them as `id`; embedded objects as `_id`.
- **Date format** varies per endpoint:
  - Uptime endpoints take **date-only** `YYYY-MM-DD`.
  - Campaign endpoints (`testPeriod`, `controlPeriod`) require **full ISO 8601 with timezone**, e.g. `2024-04-14T10:00:00.000Z`. Date-only is rejected.
- **JSON** is the response format for everything (`application/json`).
- **Error responses** all share the same shape.

## Where to go next

- [Authenticate](/content/api/authentication/index.html)
- [Errors](/content/api/errors/index.html)
- [Metrics API overview](/content/api/metrics/overview/index.html) — the WebSocket side for analytics queries
