API reference
Service status
API
checking
Database
checking
Odoo read breaker
checking
Authentication
Every
/v1 endpoint needs an X-API-Key header. Keys carry
per-model scopes, for example crm.lead:create; a missing scope returns
403.
docker compose run --rm api python scripts/create_api_key.py "webshop-test" --scope "crm.lead:create" curl -H "X-API-Key: kmw_..." https://api.midd.komade.io/v1/ping
Endpoints
POST
/v1/queue/{odoo_model}lock
Queue a record creation. Returns 202 and a queue_id.
PATCH
/v1/queue/{odoo_model}/{odoo_id}lock
Queue an update of one record by its Odoo id.
PATCH
/v1/queue/{odoo_model}lock
Queue a bulk update: one payload written to many ids.
GET
/v1/jobslock
Recent jobs for the calling client, newest first.
GET
/v1/jobs/{queue_id}lock
Status of one queued job. Polling fallback for clients without MQTT.
GET
/v1/read/{odoo_model}lock
Live or cached Odoo data, behind a circuit breaker.
POST
/v1/outboundlock
Odoo ships a batch of outbound items to an N8N workflow.
GET
/v1/outbound/workflowslock
The workflow allow-list Odoo may ship to.
GET
/v1/pinglock
Key check: echoes the client name and its scopes.
GET
/health
Liveness and database reachability. No key required.
GET
/v1/read-health
Read circuit breaker state for monitoring. No key required.