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