OpenBots Unified API
Base URL: https://openbots.pages.dev/api/v1 · OpenAI-compatible for bots, ROS2-native for robots. One key, one bill.
Auth
curl https://openbots.pages.dev/api/v1/bots/run \ -H "x-api-key: ob_..." \ -H "Content-Type: application/json"
POST /bots/run — Run any digital bot/skill
POST /api/v1/bots/run
{
"model": "customer-support-v2", // slug or "openbots/auto"
"input": { "ticket": "refund request #42" },
"provider": { "sort": "price|latency|throughput", "max_price": 5 },
"stream": false
}
// Response
{
"id": "task_abc",
"status": "success",
"provider": "openbots-nitro",
"latency_ms": 142,
"cost_cents": 3,
"output": { "action": "refund", "draft": "..." }
}POST /robots/task — Dispatch physical task
POST /api/v1/robots/task
{
"robot": "unitree-g1", // or "unitree-go2", "ur5e"
"skill": "palletizing-ur", // optional skill to run on robot
"task": "palletize 20 boxes in bay 3",
"provider": { "sort": "latency" },
"location": "warehouse-eu-01"
}GET /listings?type=PHYSICAL_RENTAL&q=g1
GET /api/v1/listings?type=DIGITAL_BOT GET /api/v1/listings?category=Humanoid GET /api/v1/rankings
POST /credits/topup
POST /api/v1/credits/topup
{ "amount_cents": 10000 } // $100 → fee 550 cents, you pay $105.50Routing & Fallback
Default: deprioritize providers with outage in last 30s, pick lowest-cost among stable weighted by inverse-square of price, rest as fallbacks. Failed calls not billed.
{
"provider": {
"sort": "price|throughput|latency",
"only": ["openbots-nitro"],
"max_price": 10, // cents per 1k
"allow_fallbacks": true
},
"models": ["customer-support-v2", "sales-outreach-bot"] // fallback chain
}Fees
- Physical New 10% · CPO 15% · Digital/Skill 20% · Rental/Task 25% · Bundle 12% · Service 15%
- Credit fee 5.5% + $0.80 min on top-up (pass-through compute)
- BYOK free $25k/mo, then 5%
- Escrow 1.5% on physical >$5k, auto-release on tracking → delivery ack
- Royalty 5% on skill resale
OpenAPI
Full spec at /api/health and in repo openapi.yaml. Clone marketplace with npx openbots (coming).