Inversify
Developer API Reference
Back to app
v1 API

Developer API Reference

Inversify's Developer API lets you call 93+ AI models through a single OpenAI-compatible endpoint. Requests are charged from your API Spark pool — separate from your chat usage.

Base URL

All API requests should use the following base URL:

https://chat.inversify.live/v1

The API is OpenAI-compatible — you can use the official OpenAI SDK by overriding the baseURL option.

Authentication

Pass your API key in the Authorization header as a Bearer token:

HTTP Header
Authorization: Bearer inv_sk_your_key_here

Generate API keys in Settings → API Keys. You can create up to 5 keys per account. The full key is shown only once on creation — store it securely.

Rate Limits

LimitValue
Requests per minute60
API Spark balanceBased on purchased packs — never expire

When rate limited you receive a 429 response. The X-RateLimit-Remaining header shows requests remaining in the current window.

Endpoints

#POST /v1/chat/completions

Generate a chat completion. Compatible with the OpenAI Chat Completions API.

Request body

JSON
{
  "model": "gpt-4o",              // required — model ID from /v1/models
  "messages": [                   // required — array of messages
    { "role": "system",  "content": "You are a helpful assistant." },
    { "role": "user",    "content": "Hello!" }
  ],
  "stream": false,                // optional, default false
  "temperature": 0.7,             // optional, 0.0–1.0
  "max_tokens": 1024              // optional
}

Non-streaming response

JSON
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1718000000,
  "model": "gpt-4o",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "Hello! How can I help you today?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 12,
    "total_tokens": 37
  }
}

Streaming response ("stream": true)

When streaming, the response is a text/event-stream with server-sent events (SSE):

SSE
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1718000000,"model":"gpt-4o","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1718000000,"model":"gpt-4o","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1718000000,"model":"gpt-4o","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

#GET /v1/models

List all available models. No authentication required.

JSON
{
  "object": "list",
  "data": [
    {
      "id": "gpt-4o",
      "object": "model",
      "created": 1704067200,
      "owned_by": "openai",
      "context_window": 128000,
      "capabilities": ["text", "vision", "code", "reasoning"]
    },
    // ... more models
  ]
}

Models

All models available through the API. Use the id field in your requests.

