Skip to content
Limited-time offerevery video just HK$1only 1,000, first come first servedGet it now
Axiom Lab
Developer docs

Reference

API reference · Projects, keys and audit

Manage projects and API keys, and read the change log.

View Markdown

List Projects

GET/v1/projects

API key requiredSuccess 200

Parameters

NameTypeDescription
limitqueryintegerDefault 50; range 1–200
cursorquerystringlength ≤ 256; nullable
afterquerystringlength ≤ 256; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
datarequiredarray<object>
data[].idrequiredstring
data[].organization_idrequiredstring
data[].namerequiredstring
data[].created_atrequirednumber
next_cursorstringOpaque; pass as cursor (or the after alias) for the next page; nullable
has_morebooleanDefault false

Example

curl "https://axiomlab.online/v1/projects" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

Create Project

POST/v1/projects

API key requiredSuccess 201

Parameters

NameTypeDescription
Idempotency-KeyheaderstringA unique value you generate and keep; reuse it when retrying so the request never runs twice; length 1–128; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Request body application/json

NameTypeDescription
namerequiredstringlength 1–120

Response 201 application/json

NameTypeDescription
idrequiredstring
organization_idrequiredstring
namerequiredstring
created_atrequirednumber

Example

curl -X POST "https://axiomlab.online/v1/projects" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "<name>"}'

Delete Project

DELETE/v1/projects/{project_id}

API key requiredSuccess 200

Parameters

NameTypeDescription
project_idrequiredpathstring
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
idrequiredstring
deletedbooleanDefault true

Example

curl -X DELETE "https://axiomlab.online/v1/projects/<project_id>" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

List Keys

GET/v1/api-keys

API key requiredSuccess 200

Parameters

NameTypeDescription
limitqueryintegerDefault 50; range 1–200
cursorquerystringlength ≤ 256; nullable
afterquerystringlength ≤ 256; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
datarequiredarray<object>
data[].idrequiredstring
data[].namerequiredstringLabel given at creation (also returned as owner)
data[].ownerrequiredstring
data[].prefixrequiredstringnullable
data[].organization_idrequiredstringnullable
data[].project_idstringSet when the key is bound to one project; nullable
data[].rolerequiredstringOne of: owner editor viewer
data[].activerequiredboolean
data[].created_atrequirednumbernullable
data[].last_used_atnumbernullable
data[].expires_atnumbernullable
data[].revoked_atnumbernullable
next_cursorstringOpaque; pass as cursor (or the after alias) for the next page; nullable
has_morebooleanDefault false

Example

curl "https://axiomlab.online/v1/api-keys" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

Create Key

POST/v1/api-keys

API key requiredSuccess 201

Parameters

NameTypeDescription
Idempotency-KeyheaderstringA unique value you generate and keep; reuse it when retrying so the request never runs twice; length 1–128; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Request body application/json

NameTypeDescription
namerequiredstringlength 1–120
rolestringOne of: owner editor viewer; Default editor
project_idstringnullable
monthly_budget_usdnumberrange ≥ 0; nullable
rate_per_hourintegerrange ≥ 1; nullable

Response 201 application/json

NameTypeDescription
idrequiredstring
namerequiredstringLabel given at creation (also returned as owner)
ownerrequiredstring
prefixrequiredstringnullable
organization_idrequiredstringnullable
project_idstringSet when the key is bound to one project; nullable
rolerequiredstringOne of: owner editor viewer
activerequiredboolean
created_atrequirednumbernullable
last_used_atnumbernullable
expires_atnumbernullable
revoked_atnumbernullable
keyrequiredstringThe bearer secret; shown once (an idempotent replay returns the same value)

Example

curl -X POST "https://axiomlab.online/v1/api-keys" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "<name>"}'

Rotate Key

POST/v1/api-keys/{key_id}/rotate

API key requiredSuccess 200

The old secret dies at once, or after grace_seconds so running fleets can switch without downtime.

Parameters

NameTypeDescription
key_idrequiredpathstring
grace_secondsqueryintegerDefault 0; range 0–604800
Idempotency-KeyheaderstringA unique value you generate and keep; reuse it when retrying so the request never runs twice; length 1–128; nullable
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
idrequiredstring
keyrequiredstring
previous_idrequiredstring
previous_expires_inrequiredintegernullable

Example

curl -X POST "https://axiomlab.online/v1/api-keys/<key_id>/rotate" \
  -H "Authorization: Bearer $AZIMO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Revoke Key

DELETE/v1/api-keys/{key_id}

API key requiredSuccess 200

Parameters

NameTypeDescription
key_idrequiredpathstring
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
idrequiredstring
activebooleanDefault false

Example

curl -X DELETE "https://axiomlab.online/v1/api-keys/<key_id>" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

Audit Log

GET/v1/audit

API key requiredSuccess 200

Identity and configuration changes for this organization (keys, projects, webhooks), oldest first from after.

Parameters

NameTypeDescription
afterqueryintegerDefault 0; range ≥ 0
limitqueryintegerDefault 50; range 1–200
X-Project-IDheaderstringThe project to act on; the default project when omitted; nullable

Response 200 application/json

NameTypeDescription
datarequiredarray<object>
data[].idrequiredstring
data[].sequencerequiredinteger
data[].typerequiredstring
data[].created_atrequirednumber
data[].api_versionrequiredstring
data[].project_idrequiredstringnullable
data[].datarequiredobject
next_cursorrequiredintegerSequence number to pass as after; unchanged when the page is empty
has_morebooleanDefault false

Example

curl "https://axiomlab.online/v1/audit" \
  -H "Authorization: Bearer $AZIMO_API_KEY"

← All endpoints