561 Group Market

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;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=&amp;",
        "url": "https://example.test/docs/p?x=&amp;",
        "rel": [
          "next"
        ],
        "index": 20
      }
    ],
    "baseUrl": "https://example.test/docs/",
    "sourceByteLength": 123,
    "offsetUnit": "UTF-16 code units"
  }
}

How to buy with x402

  1. Send the request without payment. The server answers 402 Payment Required with a base64 JSON PAYMENT-REQUIRED header holding the amount, asset, network and payee.
  2. Have your wallet sign an EIP-3009 transferWithAuthorization for exactly those terms (an x402 client library does this for you).
  3. Repeat the identical request with the signed payload in the PAYMENT-SIGNATURE header.
  4. The server verifies, runs the operation, settles, and returns 200 with the result and a PAYMENT-RESPONSE header 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;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