Developer API

Every model,
one API key

An OpenAI-compatible endpoint for your scripts, agents and tools. It spends the same daily credits your $INTEL gives you in the chat.

Quick start

Create a key at /developers (connect your wallet first), then point any OpenAI SDK at our base URL.

# Base URL
https://intellect.zip/api/v1
curl https://intellect.zip/api/v1/chat/completions \
  -H "Authorization: Bearer $INTELLECT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-haiku-5.5",
    "messages": [
      {"role": "system", "content": "You are concise."},
      {"role": "user", "content": "Explain zero data retention in one sentence."}
    ]
  }'

Python (openai package)

from openai import OpenAI

client = OpenAI(base_url="https://intellect.zip/api/v1", api_key="intel_…")

stream = client.chat.completions.create(
    model="openai/gpt-6-luna",
    messages=[{"role": "user", "content": "Write a haiku about Elysium."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

JavaScript / TypeScript (openai package)

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://intellect.zip/api/v1", apiKey: process.env.INTELLECT_API_KEY });

const res = await client.chat.completions.create({
  model: "google/gemini-3.5-flash-lite",
  messages: [
    { role: "user", content: [
      { type: "text", text: "What's in this picture?" },
      { type: "image_url", image_url: { url: "https://example.com/photo.jpg" } },
    ] },
  ],
});
console.log(res.choices[0].message.content);

Endpoints

POST /chat/completions

Same request and response shape as OpenAI's Chat Completions. Supported fields:

  • model: any id from GET /models, e.g. anthropic/claude-sonnet-5.5.
  • messages: roles system, developer, user, assistant. Content can be a string or parts of type text and image_url (https or a data:image/… URL under 1.5 MB) for models that read images.
  • stream (Server-Sent Events, ends with data: [DONE]) and stream_options.include_usage.
  • max_tokens / max_completion_tokens (capped at our per-reply limit), temperature, top_p, stop, presence_penalty, frequency_penalty, seed.
  • Not yet: tools / function calling, n greater than 1, logprobs, audio. Requests that use them get a clear 400 error.

GET /models

The models your key can use today, based on your wallet's tier. Each entry also says whether the model reads images or PDFs.

Billing

  • Every request is paid from your wallet's credits, the same balance as the chat: your daily share first, then any top-ups.
  • Before a request runs we hold its worst-case cost; afterwards you're charged what the provider actually billed, never more than the hold. If a request fails before any text, it's free.
  • Give each key a daily cap at /developers so one script can't use up your whole allowance.
  • Credits reset at 00:00 UTC. Your daily amount is your share of the daily pool, set by how much $INTEL you hold (how the pool works). Top-up credits you bought are used after it runs out.

Privacy

API requests get the same treatment as the chat: routed through Vercel AI Gateway with zero data retention, and never stored or logged by us. We keep only the model, token counts, cost and time per request, linked to the key that made it. We store a hash of your key, never the key itself.

Errors

StatuscodeMeaning
401invalid_api_keyThe key is missing, wrong or revoked.
402insufficient_creditsYour wallet's credits for today can't cover this request's worst case. Credits reset at 00:00 UTC.
402key_cap_reachedThis key's own daily cap is reached (your wallet may still have credits).
403model_not_allowedYour $INTEL tier can't use that model.
404model_not_foundUnknown model id. List yours with GET /models.
429rate_limit_exceededToo many requests from this key in the last minute.
502upstream_errorThe model provider failed before replying. You are not charged.

Errors use OpenAI's shape: {"error": {"message", "type", "code"}}. 11 models are available in total; your tier decides which.