Public API
OpenAPI reference for the Drexo API — preview of the format of upcoming endpoints.
Drexo API
Drexo will progressively expose a public API so third-party tools can integrate with the platform — data extraction, outbound alerting, automated share management, and so on.
Status — no endpoint published in production yet. The OpenAPI spec below is a preview of the format we'll ship: don't bother with the try-it-out button until v1.0 is announced in the release notes.
Authentication
The API will reuse the same Supabase JWTs as the web interface:
Authorization: Bearer <token>header.- Tokens are minted via the browser session after sign-in (Microsoft / Google SSO, magic link, or password).
- Every call inherits the RLS scope of the user who minted
the token — no
service_roleaccess is exposed publicly.
Preview: read a device
The endpoint below illustrates what the documentation of a real endpoint will look like once we ship it: description, parameters, responses, examples per status code, auto-generated TypeScript schema, and a Try-it-out panel to call the API from the browser.
Authorization
bearerAuth Supabase access token obtained through the same login flow as the web app (Microsoft / Google SSO, magic link, or password). Every call inherits the caller's RLS scope — service-role tokens are never accepted on this surface.
In: header
Path Parameters
The device's UUID. You can grab one from the URL bar on /devices/<id> in the web app.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/api/v0/devices/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"id": "8b3a52f0-9421-44b3-90dc-1c0f0b9e8b41",
"slug": "I25VA054179",
"name": "Compteur principal — Villa Estate",
"type": "water_meter",
"owner_tenant_id": "d7e2a4f0-1111-4dde-9b21-aa11bbcc44ee",
"created_at": "2026-03-04T09:12:48Z"
}{
"error": "unauthenticated",
"message": "Token manquant ou invalide."
}{
"error": "device_not_found",
"message": "Cet appareil n'existe pas ou vous n'y avez pas accès."
}Versioning
The API will follow semver: v0 is the preview namespace
(may change without notice). Once we stabilise, endpoints will
land under v1 and any breaking change will bump the major
version (with a public ADR documenting the why).
Stay in the loop
Follow the release notes — every new
endpoint will be announced there, with a machine-readable
changelog on RSS and JSON Feed.