> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trynito.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Web fetch

> Read specific URLs from the conversation.

Fetches the URLs the user names in a message and injects them as request-local context. Available on models with `supports_web_fetch: true`.

## Invoking

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "model": "openai/gpt-5.5",
  "messages": [{ "role": "user", "content": "Summarize https://example.org/post" }],
  "web_fetch": true
}
```

Or as a tool entry: `"tools": [{ "type": "web_fetch" }]`.

## Rules

* Only safe `http(s)` URLs: no credentials, private or loopback hosts, local-use DNS names, or sensitive query keys.
* Fetched content is untrusted context for that turn. Nothing is stored.

## Response

`usage.server_tool_use.web_fetch_requests` reports how many fetches ran.

## Related

* [Web search](/api/api-reference/server-tools/web-search)
* [Tool errors](/api/api-reference/server-tools/tool-errors)

## Standalone fetch

`POST /api/v1/web/fetch` retrieves content without running a chat model. Authenticate with an API key or an OAuth bearer with `cli:inference`; browser cookies alone are not accepted.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl https://app.trynito.ai/api/v1/web/fetch \
  -H "Authorization: Bearer $NITO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://www.postgresql.org/docs/current/release.html"]}'
```

The body accepts only `urls`; omit model IDs, messages, and privacy-level options. Supply one to three distinct public HTTP(S) URLs; configured service limits may be lower. Each URL is limited to 400 UTF-8 bytes. URLs must be safe and canonical: embedded credentials, private addresses, and sensitive query parameters are rejected. Results preserve input order.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "results": [
    {
      "title": "PostgreSQL release notes",
      "url": "https://www.postgresql.org/docs/current/release.html",
      "content": "Release information and changes.",
      "last_updated": null
    }
  ]
}
```

`last_updated` is a provider-supplied modification date or `null`. Each call is billed independently, using the subscription allowance before prepaid balance, and respects spend caps and rate limits. Retrieved content is request-local. After a `502 provider_error` with an unknown provider outcome, do not retry automatically: retrieval may already have been billed.

See the [standalone endpoint](/api/api-reference/endpoints/web/fetch) for schemas and errors.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.