Documentation
Everything you need to integrate Cioppino inference into your application.
Getting Started
- Create an account at console.cioppino.ai
- Fund your account — click "Fund Account" in the dashboard, enter a USD amount, and complete the Bitcoin payment via BitPay.
- Create an API key — go to the Tokens page and create a new key. Copy it immediately — it's only shown once.
- Make requests — point your OpenAI SDK (or any HTTP client) at our inference endpoint.
Authentication
All API requests require a bearer token. Your API keys start with cb-.
bash
curl https://inference.cioppino.ai/v1/chat/completions \
-H "Authorization: Bearer cb-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1-0528",
"messages": [{"role": "user", "content": "Hello!"}]
}'Python (OpenAI SDK)
python
from openai import OpenAI
client = OpenAI(
base_url="https://inference.cioppino.ai/v1",
api_key="cb-your-api-key",
)
# Non-streaming
response = client.chat.completions.create(
model="deepseek-r1-0528",
messages=[{"role": "user", "content": "Explain quantum computing simply."}],
)
print(response.choices[0].message.content)
# Streaming
stream = client.chat.completions.create(
model="deepseek-r1-0528",
messages=[{"role": "user", "content": "Write a haiku about coding."}],
stream=True,
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="")Node.js (OpenAI SDK)
javascript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://inference.cioppino.ai/v1",
apiKey: "cb-your-api-key",
});
const response = await client.chat.completions.create({
model: "deepseek-r1-0528",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);curl
bash
# Chat Completions
curl -X POST https://inference.cioppino.ai/v1/chat/completions \
-H "Authorization: Bearer cb-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1-0528",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the meaning of life?"}
],
"temperature": 0.7,
"max_tokens": 1024
}'
# Streaming
curl -X POST https://inference.cioppino.ai/v1/chat/completions \
-H "Authorization: Bearer cb-your-api-key" \
-H "Content-Type: application/json" \
-N \
-d '{
"model": "deepseek-r1-0528",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'Billing
Cioppino uses pay-per-token billing. You are charged separately for input tokens (your prompt) and output tokens (the model's response).
- Pricing is per 1,000 tokens and varies by model. Check the Models page in your dashboard for current rates.
- Your balance is denominated in USD. When you fund via BitPay, the BTC amount is converted to USD at the current exchange rate.
- Usage is deducted from your balance in real-time after each request completes.
- If your balance reaches $0, the API returns
HTTP 402until you add more funds. - There are no subscriptions, no minimums, and no monthly fees.
Rate Limits
During the MVP phase, rate limits are generous. If you encounter HTTP 429, back off and retry with the Retry-After header value.
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad request — check your JSON body |
| 401 | Invalid or missing API key |
| 402 | Insufficient balance — fund your account |
| 404 | Model not found or not active |
| 429 | Rate limited — retry after delay |
| 503 | No healthy deployment — try again shortly |