RAG · MANAGED VECTOR STORES

Managed RAG behind the file_search API.

Most teams building a RAG product end up gluing four pieces together: a parser for whatever files customers upload, a vector index that scales per-customer, an eval surface so support can answer 'why is search bad today' and a billing pipeline that ties the embedding spend back to the right tenant. We've been on that side of the table. Ringside ships the four pieces as one product.

The wire format is OpenAI's. POST /v1/vector_stores, then call file_search inside an Assistants run. The pieces we built differently from the hosted alternatives are pricing, file-type coverage, model choice and how much of the retrieval pipeline you can see.

OpenAI-compatible · 25+ MIME types · Wallet credits don't expire

Four calls from zero to a working search

# 1. Create a vector store
curl https://api.fightclub.pro/v1/vector_stores \
  -H "Authorization: Bearer $FC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"acme-handbook","embedding_model":"text-embedding-3-small"}'
# => { "id": "vs_abc", ... }

# 2. Upload a file (any of 25+ MIME types: pdf, docx, pptx, png, mp3, ...)
curl https://api.fightclub.pro/v1/files \
  -H "Authorization: Bearer $FC_API_KEY" \
  -F purpose=attachments -F file=@handbook.pdf
# => { "id": "file_xyz", ... }

# 3. Attach the file to the store
curl https://api.fightclub.pro/v1/vector_stores/vs_abc/files \
  -H "Authorization: Bearer $FC_API_KEY" \
  -d '{"file_id":"file_xyz"}'

# 4. Query from inside an Assistants run
curl https://api.fightclub.pro/v1/threads/$THREAD/runs \
  -H "Authorization: Bearer $FC_API_KEY" \
  -d '{
    "assistant_id":"asst_...",
    "tools":[{"type":"file_search","file_search":{"vector_store_ids":["vs_abc"]}}]
  }'

Past the first four calls, the full /v1/vector_stores surface mirrors OpenAI's: GET to list stores or files, PATCH/DELETE on a store, POST /file_batches for up to 500 file_ids in one call, cancel/retry on stuck ingests, a query log + stats endpoint, and embedding-model migrations with 7-day rollback. Full reference at /docs/vector_stores.

What you get

Open file-type ingestion

25+ MIME types in v1, no extra parsing tier. PDF and Word, but also PowerPoint, images with text in them, audio you want transcribed, CSV tables. Anything a modern vision or audio model can read, we route through the right parser and bill you the parse tokens we actually used. No per-file flat fee.

Per-customer isolation by default

Each vector store maps to one tenant in our index. Cross-customer reads return 404, not 403, so a buggy assistant in a multi-tenant app can't probe for the existence of another tenant's data. Delete a customer and the whole tenant goes with them.

Two billing lines, total

Tokens for parse, embed, query and re-embed. Per-GB-day for what we hold in the index and in file storage. That's it. The first 1 GB-day per month is free. Most managed vector products bill four or five separate line items; we bill two.

Swap embedding models without re-uploading

Pick a different embedding model in the dashboard. We re-embed in the background and swap to the new model atomically so your queries never hit a half-populated index. The previous index sticks around for seven days in case you want to roll back. The parse step is cached, so you pay embedding tokens only.

Retrieval you can actually inspect

Every query writes a row to the query log with the question text, top-K scores, returned file IDs, latency and embedding tokens. The stats tab on the dashboard rolls those up into queries-per-day, p95 latency, empty-result rate and a daily cost line. When a customer says 'your search is bad', you can show them why.

Credits don't expire

Top up the wallet and the balance stays available until you spend it. Hosted alternatives often expire unused credits after 12 months. We don't.

Pricing in two lines

Tokens
Pass-through model rates with a small platform margin. Parse, embed, query and re-embed all bill the same way.
Storage
$0.10 per GB-day on the vector index, $0.02 per GB-day on file storage. First 1 GB-day per store per month is free.
Wallet credits never expire. Per-customer top-ups and budgets work the same as the rest of Ringside.