Authentication
API Key Authentication
All requests to the 50c API must include your API key in the Authorization header:
curl -X POST https://api.50c.ai/tools/genius \ -H "Authorization: Bearer cv_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"problem": "Your question"}'Key Types
| Prefix | Type | Description |
|---|---|---|
cv_ | Production | Main API key for production use |
cv_sub_ | Sub-key | Enterprise delegable keys with limits |
cv_test_ | Sandbox | Testing without charges |
cv_agent_ | Agent | Developer-registered agent keys |
titan_vip_ | VIP | Elite plan only |
x402 Payment Authentication
For autonomous agents, use x402 payments instead of API keys:
# First call returns 402 with payment instructionscurl -X POST https://api.50c.ai/tools/genius \ -H "Content-Type: application/json" \ -d '{"problem": "Your question"}'
# Response includes payment headers:# X-Payment-Required: true# X-Payment-Amount: 50# X-Payment-Currency: USDC# X-Payment-Network: base
# Retry with payment tokencurl -X POST https://api.50c.ai/tools/genius \ -H "X-Payment: <signed_payment_token>" \ -H "Content-Type: application/json" \ -d '{"problem": "Your question"}'See x402 Payments for details.
Cloudflare tools (cf_*)
For Cloudflare suite tools, the 50c API key authorizes the call; your Cloudflare permission is a separate token.
- Prefer header:
X-Cloudflare-Token: <cloudflare_api_token> - Alternatively, JSON body field:
cloudflare_token(e.g. MCPtools/callwhen headers are not available)
50c does not persist Cloudflare tokens. Create tokens in the Cloudflare dashboard with least privilege for the zones you automate.
Errors
| Status | Error | Solution |
|---|---|---|
| 401 | invalid_api_key | Check your key format |
| 401 | key_not_found | Key doesn’t exist or was revoked |
| 402 | insufficient_credits | Top up at 50c.ai/subscribe |
| 403 | rate_limited | Wait and retry |