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

> ## Agent Instructions
> Phaseo Gateway base URL: https://api.phaseo.app/v1. Send `Authorization: Bearer $PHASEO_API_KEY` with every request.
> Model IDs look like `provider/model`, for example `openai/gpt-6-astra`. Do not guess IDs: list them with `GET /v1/models` or check https://phaseo.app/models. `phaseo/free` routes to an available free model and needs no wallet balance.
> For new text integrations prefer `POST /v1/responses`. `POST /v1/chat/completions` (OpenAI format) and `POST /v1/messages` (Anthropic format) suit existing code.
> The full API contract is https://phaseo.app/docs/openapi/v1/openapi.yaml. Official SDKs: `@phaseo/sdk` (TypeScript) and `phaseo` (Python), plus Go, C#, PHP, Ruby and Rust.
> Search these docs over MCP at https://phaseo.app/docs/mcp, and install Phaseo skills with `npx skills add https://phaseo.app/docs`. If a page is wrong or out of date, report it with the MCP `submit_feedback` tool.
> Manage Phaseo accounts with the `phaseo` CLI (`npm install -g @phaseo/cli`, then `phaseo login` or `phaseo login --device-code`), the `/v1` Management API or the MCP server at `https://mcp.phaseo.app/mcp?access=manage`. Do not send users to the dashboard for account tasks. A person is still needed for sign-up, approving a sign-in, paying the first top-up on the checkout link that `phaseo credits add` returns when no card is saved, confirming each saved-card top-up from the emailed link, and account security (password, MFA, passkeys). Create API keys with `phaseo keys create --name <name> --json`; never guess one. Credit top-ups need `phaseo login --scopes billing:write` first. Task map: https://phaseo.app/docs/v1/developers/manage-from-an-agent.md.

# Ground follow-up extraction with web fetch

> Use `phaseo:web_fetch` to pull bounded page text into the tool loop for deterministic follow-up extraction and review.

Use this recipe when a workflow needs one page fetched and turned into bounded text before the model performs extraction, summarization, or classification.

## 1. Use `phaseo:web_fetch` for one-page grounding

`phaseo:web_fetch` is a gateway-managed server tool.

Use it when you need:

* one URL fetched directly by the gateway
* bounded text returned to the tool loop
* request-level usage tracking
* fetched-page visibility in request logs

This is a better fit than broad search when you already know the URL.

## 2. Keep the request explicit

Typical pattern:

1. ask the model to call `phaseo:web_fetch`
2. let the gateway fetch and normalize the page
3. let the model continue with extraction against the returned text

Keep the prompt explicit about the final task after fetch:

* extract fields
* summarize one section
* classify the document
* validate one claim

## 3. Bound fetch size intentionally

Use `max_chars` when the default bound is too large or too small for the task.

Recommended pattern:

* smaller bounds for title/summary extraction
* larger bounds for structured field extraction

If the page is very large, prefer a narrower extraction task instead of unbounded fetch size.

## 4. Validate logs, not just the final answer

The request details should show:

* fetched URL
* final URL after redirects
* page title when available
* HTTP status
* content type
* returned character count
* truncation flag

Use that view to confirm the model grounded on the page you expected.

## 5. Know the tool limits

`phaseo:web_fetch` is intentionally bounded.

It is good for:

* HTML pages
* plain text
* light JSON or XML responses

It is not the right tool for:

* binary files
* large crawls
* JavaScript-only rendering checks

For browser-rendered verification, use a browser workflow instead of relying on fetched text alone.

## 6. Recommended rollout pattern

1. start with one preset or one endpoint path
2. inspect request logs for fetch metadata and truncation
3. tighten prompt scope if the fetched content is too broad
4. widen only after the grounded extraction path is stable

## Related

* [Debug web search requests](https://phaseo.app/docs/v1/cookbook/web-search-debugging.md)
* [Tool calling](https://phaseo.app/docs/v1/guides/tool-calling.md)
* [Use response healing for structured JSON](https://phaseo.app/docs/v1/cookbook/response-healing-for-structured-json.md)


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