Bearer key · JSON
POST /api/v1/links/verify
curl -s -X POST https://getattest.com.au/api/v1/links/verify \
-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 to confirm that a page links to a site or URL: whether the link is there, whether it is followed (no nofollow, sponsored or ugc) and whether the linking page can be indexed, based on Google's published robots and link rules.
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.
2 fields
Input
Scroll the table horizontally to see all fields.
Field / Type / Required / What it does| Field | Type | Required | What it does |
|---|
page_url | string | Required | The public page that should carry the link. |
|---|
target | string | Required | The site or URL the link should point at. |
|---|
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 |
|---|
found | Whether a link to the target is on the page. |
|---|
match_count | How many matching links were found. |
|---|
links | Each matching link: href, anchor text, rel and whether it is followed. |
|---|
anchors_scanned | How many links on the page were examined. |
|---|
page.indexable | Whether the page can be indexed, per its robots meta tag and X-Robots-Tag. |
|---|
page.links_followable | Whether a page-level nofollow applies to its links. |
|---|
page.meta_robots | The robots rules read from the page. |
|---|
page.x_robots_tag | The robots rules read from the response headers. |
|---|
page.canonical | The canonical URL the page declares, and whether it matches the page. |
|---|
verdict | The overall read of the link. |
|---|
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 |
|---|
page_url_required | 400 | No page_url was sent. |
|---|
invalid_page_url | 400 | page_url is not a public http(s) URL. |
|---|
page_url_too_long | 400 | page_url is longer than the accepted length. |
|---|
target_required | 400 | No target was sent. |
|---|
invalid_target | 400 | target is not a site or URL this service can match. |
|---|
fetch_failed | 502 | The page did not answer in time. 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
Rules as published in Google Search Central documentation (robots meta tag and X-Robots-Tag, rel=canonical, qualifying outbound links). Other search engines may treat a link differently.
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