Skip to content
Daaeonyx AI

Documentation

OpenAI- and Anthropic-compatible. Point your base URL at Daaeonyx and your existing code just works.

Quickstart

Two changes to your existing OpenAI setup: the base URL and your API key. Grab your key from your dashboard, then make your first call.

Base URLhttps://api.daaeonyxai.com/v1

Authentication

Every request needs your API key in one of two headers — Authorization: Bearer for OpenAI clients, or x-api-key for Anthropic clients (Claude Code).

cURL
curl https://api.daaeonyxai.com/v1/chat/completions \
  -H "Authorization: Bearer $DAAEONYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-flagship",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    api_key="$DAAEONYX_API_KEY",
    base_url="https://api.daaeonyxai.com/v1",
)
resp = client.chat.completions.create(
    model="qwen-flagship",
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)

Replace $DAAEONYX_API_KEY with your key from the dashboard.

Models

One plan, every model. Pass the model id in the model field. The two chat ids are the same engine (Qwen 3.6, 256K context) — the only difference is whether it reasons before answering.

qwen-flagshipChat — general use, code, agents. Direct answer.
qwen-flagship-deepChat with explicit step-by-step reasoning (returns reasoning_content).
qwen3-asrSpeech → text (transcription).
qwen3-ttsText → speech (9 voices).
z-image-turboText → image.

Chat

The core endpoint, fully OpenAI-compatible — in curl or any OpenAI SDK.

cURL
curl https://api.daaeonyxai.com/v1/chat/completions \
  -H "Authorization: Bearer $DAAEONYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-flagship",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Reasoning

qwen-flagship answers directly (best for code agents, where thinking would waste context). For multi-step reasoning use qwen-flagship-deep and raise max_tokens.

Python
resp = client.chat.completions.create(
    model="qwen-flagship-deep",
    messages=[{"role": "user", "content": "Prove sqrt(2) is irrational."}],
    max_tokens=2000,   # reasoning consumes tokens
)
print(resp.choices[0].message.reasoning_content)  # the chain of thought
print(resp.choices[0].message.content)            # the final answer

If you use a reasoning model with max_tokens too low, it can spend the whole budget thinking and return empty content. Raise max_tokens, or use qwen-flagship.

Streaming

Set stream: true for a token-by-token response.

Python
stream = client.chat.completions.create(
    model="qwen-flagship",
    messages=[{"role": "user", "content": "Tell a short story."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Anthropic / Claude Code

Daaeonyx also speaks the Anthropic Messages API — it works with Claude Code. Use the x-api-key header.

cURL
curl https://api.daaeonyxai.com/v1/messages \
  -H "x-api-key: $DAAEONYX_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-flagship",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Voice

Text-to-speech (qwen3-tts) and speech-to-text (qwen3-asr). Voices: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian.

cURL · TTS
curl https://api.daaeonyxai.com/v1/audio/speech \
  -H "Authorization: Bearer $DAAEONYX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen3-tts", "voice": "ryan", "input": "Hello from Daaeonyx."}' \
  --output speech.wav
cURL · STT
curl https://api.daaeonyxai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $DAAEONYX_API_KEY" \
  -F "file=@audio.wav" -F "model=qwen3-asr"

Images

Generate images with z-image-turbo. The response carries the image as base64 (b64_json) — decode and save it.

Python
img = client.images.generate(
    model="z-image-turbo",
    prompt="an astronaut cat over Earth, watercolor",
    n=1,
)
import base64
with open("cat.png", "wb") as f:
    f.write(base64.b64decode(img.data[0].b64_json))

Limits & errors

Unlimited usage — no token quota, no spend cap. The only limits are rate, to keep the service stable for everyone:

  • 3 concurrent requests
  • 100 requests / minute
  • 2.5M tokens / minute

Common errors

  • 401 missing API key — send the Authorization (or x-api-key) header.
  • 403 invalid or revoked key — check you copied the full key, no spaces.
  • 429 too many requests — back off and retry.
  • Empty content — a reasoning model with max_tokens too low. Raise it, or use qwen-flagship.