Bearer key · JSON
POST /api/v1/read
curl -s -X POST https://getattest.com.au/api/v1/read \
-H "authorization: Bearer $ATTEST_API_KEY" \
-H "content-type: application/json" \
-d '{}'
Send the key as a bearer token in the authorization header. One key and one credit balance cover every service, including Attest Capture. A failed call is refunded automatically. No key yet? POST /api/v1/keys issues one with 25 free credits and no signup — see the key guide.
For agents
Use when
Use this when a task needs the readable text of one web page instead of its HTML: an article, a documentation page, a changelog or a product page, returned as Markdown with its headings, lists, tables and code blocks intact, plus the page's title, byline, language and links.
Not documented yet: a captured example response. This page only shows what the module publishes about itself, so the missing parts are absent rather than guessed at.
4 fields
Input
Scroll the table horizontally to see all fields.
Field / Type / Required / What it does| Field | Type | Required | What it does |
|---|
url | string | Required | The public http(s) page to read. |
|---|
include_links | boolean | Optional | Return the page's links as a list. On by default. |
|---|
include_images | boolean | Optional | Return the page's images as a list. Off by default. |
|---|
max_chars | integer | Optional | Cap on the Markdown returned. |
|---|
HTTP 200
Response
Every successful response also carries call_id (your receipt for the charge), credits_charged and credits_remaining.
Scroll the table horizontally to see all fields.
Field / What it holds| Field | What it holds |
|---|
markdown | The readable article as Markdown, with headings, lists, tables and code blocks intact. |
|---|
title | The page title. |
|---|
byline | The byline, when the page marks one. |
|---|
site_name | The site name, when the page declares one. |
|---|
published_at | The publication date, when the page declares one. |
|---|
lang | The page language. |
|---|
word_count | Words in the whole article, even when the Markdown was cut. |
|---|
truncated | Whether max_chars or the extraction budget cut the Markdown. |
|---|
extracted_by | Which extractor produced the article. |
|---|
links | The page's links, when include_links is on. |
|---|
images | The page's images, when include_images is on. |
|---|
final_url | The URL after redirects. |
|---|
http_status | The status the page returned. |
|---|
Machine-readable failures
Errors
Errors return JSON such as {"error":"invalid_api_key"}. A failed call is refunded automatically.
Scroll the table horizontally to see all fields.
Code / Status / Meaning| Code | Status | Meaning |
|---|
url_required | 400 | No url was sent. |
|---|
invalid_url | 400 | url is not a URL this service can read. |
|---|
private_address_not_allowed | 400 | The URL resolves to a private or reserved address. |
|---|
unsupported_content_type | 400 | The URL did not return HTML. |
|---|
response_too_large | 400 | The page is larger than the read cap. |
|---|
page_too_complex | 422 | The page is past the extraction budget. |
|---|
page_too_slow | 422 | The extraction did not finish inside the budget. |
|---|
fetch_timeout | 502 | The page did not answer in time. Not charged. |
|---|
fetch_failed | 502 | The page could not be read. Not charged. |
|---|
On every service
Scroll the table horizontally to see all fields.
Code / Status / Meaning| Code | Status | Meaning |
|---|
invalid_api_key | 401 | The authorization header is missing or the key is unknown. |
|---|
insufficient_credits | 402 | The balance is below this call's cost. The response carries credits_required and credits_remaining. |
|---|
rate_limit_exceeded | 429 | Free keys share 10 calls a minute across every service. The response carries limit and window_seconds. |
|---|
services_unavailable | 503 | The credit store could not be reached. Retry once after 30 seconds. |
|---|
Where the answer comes from
Source and scope
The page's own HTML, fetched once at the time of the call and converted to Markdown in this process. Wording, figures and dates in the Markdown are the page's, not Attest's.
Attest reports what it read, with the source it read it from. It is general information, not advice, and not a legal record.
All Attest tools · Service list as JSON · OpenAPI