AI API Gateway · OpenAI Compatible

API Reference

MonkeyAI API reference: endpoints, auth, request examples, model names, and Python/Node.js SDK setup.

API Reference

MonkeyAI provides OpenAI-compatible endpoints and Claude-compatible message endpoints.

Base URL

https://monkeytheme.com/v1

Authentication

Use Bearer token authentication:

Authorization: Bearer sk-your-api-key

List models

GET /v1/models

Example:

curl https://monkeytheme.com/v1/models \
  -H "Authorization: Bearer sk-your-api-key"

Chat completions

POST /v1/chat/completions

Example:

curl https://monkeytheme.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Explain API gateways briefly."}
    ],
    "temperature": 0.7
  }'

Claude Messages

POST /v1/messages

Example:

curl https://monkeytheme.com/v1/messages \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-20250514-20250514",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Write a concise project plan."}
    ]
  }'

Python SDK

from openai import OpenAI

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

res = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Hello"}],
)

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

Node.js SDK

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-your-api-key",
  baseURL: "https://monkeytheme.com/v1",
});

const res = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "user", content: "Hello" }],
});

console.log(res.choices[0].message.content);

Response errors

Common errors:

  • 401: invalid or missing API key
  • 403: no permission or account restricted
  • 404: wrong endpoint or model not found
  • 429: rate limit or concurrency limit
  • 503: upstream temporarily unavailable

See the FAQ page for troubleshooting steps.