Model IDProviderContextCost Tier
gpt-5.4-proOpenAI200Khigh
gpt-5.4OpenAI200Khigh
gpt-5.4-miniOpenAI128Kmedium
gpt-5.4-nanoOpenAI128Klow
gpt-5.3-codexOpenAI200Khigh
gpt-5.3-instantOpenAI128Klow
gpt-5.2OpenAI200Kmedium
gpt-5.1-codexOpenAI128Kmedium
gpt-4.5OpenAI128Kmedium
gpt-4.1OpenAI1.0Mmedium
gpt-4.1-miniOpenAI1.0Mlow
gpt-4.1-nanoOpenAI1.0Mlow
gpt-4oOpenAI128Kmedium
gpt-4o-miniOpenAI128Klow
o4-miniOpenAI200Kmedium
o3-proOpenAI200Khigh
o3OpenAI200Khigh
o3-deep-researchOpenAI200Khigh
o4-mini-deep-researchOpenAI200Kmedium
o3-miniOpenAI200Kmedium
claude-opus-4-6Anthropic200Khigh
claude-sonnet-4-6Anthropic200Kmedium
claude-haiku-4-5Anthropic200Klow
claude-opus-4-5Anthropic200Khigh
claude-sonnet-4-5Anthropic200Kmedium
claude-opus-4Anthropic200Khigh
claude-sonnet-4Anthropic200Kmedium
claude-sonnet-3.5Anthropic200Kmedium
claude-haiku-3.5Anthropic200Klow
claude-3-opusAnthropic200Khigh
gemini-3.1-proGoogle2.1Mhigh
gemini-3.1-flashGoogle1.0Mlow
gemini-3.1-flash-liteGoogle1.0Mlow
gemini-3-proGoogle1.0Mhigh
gemini-3-flashGoogle1.0Mmedium
gemini-3-deep-thinkGoogle1.0Mhigh
gemini-2.5-proGoogle1.0Mmedium
gemini-2.5-flashGoogle1.0Mlow
gemini-2.5-flash-liteGoogle1.0Mlow
gemini-2.0-flashGoogle1.0Mlow
gemini-2.0-flash-liteGoogle1.0Mlow
gemini-nanoGoogle33Klow
gemma-3nFireworks33Klow
gemma-3Fireworks131Klow
gemma-2Fireworks8Klow
gemma-2-9bFireworks8Klow
gemmaFireworks8Klow
grok-3xAI131Kmedium
grok-3-fastxAI131Kmedium
grok-3-minixAI131Klow
grok-3-mini-fastxAI131Klow
grok-2xAI131Klow
llama-4-maverickFireworks131Kmedium
llama-4-scoutFireworks131Klow
llama-3.3-70bFireworks131Klow
llama-3.1-405bFireworks131Kmedium
deepseek-v3Fireworks131Klow
deepseek-r1Fireworks131Klow
qwen-2.5-72bFireworks131Klow
qwen3-235bFireworks131Kmedium
mistral-smallFireworks66Klow
elephant-alphaopenrouter262Kfree
openrouter-freeopenrouter200Kfree
llama-4-scout-freeopenrouter512Kfree
llama-4-maverick-freeopenrouter1.0Mfree
llama-3.3-70b-freeopenrouter131Kfree
llama-3.2-3b-freeopenrouter131Kfree
deepseek-r1-freeopenrouter164Kfree
deepseek-v3-freeopenrouter164Kfree
gemma-4-31b-freeopenrouter262Kfree
gemma-4-26b-freeopenrouter262Kfree
gemma-3-27b-freeopenrouter131Kfree
gemma-3-12b-freeopenrouter131Kfree
gemma-3-4b-freeopenrouter131Kfree
gemma-3n-4b-freeopenrouter32Kfree
gemma-3n-2b-freeopenrouter8Kfree
qwen3-coder-freeopenrouter1.0Mfree
qwen3-14b-freeopenrouter41Kfree
qwen3-next-80b-freeopenrouter262Kfree
mistral-small-freeopenrouter131Kfree
nemotron-3-super-freeopenrouter1.0Mfree
nemotron-3-nano-freeopenrouter256Kfree
nemotron-nano-12b-vl-freeopenrouter128Kfree
nemotron-nano-9b-freeopenrouter32Kfree
minimax-m2.5-freeopenrouter205Kfree
hermes-3-405b-freeopenrouter131Kfree
gpt-oss-120b-freeopenrouter131Kfree
gpt-oss-20b-freeopenrouter131Kfree
glm-4.5-air-freeopenrouter131Kfree
lfm-2.5-thinking-freeopenrouter33Kfree
lfm-2.5-instruct-freeopenrouter33Kfree
trinity-large-freeopenrouter131Kfree
dolphin-mistral-freeopenrouter33Kfree

Spark Costs

100,000 Sparks = $1. API Sparks are a separate pool from Chat Sparks — they don't affect your chat usage and vice versa. Costs vary by model and message length; the table below shows approximate costs per typical message (~500 input + ~700 output tokens).

Model tierExamplesApprox. Sparks/msg
Nano / Minigpt-4.1-nano, gemini-2.0-flash-lite~100–500
Mid-tiergpt-4o, claude-sonnet-4~500–5,000
Premiumclaude-opus-4-6, o3-pro~5,000–60,000

Exact per-model estimates (500 in + 700 out tokens):

