Qubittron Bastion
API reference

Embeddings

POST /v1/embeddings — vector embeddings for search and RAG.

POST https://api.qubittron.ai/v1/embeddings

Generate dense vector embeddings, OpenAI-compatible.

Authentication

Authorization: Bearer qbt_<key>

Request body

FieldTypeRequiredNotes
modelstringyesEmbedding model id
inputstring | string[]yesSingle string or array (batch)
encoding_format, dimensions, uservariousnoPassthrough

Supported models

ModelDimContextNotes
Qwen3-Embedding-8Bvaries32KHigh quality, larger
bge-m310248KMultilingual, strong default
bge-multilingual-gemma2varies8KMultilingual, Gemma2 base

Examples

curl https://api.qubittron.ai/v1/embeddings \
  -H "Authorization: Bearer $QUBITTRON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bge-m3",
    "input": "hello world"
  }'
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.qubittron.ai/v1",
  apiKey: process.env.QUBITTRON_API_KEY,
});

// Single
const single = await client.embeddings.create({
  model: "bge-m3",
  input: "hello world",
});

// Batch
const batch = await client.embeddings.create({
  model: "bge-m3",
  input: ["one", "two", "three"],
});
console.log(batch.data.map((d) => d.embedding.length));
const res = await fetch("https://api.qubittron.ai/v1/embeddings", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.QUBITTRON_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ model: "bge-m3", input: "hello world" }),
});
const json = (await res.json()) as {
  data: { object: "embedding"; embedding: number[]; index: number }[];
  model: string;
  usage: { prompt_tokens: number; total_tokens: number };
};
console.log(json.data[0].embedding.slice(0, 4));

Response

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.0123, -0.0456, ...],
      "index": 0
    }
  ],
  "model": "bge-m3",
  "usage": {
    "prompt_tokens": 2,
    "total_tokens": 2
  }
}

Errors

StatusCodeWhen
400invalid_requestBody failed validation
400model_not_foundModel unknown or doesn't support embeddings
401invalid_api_keyMissing/invalid Bearer token
402insufficient_fundsAccount credit exhausted
429rate_limit_exceededRate limit hit
502upstream_errorUpstream model unreachable or 5xx

Pricing

Metered per input token. Embedding endpoints have no output token cost.

On this page