Documentation

Everything you need to integrate Cioppino inference into your application.

Getting Started

  1. Create an account at console.cioppino.ai
  2. Fund your account — click "Fund Account" in the dashboard, enter a USD amount, and complete the Bitcoin payment via BitPay.
  3. Create an API key — go to the Tokens page and create a new key. Copy it immediately — it's only shown once.
  4. 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 402 until 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

CodeMeaning
400Bad request — check your JSON body
401Invalid or missing API key
402Insufficient balance — fund your account
404Model not found or not active
429Rate limited — retry after delay
503No healthy deployment — try again shortly