Skip to content

Fetch

POST
/v1/fetch
curl --request POST \
--url https://router.telem.ai/v1/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "session_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "urls": [ "example" ], "options": { "providers": [ "example" ], "inline_content": true, "inline_max_chars": 1, "content_format": "markdown", "tier": "minimalist", "max_age_seconds": 1, "no_cache": true }, "metadata": {} }'

Read whole pages by URL, several per call. Individual limits — the per-call URL cap among them — are set by the deployment; see Parameters & Configuration.

Media typeapplication/json
FetchRequest
object
session_id
Any of:
string format: uuid
urls
required
Urls
Array<string>
options
Any of:
FetchOptions

Typed replacement for the metadata.web_fetch grab-bag. max_urls is deliberately absent — the server cap is the cap (spec 2026-08-03).

object
providers
Any of:
Array<string>
>= 1 items
inline_content
Any of:
boolean
inline_max_chars
Any of:
integer
>= 1
content_format
Any of:
string
Allowed values: markdown text
tier
Any of:
string
Allowed values: minimalist default extended max
max_age_seconds
Any of:
integer
no_cache
Any of:
boolean
metadata
Metadata
object
key
additional properties
any

Successful Response

Media typeapplication/json
InteractionResponse
object
instance_id
required
Instance Id
string
session_id
required
Session Id
string format: uuid
interaction_id
required
Interaction Id
string format: uuid
trajectory_id
Any of:
string format: uuid
parent_trajectory_id
Any of:
string format: uuid
trajectory_goal
Any of:
string
status
required
Status
string
preprocessor_runs
required
Preprocessor Runs
Array<object>
PreprocessorRunResult
object
id
Any of:
string format: uuid
preprocessor_name
required
Preprocessor Name
string
status
required
Status
string
batch_index
Batch Index
integer
0
query
Query
string
""
request_payload
required
Request Payload
object
key
additional properties
any
output_payload
Any of:
object
key
additional properties
any
raw_payload
Any of:
object
key
additional properties
any
error
Any of:
object
key
additional properties
any
latency_ms
Any of:
integer
postprocessor_runs
required
Postprocessor Runs
Array<object>
PostprocessorRunResult
object
id
Any of:
string format: uuid
postprocessor_name
required
Postprocessor Name
string
status
required
Status
string
batch_index
Batch Index
integer
0
query
Query
string
""
preprocessor_run_ids
Preprocessor Run Ids
Array<string>
output_payload
required
Output Payload
object
key
additional properties
any
error
Any of:
object
key
additional properties
any
latency_ms
Any of:
integer
created_at
required
Created At
string format: date-time
completed_at
Any of:
string format: date-time
normalized_schema_version
Any of:
integer
Example
{
"preprocessor_runs": [
{
"batch_index": 0,
"query": ""
}
],
"postprocessor_runs": [
{
"batch_index": 0,
"query": ""
}
]
}

Typed request rejection. error.code is the contract and is append-only: missing_urls, invalid_url, over_url_cap, duplicate_urls, invalid_kind, invalid_session, invalid_request, unknown_provider.

Media typeapplication/json
ApiErrorResponse

Declared on the typed routes so the published OpenAPI shows the shape that actually arrives. Without it the schema advertises FastAPI’s HTTPValidationError{"detail": [...]} — and a client generated from docs.telem.ai cannot deserialize the envelope, nor discover the codes it is supposed to branch on.

object
error
required
ApiErrorDetail

The error object of the typed envelope (spec 2026-08-03 §2).

object
code
required
Code
string
message
required
Message
string
param
Any of:
string
interaction_id
Any of:
string
session_id
Any of:
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"param": "example",
"interaction_id": "example",
"session_id": "example"
}
}

Missing or invalid API key.

Media typeapplication/json
ApiErrorResponse

Declared on the typed routes so the published OpenAPI shows the shape that actually arrives. Without it the schema advertises FastAPI’s HTTPValidationError{"detail": [...]} — and a client generated from docs.telem.ai cannot deserialize the envelope, nor discover the codes it is supposed to branch on.

object
error
required
ApiErrorDetail

The error object of the typed envelope (spec 2026-08-03 §2).

object
code
required
Code
string
message
required
Message
string
param
Any of:
string
interaction_id
Any of:
string
session_id
Any of:
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"param": "example",
"interaction_id": "example",
"session_id": "example"
}
}

Key may not execute fetches.

Media typeapplication/json
ApiErrorResponse

Declared on the typed routes so the published OpenAPI shows the shape that actually arrives. Without it the schema advertises FastAPI’s HTTPValidationError{"detail": [...]} — and a client generated from docs.telem.ai cannot deserialize the envelope, nor discover the codes it is supposed to branch on.

object
error
required
ApiErrorDetail

The error object of the typed envelope (spec 2026-08-03 §2).

object
code
required
Code
string
message
required
Message
string
param
Any of:
string
interaction_id
Any of:
string
session_id
Any of:
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"param": "example",
"interaction_id": "example",
"session_id": "example"
}
}

Body failed schema validation. error.param points at the offending field (urls[1]).

Media typeapplication/json
ApiErrorResponse

Declared on the typed routes so the published OpenAPI shows the shape that actually arrives. Without it the schema advertises FastAPI’s HTTPValidationError{"detail": [...]} — and a client generated from docs.telem.ai cannot deserialize the envelope, nor discover the codes it is supposed to branch on.

object
error
required
ApiErrorDetail

The error object of the typed envelope (spec 2026-08-03 §2).

object
code
required
Code
string
message
required
Message
string
param
Any of:
string
interaction_id
Any of:
string
session_id
Any of:
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"param": "example",
"interaction_id": "example",
"session_id": "example"
}
}

provider_unavailable: the request PINNED options.providers and every URL failed before its target was reached. Raised only for a pinned chain — a dead link, a paywall or an empty page is the target’s answer and stays a 200 result. The interaction was recorded and billed, so error.session_id and error.interaction_id identify the run. session_id is returned even when the request omitted one, since it was minted during dispatch.

Media typeapplication/json
ApiErrorResponse

Declared on the typed routes so the published OpenAPI shows the shape that actually arrives. Without it the schema advertises FastAPI’s HTTPValidationError{"detail": [...]} — and a client generated from docs.telem.ai cannot deserialize the envelope, nor discover the codes it is supposed to branch on.

object
error
required
ApiErrorDetail

The error object of the typed envelope (spec 2026-08-03 §2).

object
code
required
Code
string
message
required
Message
string
param
Any of:
string
interaction_id
Any of:
string
session_id
Any of:
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"param": "example",
"interaction_id": "example",
"session_id": "example"
}
}