ModelSparks/msg
gpt-5.4-nano~250
gpt-5.3-instant~250
gpt-4.1-mini~250
gpt-4.1-nano~250
gpt-4o-mini~250
gemini-3.1-flash~250
gemini-3.1-flash-lite~250
gemini-3-flash~250
gemini-2.5-flash~250
gemini-2.5-flash-lite~250
gemini-2.0-flash~250
gemini-2.0-flash-lite~250
gemini-nano~250
gemma-3n~250
gemma-3~250
gemma-2~250
gemma-2-9b~250
gemma~250
grok-3-mini~250
llama-4-maverick~250
llama-4-scout~250
llama-3.3-70b~250
deepseek-v3~250
deepseek-r1~250
qwen-2.5-72b~250
qwen3-235b~250
mistral-small~250
elephant-alpha~250
openrouter-free~250
llama-4-scout-free~250
llama-4-maverick-free~250
llama-3.3-70b-free~250
llama-3.2-3b-free~250
deepseek-r1-free~250
deepseek-v3-free~250
gemma-4-31b-free~250
gemma-4-26b-free~250
gemma-3-27b-free~250
gemma-3-12b-free~250
gemma-3-4b-free~250
gemma-3n-4b-free~250
gemma-3n-2b-free~250
qwen3-coder-free~250
qwen3-14b-free~250
qwen3-next-80b-free~250
mistral-small-free~250
nemotron-3-super-free~250
nemotron-3-nano-free~250
nemotron-nano-12b-vl-free~250
nemotron-nano-9b-free~250
minimax-m2.5-free~250
hermes-3-405b-free~250
gpt-oss-120b-free~250
gpt-oss-20b-free~250
glm-4.5-air-free~250
lfm-2.5-thinking-free~250
lfm-2.5-instruct-free~250
trinity-large-free~250
dolphin-mistral-free~250
gpt-5.4-mini~304
grok-3-mini-fast~357
claude-haiku-4-5~368
claude-haiku-3.5~368
llama-3.1-405b~414
o4-mini~417
o3-mini~417
gpt-5.1-codex~759
gpt-4.1~759
gpt-4o~759
o4-mini-deep-research~759
gemini-2.5-pro~877
grok-2~920
gemini-3-pro~1,081
gpt-4.5~1,138
gemini-3.1-pro~1,351
claude-sonnet-4-6~1,380
claude-sonnet-4-5~1,380
claude-sonnet-4~1,380
claude-sonnet-3.5~1,380
grok-3~1,380
gpt-5.2~1,518
gemini-3-deep-think~1,840
gpt-5.3-codex~2,277
grok-3-fast~2,300
gpt-5.4~3,036
o3~3,795
o3-deep-research~5,693
claude-opus-4-6~6,900
claude-opus-4-5~6,900
claude-opus-4~6,900
claude-3-opus~6,900
gpt-5.4-pro~7,590
o3-pro~7,590

API Spark Packs

API Sparks are purchased separately from your subscription. Your API Spark balance never expires. Purchase any time from Settings → API Keys.

PackAPI SparksPrice
Starter100,000$1
Builder500,000$4
Pro Dev1,500,000$10

Admins can also grant API Sparks directly to accounts. Sparks are never tied to a subscription plan and do not reset monthly.

Code Examples

#cURL

bash
curl https://chat.inversify.live/v1/chat/completions \
  -H "Authorization: Bearer inv_sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

#Python (OpenAI SDK)

Python
from openai import OpenAI

client = OpenAI(
    api_key="inv_sk_your_key", base_url="https://chat.inversify.live/v1"
)

response = client.chat.completions.create(
    model="gpt-4o", messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

#Node.js (OpenAI SDK)

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "inv_sk_your_key", baseURL: "https://chat.inversify.live/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o", messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

#Streaming (Node.js)

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "inv_sk_your_key", baseURL: "https://chat.inversify.live/v1",
});

const stream = await client.chat.completions.create({
  model: "gpt-4o", messages: [{ role: "user", content: "Tell me a short story." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
console.log(); // newline

Error Codes

Errors are returned as JSON with an error object:

JSON
{
  "error": {
    "message": "Invalid API key",
    "type": "authentication_error",
    "code": "unauthorized"
  }
}
HTTP StatusError typeDescription
401authentication_errorMissing, invalid, or expired API key
402insufficient_quotaInsufficient API Sparks — top up at Settings → API Keys
403insufficient_quotaNo API Sparks available — purchase a pack to get started
404invalid_request_errorModel not found or not available for chat completions
429rate_limit_errorToo many requests — 60 req/min limit exceeded
500api_errorInternal server error — try again later

Inversify Developer API — OpenAI-compatible gateway