Documentation

Inferyes is the API gateway in front of OVERBRING Labs' own inference infrastructure. This is a short guide to what it offers and how to call it, for the people we build with. It is not a public API: there is no signup and no pricing, and access is by invitation.

Authentication

Every request carries an API token as a bearer token: Authorization: Bearer obl_…. The token belongs to a workspace, and the workspace is the consumer: usage, limits and accounting are per token and per workspace, so a project sees exactly its own consumption. Tokens are minted in the operator UI, and a token that is revoked stops working immediately.

Operations

Flat, non-streaming calls that wrap a preset: one thing in, one shaped answer out. The prompt and the model behind each operation are data rather than code, so we tune an operation without a deploy. Grouped by what a product is trying to do, and precise about what each takes: text for every operation, and images for the ones that judge rather than write — classification, sentiment, PII, quality and moderation.

Summarise and label

POST /api/v1/summarize
A summary, within an optional word budget.
POST /api/v1/title
One title, within a length limit.
POST /api/v1/synopsis
A short synopsis, for a listing or a feed.
POST /api/v1/tags
A list of tags drawn from the text.

Sort and extract

POST /api/v1/classify/document_type
A label and a confidence score for what kind of document it is.
POST /api/v1/classify/business_party
Who the document is from, or about.
POST /api/v1/extract
Structured JSON out of prose, against a schema you set.

Check and judge

These accept text or images, and answer with a label and a score rather than prose.

POST /api/v1/sentiment
A sentiment label with a confidence score.
POST /api/v1/quality
A verdict and a score on how usable the text is.
POST /api/v1/moderate
A verdict, with the categories it found.
POST /api/v1/pii
Personal data found in the text, so you can decide what to do with it.

Translate

POST /api/v1/translate
Translation, using the same token and the same meters as everything else.

Model calls

The OpenAI shape, for when your application wants the model rather than a finished answer. Chat carries images too, for the models that read them. You name a model and the gateway runs it. Chat, embeddings and rerank are OpenAI-compatible end to end; image generation answers in the same shape, and generation parameters such as steps, cfg_scale and seed are honoured on the models that take them.

Your workspace reaches the models that were granted to it. A call for any other model answers model_not_found, and the same rule decides what GET /api/v1/models lists, so the list never offers a model a call would refuse.

Talk, embed, rank

POST /api/v1/chat/completions
Chat, streaming included.
POST /api/v1/embeddings
Vectors, for retrieval.
POST /api/v1/rerank
Reorders candidates by relevance to a query.

Decide, and draw

POST /api/v1/systemone
The small decision model, for a choice rather than a paragraph.
POST /api/v1/images/generations
Image generation, with steps, cfg_scale, sampling_method and seed honoured where the model takes them.

See what you can reach

GET /api/v1/models
The models your workspace may call.

Runs, and pipelines

A run is one unit of work: an operation, or a whole preset tree — a pipeline of model steps with dependencies, which is how a document gets extracted, classified, summarized and routed without any of that logic living in your application. Four things you do with one, in order.

Start

POST /api/v1/runs
A preset tree, or an operation. Awaited, or async with 202 and the run id.

Watch

GET /api/v1/runs/:id
The run, its steps and its status.
GET /api/v1/runs/:id/stream
Server-sent events for the same thing as it happens: status and ids, never content.

Collect

GET /api/v1/runs/:id/output
Take the result, once. Taking it is what clears it.

Stop

POST /api/v1/runs/:id/cancel
Stop a run that has not finished: work still in the queue stops, a call already at a model does not.

A finished run's output is delivered once, which is what Zero Data Retention means in practice: the snapshot carries output_cleared_at so an empty answer is never mistaken for a run that produced nothing. See the Zero Data Retention page

Text extraction

Documents arrive by URL or upload, are fetched and extracted by workers, and the text is handed to the caller. Text you already hold needs none of this. The gateway keeps the extracted text only long enough for a poller to collect it, and three calls cover the whole exchange.

Send a document

POST /v1/fetch
Extract from a URL.
POST /v1/upload
Extract from an uploaded file, up to 50 MB.

Collect the text

GET /v1/status/:uuid
Poll until the text is ready. Polls are safe to repeat.
POST /v1/ack/:uuid
Acknowledge it once you hold it: the parked text is then deleted.

Check what it cost

GET /v1/usage
Jobs, bytes and failures for your workspace, per window.

MCP rolling out

The operations are also exposed as a Model Context Protocol server, so an agent can call them as tools instead of you writing HTTP: one tool per operation, with its input schema derived from the preset that backs it, which means a tool changes when the operation changes. Point an MCP client at the gateway's /mcp endpoint with the same bearer token, and the tools your workspace is entitled to appear. It is rolling out across workspaces now; ask us and we will enable it for yours.

Limits and errors

  • Uploads: 50 MB per document.
  • A run that a synchronous call waits on answers after two minutes with 202 and a run id, rather than holding the connection.
  • A stream stays open for thirty minutes, and pings every fifteen seconds.
  • A finished run's output can be collected for an hour, once.
  • Errors carry a type and a message, for example invalid_request_error, model_not_found (the model is not one your workspace may call), run_not_found, run_not_finished, and output_not_available (the output was already taken, or its hour passed).

The service's current numbers are on the overview, and the retention rules are on the Zero Data Retention page