Skip to main content
POST
Read web pages
Read up to 20 web pages in one call and get each page’s clean text, its most relevant excerpts and/or an AI-written summary — ready to pass to an LLM. Useful for RAG ingestion, link previews, monitoring and agent “open this page” tools.
Synchronous. Page contents come back in the response body — there is no job to poll and no webhook. The amount charged is returned in cost.

What to request

Send at least one of these; a request with none of them is refused with 422.
  • text — the page as clean text. true returns up to 20,000 characters; {"max_length": 50000} sets your own cap (1–100,000).
  • excerpts — the most relevant passages. Pass {"query": "..."} to say what they should be about.
  • summary — an AI-written summary. Pass {"query": "..."} to focus it on a question.

Per-page status

Results come back in the same order as urls, each with its own status: Pages that are not ok carry only url and status and are not charged — cost covers only the pages that were read. One failed URL does not fail the whole request.

Example

Response

Pricing

0.0012 USD per page for each content type requested — text, excerpts and summary each count once per page that was read. Use Web Contents Price to get a quote. See also Pricing.
Need to find the pages first? Web Search can return text, excerpts and summary for its results in the same call.

Authorizations

Authorization
string
header
required

Sanctum personal access token, sent as Authorization: Bearer <token>. The token is opaque — it carries no claims and no embedded expiry, so do not attempt to decode it. Issue and revoke tokens from your account dashboard.

Headers

Accept
enum<string>
default:application/json
required
Available options:
application/json

Body

application/json

Request at least one of text, excerpts or summary — a request with none of them is refused with 422.

urls
string<uri>[]
required

Pages to read. Full URLs including the scheme (https://…).

Required array length: 1 - 20 elements
Example:
text

Return the page as clean text (Markdown-like). true uses the default length cap of 20,000 characters; an object lets you set your own cap. Longer pages are cut at the cap.

Example:
excerpts

Return the passages of the page most relevant to your search (or to query, if you set one). true ranks passages against the search query; on the contents endpoint, which has no search query, pass an object with query to steer the selection.

Example:

true

summary

Return a short AI-written summary of each page. true writes a general summary; an object with query focuses the summary on a question. Billed per page (see pricing).

Example:

Response

Page contents, one entry per requested URL.

Returned directly — there is no data envelope and no job to poll.

request_id
string<uuid>

Identifier of this request, useful when contacting support.

Example:

"ba1e1b58-a12c-4f83-9ec7-572e301fa1c2"

cost
number<float>

What this request was charged, in USD. Matches the amount deducted from the balance and reported by the usage endpoints.

Example:

0.0048

results
object[]