HTML Document Link Attributes
Extract parsed a/area/link href attributes in source order, decoded exactly once, with rel tokens and original UTF-16 indices. Resolve URLs using the first parsed base href and optional absolute HTTP(S) documentUrl; unresolved relative URLs return null. Template/script/style contents are excluded. Preserve all URL schemes as data; no fetching, navigation or safety inference. Limits65536 input UTF-8 bytes,8192 nodes/attributes,depth64,1048576 result JSON bytes.
- Price
- from $0.0012 USDC per request (starting price; the 402 response quotes the exact amount for your input)
- Network
- Base mainnet,
eip155:8453, settled in USDC through the Coinbase CDP facilitator - Method and URL
POST https://market.561.group/v1/data/html-links- Response type
application/json- Seller
- Causeway Services (561 Group)
Input contract
Input that fails this contract is refused with a 4xx status before any payment is requested.
{
"maxBytes": 1048576,
"bodySchema": {
"type": "object",
"required": [
"html"
],
"properties": {
"html": {
"type": "string",
"maxLength": 65536,
"description": "Maximum65536decoded UTF-8 bytes; full JSON escaping fits the request envelope."
},
"documentUrl": {
"type": "string",
"maxLength": 8192,
"description": "Optional absolute HTTP(S) document URL for native URL resolution."
}
},
"additionalProperties": false
}
}
Example request
{
"method": "POST",
"url": "https://market.561.group/v1/data/html-links",
"headers": {
"accept": "application/json",
"content-type": "application/json"
},
"body": {
"html": "<base href=\"/docs/\"><a title=\"a>b\" href=\"p?x=&amp;\" rel=\"next\">link</a><template><a href=\"/inert\">hidden</a></template>",
"documentUrl": "https://example.test/start"
}
}
Output
{
"schema": {
"type": "object",
"required": [
"links",
"baseUrl",
"sourceByteLength",
"offsetUnit"
],
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"required": [
"tag",
"href",
"url",
"rel",
"index"
],
"properties": {
"tag": {
"enum": [
"a",
"area",
"link"
]
},
"href": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
]
},
"rel": {
"type": "array",
"items": {
"type": "string"
}
},
"index": {
"type": "integer"
}
}
}
},
"baseUrl": {
"type": [
"string",
"null"
]
},
"sourceByteLength": {
"type": "integer",
"minimum": 0
},
"offsetUnit": {
"const": "UTF-16 code units"
}
}
},
"example": {
"links": [
{
"tag": "a",
"href": "p?x=&",
"url": "https://example.test/docs/p?x=&",
"rel": [
"next"
],
"index": 20
}
],
"baseUrl": "https://example.test/docs/",
"sourceByteLength": 123,
"offsetUnit": "UTF-16 code units"
}
}
How to buy with x402
- Send the request without payment. The server answers
402 Payment Requiredwith a base64 JSONPAYMENT-REQUIREDheader holding the amount, asset, network and payee. - Have your wallet sign an EIP-3009
transferWithAuthorizationfor exactly those terms (an x402 client library does this for you). - Repeat the identical request with the signed payload in the
PAYMENT-SIGNATUREheader. - The server verifies, runs the operation, settles, and returns
200with the result and aPAYMENT-RESPONSEheader carrying the settlement receipt.
Read the price without paying
curl --include --request POST --header 'accept: application/json' --header 'content-type: application/json' --data-raw '{"html":"<base href=\"/docs/\"><a title=\"a>b\" href=\"p?x=&amp;\" rel=\"next\">link</a><template><a href=\"/inert\">hidden</a></template>","documentUrl":"https://example.test/start"}' --url 'https://market.561.group/v1/data/html-links'
This request authorizes nothing; it returns the live payment terms. Read the full explanation of x402.
Machine-readable
- /.well-known/x402: x402 discovery document for every offer
- /v1/catalog: full catalog with contracts and examples
- /llms.txt: the market in llms.txt form
- services.561.group: Causeway Services