DCS / Build & Agents / Agents API
REST + MCP · OpenAI-compatible

Call 641 specialist agents from any app. Receipt-signed by default.

A single REST endpoint hits any agent in the DCS library. OpenAI-compatible chat completions, structured outputs, tool calling, vision, voice. Every response includes a hash-chained ed25519 receipt — independently verifiable on our public verifier without trusting our servers.

terminal — call DCS Agents API
$ curl https://api.dcsai.ai/v1/agents/restaurant.intake/run \
  -H "Authorization: Bearer dcs_••••" \
  -d '{"message":"Table for 4 at 7pm"}'
# →
{
  "intent": "reservation_request",
  "party_size": 4,
  "time": "19:00",
  "receipt_cid": "bafy…9f3c",
  "signed_by": "ed25519:dcs-…2026"
}
# Verify the receipt without trusting us:
$ npx @dcsplatform/r2-verify bafy…9f3c → ✓ valid
Endpoints

Five endpoints. 641 agents.

One REST surface to discover agents, run them, stream tokens, attach tools, and verify receipts.

MethodPathPurpose
GET/v1/agentsList all 641 agents with metadata + capabilities
GET/v1/agents/{id}Agent details — schema, modalities, pricing tier, sample I/O
POST/v1/agents/{id}/runRun agent with input; returns output + receipt CID (streaming optional)
POST/v1/chat/completionsOpenAI-compatible — drop-in for any client using OpenAI SDK
GET/v1/receipts/{cid}Verify a receipt without auth — public endpoint, no trust required
Auth

API keys, JWTs, MCP tokens — all three work.

🔑

API key

Bearer token in Authorization header. Best for server-side. Generate in dashboard, rotate any time. Scopes by agent + spend cap.

🪪

Supabase JWT

For browser clients calling on behalf of a signed-in user. Auto-validates against DCS-auth Supabase project, returns 401 on stale.

🧩

MCP server token

For Claude Desktop / Cursor / Windsurf — the agent appears as a native tool, MCP handles handshake + auth.

SDKs

Drop into your stack.

Use the OpenAI SDK you already have, or pick the typed DCS client.

📦

npm — @dcsplatform/sdk

// npm install @dcsplatform/sdk
import { DCS } from "@dcsplatform/sdk";
const dcs = new DCS("dcs_••••");
const r = await dcs.agents.run("restaurant.intake", msg);
console.log(r.output, r.receipt_cid);
🐍

pip — dcsplatform

# pip install dcsplatform
from dcsplatform import DCS
dcs = DCS(api_key="dcs_••••")
r = dcs.agents.run("restaurant.intake", msg)
print(r.output, r.receipt_cid)
🤖

OpenAI SDK (drop-in)

from openai import OpenAI
client = OpenAI(
  base_url="https://api.dcsai.ai/v1",
  api_key="dcs_••••",
)
r = client.chat.completions.create(...)
Pricing

Pay per call. No seat fees.

Pricing scales with the model tier you call. Receipts are always free — signing is part of the substrate.

Tier 0 — DCS H200

$0.04 / 1M output tokens · cheap, fast, open-weight

Llama, Qwen, Mistral, DeepSeek + DCS-tuned variants. Sub-3s p50.

Tier 1 — Frontier

passthrough · GPT-5, Claude Sonnet, Gemini

Hit any frontier model with the same receipt envelope.

Tier 2 — Sovereign

BYO weights · self-hosted

Point at your own vLLM endpoint; we sign the receipts.

Free tier: 10K calls/month on Tier 0 · no card required · Sign up →

FAQ

Common questions.

Is this OpenAI-compatible?
Yes — set base_url=https://api.dcsai.ai/v1 in the OpenAI SDK and your existing code works. We add a x-dcs-receipt-cid response header so you can pull the signed receipt for any call.
What's the difference between Agents API and MCP Server?
Agents API is the REST surface — call from your backend. MCP Server is the same agents exposed natively into Claude Desktop / Cursor / Windsurf. Same agents, same receipts, different transport. See mcp-server.html.
Can I add my own agent to the catalog?
Yes via Agent Studio — visually compose, hit Deploy, and the new agent gets a /v1/agents/{your-id}/run endpoint automatically. See Agent Studio.
How do receipts work exactly?
Every API response includes receipt_cid. The receipt is an ed25519-signed JSON envelope: input hash, output hash, model, cost, timestamp, prev_receipt_cid pointer. Chain pins to Filecoin. Anyone can verify via GET /v1/receipts/{cid} or the npm verifier — no auth needed.
Rate limits?
Free tier: 60 req/min. Paid: 600 req/min default, higher on request. Burst headroom managed automatically.

One API key. 641 agents. Receipts on every call.

Stand up your first agent integration in 5 minutes. No card for the free tier.

Get an API key → Read the docs