dogecatdogecat
Get API Key
API Access

Build with dogecat

Change one line — your base URL — and one API key routes to every model in the live catalog, plus the dogecat/moa and dogecat/code virtual models. First-party models from $0.20 per 1M tokens, in and out. Fully OpenAI-compatible.

Simple Pricing

Free Preview

Try it in the browser — no signup

$0
  • Web chat access
  • Default frontier model
  • Limited daily usage
Try Free
RECOMMENDED

API Access

For developers & apps

$5/month
  • 100M standard tokens included
  • OpenAI-compatible API
  • Multiple API keys
  • One-time top-ups ($10 / 100M)
  • Enterprise: $100/mo for 2.5B tokens
Subscribe Now

Pools are cost-weighted — each model draws at its own rate; live per-model pricing at /api/v1/models.

Quick Start

1Get your API key

Sign up and create an API key from your dashboard.

Create Account

2Make your first request

Use any OpenAI-compatible client. Just change the base URL.

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://dogecat.com/api/v1",
    api_key="your-api-key"
)

response = client.chat.completions.create(
    model="moonshotai/Kimi-K2.6",  # any model id from /api/v1/models
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.choices[0].message.content)

3Or use cURL

Shell
curl https://dogecat.com/api/v1/chat/completions \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "moonshotai/Kimi-K2.6",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

4Use with OpenClaw

Add dogecat as a provider in your OpenClaw config. Works with any OpenClaw agent.

~/.openclaw/config.yaml
providers:
  dogecat:
    kind: openai
    baseUrl: https://dogecat.com/api/v1
    apiKey: PASTE_YOUR_API_KEY_HERE
    models:
      - moonshotai/Kimi-K2.6
      - MiniMaxAI/MiniMax-M2.7
      # any model id from /api/v1/models works

# Then use it as your default:
defaultModel: dogecat/moonshotai/Kimi-K2.6

Don't have OpenClaw? Get it here →

API Reference

POST/api/v1/chat/completions

Create a chat completion. Fully compatible with OpenAI's API.

Request Body

ParameterTypeDescription
modelstringAny model id from /api/v1/models
messagesarrayText or OpenAI-style multimodal messages
streambooleanWhether to stream responses (optional)
max_tokensintegerMaximum tokens to generate (optional)
temperaturenumberSampling temperature 0-2 (optional)
GET/api/v1/models

List available models. This is the live catalog — each entry carries label, vision, and pricing metadata — so discover models from it rather than hardcoding ids.

Available Models

ModelInput / 1MOutput / 1MNotes

moonshotai/Kimi-K2.6

Kimi K2.6

$0.20$0.20vision

MiniMaxAI/MiniMax-M2.7

MiniMax 2.7

$0.20$0.20—

Qwen/Qwen3-235B-A22B-Instruct-2507-FP8

Qwen 235B

$0.05$0.050.25x pool draw

dogecat/moa

Virtual model — two models + synthesis

per-modelper-modelbilled per underlying call

dogecat/code

Virtual model — plan, two implementations, review

per-modelper-modelbilled per underlying call

The live list is GET /api/v1/models.

Platform Keys

Running a platform with your own users? Mint credit-capped sub-keys from your server and hand one to each user — no dogecat signup for them, hard spend cap per key, usage attributed per key. $1 of credit = 5M standard tokens (the $0.20/M rate). Pools are cost-weighted — each model draws at its own rate; live per-model pricing at /api/v1/models. Sub-keys can only call chat completions; your admin key (from the dashboard) manages them.

1Mint a $1 key for each of your users

curl https://dogecat.com/api/v1/keys \
  -H "Authorization: Bearer $DOGECAT_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "user-42", "credit_usd": 1, "metadata": {"user_id": "42"}}'

# -> { "key": "sk-gc-...", "api_key": { "tokens_allocated": 5000000, ... } }
# The key is shown once — store it and hand it to your user.

2Your user calls the API with it — any OpenAI client works

client = OpenAI(base_url="https://dogecat.com/api/v1", api_key=user_key)
client.chat.completions.create(model="moonshotai/Kimi-K2.6", messages=[...])

# When the credit runs out the API returns 402 insufficient_key_credit.

3Track, top up, or revoke from your server

# usage per key (tokens_used / tokens_remaining)
curl https://dogecat.com/api/v1/keys -H "Authorization: Bearer $DOGECAT_ADMIN_KEY"

# 30-day usage report per key — JSON, or format=csv for spreadsheets
curl "https://dogecat.com/api/v1/usage?group_by=key&days=30" \
  -H "Authorization: Bearer $DOGECAT_ADMIN_KEY"

# add another $1 of credit
curl -X PATCH https://dogecat.com/api/v1/keys/KEY_ID \
  -H "Authorization: Bearer $DOGECAT_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"add_credit_usd": 1}'

# cut a key off immediately
curl -X DELETE https://dogecat.com/api/v1/keys/KEY_ID \
  -H "Authorization: Bearer $DOGECAT_ADMIN_KEY"
dogecatdogecat
ChatTerms