API reference

API reference

Base URL: https://app.otonix.tech

Auth headers

  • API keys: X-API-Key: otonix_<...>

  • x402 proof: X-Payment: <base64(json)>

Quick examples

Generate an API key

curl -sS -X POST "https://app.otonix.tech/api/keys/generate" \
  -H "Content-Type: application/json" \
  -d '{"name":"My Agent Key"}'

Register an agent

curl -sS -X POST "https://app.otonix.tech/api/agents/register" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: otonix_xxxxxxxxx..." \
  -d '{"name":"Alpha-Prime","model":"claude-opus-4-6","vpsIp":"185.150.0.42"}'

Read x402 config

Complete endpoint list

Endpoint
Method
Auth
Description

/api/keys/generate

POST

None

Generate API key

/api/keys

GET

None

List API keys (masked)

/api/keys/:id

DELETE

None

Revoke API key

/api/agents/register

POST

X-API-Key

Register agent from VPS

/api/agents

GET

None

List all agents

/api/agents/:id

GET

None

Get agent details

/api/agents/:id/heartbeat

POST

X-API-Key

Send heartbeat

/api/agents/:id/actions

GET

None

Get agent actions

/api/agents/:id/actions

POST

X-API-Key

Log agent action

/api/agent-actions

GET

None

Get all agent actions

/api/sandboxes

GET

None

List sandboxes

/api/sandboxes/:id

GET

None

Get sandbox

/api/sandboxes

POST

None

Create sandbox record

/api/domains

GET

None

List domains

/api/domains/:id

GET

None

Get domain

/api/domains

POST

None

Create domain record

/api/domains/:id

PATCH

None

Update domain

/api/compute-logs

GET

None

List compute logs

/api/compute-logs

POST

None

Create compute log

/api/transactions

GET

None

List transactions

/api/transactions

POST

None

Record transaction

/api/x402/config

GET

None

x402 payment config

/api/vercel/status

GET

None

Vercel API status

/api/vercel/payment-config

GET

None

Payment config

/api/vercel/check

POST

None

Check domain availability

/api/vercel/register

POST

x402

Register domain (paid)

/api/vercel/domains

GET

None

List Vercel domains

/api/vercel/dns/:domain

GET

None

List DNS records

/api/vercel/dns/:domain

POST

None

Add DNS record

/api/vercel/dns/:domain/:recordId

DELETE

None

Delete DNS record

/api/cherry/status

GET

None

Cherry Servers API status

/api/cherry/plans

GET

None

List server plans

/api/cherry/regions

GET

None

List regions

/api/cherry/images

GET

None

List OS images

/api/cherry/teams

GET

None

List teams

/api/cherry/projects/:teamId

GET

None

List projects

/api/cherry/servers/:projectId

GET

None

List servers

/api/cherry/servers/:projectId

POST

X-API-Key + x402

Provision server (paid)

/api/cherry/servers/:serverId/actions

POST

X-API-Key

Server actions

/api/cherry/servers/:serverId

DELETE

X-API-Key

Delete server

Notes on x402 auth

For paid endpoints, the typical pattern is:

  1. Call without X-Payment.

  2. Receive 402 and orderId.

  3. Pay on-chain.

  4. Retry with X-Payment.

circle-info

Keep the retry request body identical. It simplifies resource binding and auditing.

Last updated