Docs

Build on Suprsonic in 3 minutes.

Every capability is reached the same way: one endpoint, one key, one shape.

Quickstart

Sign up at /app, copy your key, and call any of the 27+ tools with a single POST.

# 1. Set your key
export SUPRSONIC_KEY=sk_live_...

# 2. Call any tool
curl https://api.suprsonic.ai/v1/run \
  -H "Authorization: Bearer $SUPRSONIC_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"web_search","input":{"query":"AI agent benchmarks 2026"}}'

Authentication

One bearer token. No OAuth, no scopes, no client_id juggling.

Authorization: Bearer sk_live_...

Rotate keys at /app/keys. Revocation is instant.

The /v1/run endpoint

Every capability has the same call shape: name the tool, pass the input.

POST /v1/run

{
  "tool": "image_generate",
  "input": {
    "prompt": "An espresso machine on a marble counter, soft morning light",
    "aspect_ratio": "16:9"
  },
  "metadata": { "user_id": "u_42" }
}

Responses include output, usage, and a request_id you can correlate with audit logs.

Errors

Errors are typed and consistent across every tool.

{
  "error": {
    "type": "invalid_input",
    "code": "missing_field",
    "message": "input.query is required",
    "field": "input.query"
  },
  "request_id": "req_01JFXX..."
}

Streaming

For long-running tools (browser_run, code_run, video_generate) stream chunks over SSE.

curl -N https://api.suprsonic.ai/v1/run \
  -H "Authorization: Bearer $SUPRSONIC_KEY" \
  -H "Accept: text/event-stream" \
  -d '{"tool":"browser_run","input":{"task":"buy a table on craigslist"}}'

SDKs

Language SDKs wrap the same shape and add typing for tool inputs.

  • npm i suprsonic
  • pip install suprsonic
  • go get github.com/suprsonic/suprsonic-go