SONNELYSQPR · CHAIN 4663
ModelsPricingDevelopersComparePlayground
LIVE
Sign inConsole
SONNELY

Inference as a service on Robinhood Chain. Crypto in. Intelligence out. $1 = 1,000 credits. No subscriptions.

Veni · Vidi · Computavi

[email protected]

Product

How it worksModelsPricingCalculatorComparePlayground

Developers

API & CLIDocumentationOpenAPIStatusConsole

Company

AboutRoadmapLearnMethodologyContact

Legal

PrivacyTermsAlternativesSign inAccount
© 2026 SONNELY · CHAIN 4663ALL SYSTEMS OPERATIONAL

Developers · API as a service

One endpoint. Every model.

An OpenAI-compatible API funded with crypto. Point anything you already use at Sonnely with a base URL and a key.

Get a key →Browse models

Sixty seconds

The terminal client remembers your key and model. Needs Node 18+.

curl -fsSL https://sonnely.com/install.sh | sh
sonnely login
sonnely "what changed in HTTP/3?"

sonnely models to browse · sonnely image "prompt" to render · -m to switch models.

Or straight to the API

No install, no SDK required.

export SONNELY_KEY="sk-sonnely-..."

curl https://sonnely.com/api/v1/chat/completions \\
  -H "Authorization: Bearer $SONNELY_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{"model":"sonnely-gpt","messages":[{"role":"user","content":"hello"}]}'

Two settings

Base URL https://sonnely.com/api/v1 · key sk-sonnely-…

Cursor

Settings → Models → add an OpenAI key, override base URL to https://sonnely.com/api/v1.

Continue

In config.json: "provider": "openai", "apiBase": "https://sonnely.com/api/v1".

Aider

--openai-api-base https://sonnely.com/api/v1 --openai-api-key $SONNELY_KEY

OpenAI SDK

Pass base_url + api_key. Nothing else changes.

LangChain / LlamaIndex

Any OpenAI chat model class that accepts a base URL.

curl

It is HTTP and JSON. The examples on this page work as-is.

Endpoints

GET/api/v1/modelsEvery model you can call — 16 featured + 373 catalog, OpenAI shape.
POST/api/v1/chat/completionsThe one that does the work. Streaming and non-streaming.
GET/api/v1/balanceConnection check. Returns your credit balance.
POST/api/v1/images/generationsText-to-image. Billed per render from the exact reported cost.
POST/api/v1/videos/generationsAsync text-to-video. Returns a job id + poll URL.
GET/api/v1/videos/:jobIdPoll status. Charges the exact cost once at completion.
POST/api/v1/audio/speechText to speech, raw audio bytes. Billed per character (beta).
POST/api/deposits/claimClaim a USDG/ETH deposit for credits by tx hash.
GET/api/healthGateway reachability + model routing status.
GET/api/openapiOpenAPI 3.1 of this whole surface.

What a call costs

$1 = 1,000 credits. Each request is priced from upstream cost plus our flat 20% margin — and the figure comes back with the response, so a script never guesses.

"sonnely": { "credits_charged": 9.0, "margin_bps": 2000 }
  • ◆ 402 when short — names the credits needed, so scripts top up or back off.
  • ◆ Nothing succeeds silently — a request with no content is an error and is not charged.
  • ◆ Credit never expires — prepaid compute, not a subscription.

Keys

Make as many as you like in the console. Shown once — only a hash is kept. Scope to a team, cap the budget, revoke instantly. Treat a key like a card number: environment variable, never a committed file.

Full reference lives at docs.sonnely.com

Generated from the live OpenAPI on every docs build — always in sync with this API.

Open docs →