Skip to content
web · web · audit · links · crawl · site-map · website · extraction · robots

Link and site-map analysis

Extract and classify links from one public page or safely crawl up to 10 same-origin pages into an agent-ready site map with page provenance, depth limits, and robots.txt enforcement.

$0.005 USDCBase + Solanax402 v2POSTCustomer-evidenced
Pay $0.005 USDC and run in your browserView free result sample

Endpoint

https://apiacre.com/v1/web/links

Send the JSON body below. An unpaid request returns HTTP 402 with a PAYMENT-REQUIRED header; an x402-compatible buyer signs the requirement and retries with PAYMENT-SIGNATURE.

Pay $0.005 USDC and run in your browser

Official Coinbase agent path

Coinbase Agentic Wallet can satisfy this x402 request in one command. Running it may pay automatically, so --max-amount is fixed to $0.005 USDC in atomic units. Copying the command does not install, authenticate, sign, or pay; review the request and use a separate low-value wallet before running it.

npx --yes awal@latest x402 pay https://apiacre.com/v1/web/links \
  -X POST \
  -d '{"url":"https://example.com","include_external":true,"max_pages":3,"max_depth":2,"respect_robots":true}' \
  --max-amount 5000 \
  --json

Coinbase pay-for-service documentation · Buyer setup and wallet safety

Alternative third-party AgentCash commands

Run check first without payment. Its fetch command may automatically pay up to the exact listed price.

npx --yes agentcash@latest check https://apiacre.com/v1/web/links
npx --yes agentcash@latest fetch https://apiacre.com/v1/web/links \
  --method POST \
  --header 'content-type: application/json' \
  --body '{"url":"https://example.com","include_external":true,"max_pages":3,"max_depth":2,"respect_robots":true}' \
  --payment-protocol x402 \
  --payment-network base \
  --max-amount 0.005

AgentCash CLI documentation

Input example

{
  "url": "https://example.com",
  "include_external": true,
  "max_pages": 3,
  "max_depth": 2,
  "respect_robots": true
}

Response shape

View free static sample JSON

{
  "request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
  "service": "web.links",
  "version": "1",
  "data": {
    "url": "https://example.com/",
    "origin": "https://example.com",
    "count": 1,
    "internal": 0,
    "external": 1,
    "links": [
      {
        "url": "https://iana.org/domains/example",
        "text": "Learn more",
        "external": true
      }
    ],
    "crawl": {
      "enabled": true,
      "maxPages": 3,
      "maxDepth": 2,
      "pagesAttempted": 1,
      "pagesFetched": 1,
      "pagesFailed": 0,
      "pagesSkipped": 0,
      "truncated": false,
      "sameOriginOnly": true,
      "linkLimitPerPage": 500,
      "robots": {
        "respected": true,
        "status": "http_404",
        "url": "https://example.com/robots.txt"
      }
    },
    "pages": [
      {
        "url": "https://example.com/",
        "depth": 0,
        "discoveredFrom": null,
        "statusCode": 200,
        "title": "Example Domain",
        "bytes": 559,
        "elapsedMs": 41,
        "bodySha256": "ff67a9d764d6a2367a187734e697f6a53217db9a21c101d410a113ca871a299d",
        "linkCount": 1,
        "internal": 0,
        "external": 1
      }
    ],
    "errors": [],
    "skipped": []
  },
  "meta": {
    "duration_ms": 42,
    "cached": false,
    "sources": [],
    "warnings": [],
    "next_actions": [
      {
        "service": "web.robots-sitemap",
        "title": "Robots and sitemap audit",
        "reason": "Compare crawl-discovered pages with robots.txt rules and declared XML sitemap coverage.",
        "method": "POST",
        "path": "/v1/web/robots-sitemap",
        "price": "$0.025",
        "input_template": {
          "url": "$request.url"
        },
        "use_output": "Reconcile result.data.sitemap.urlCount and robots rules with the crawl inventory.",
        "handoff_path": "/catalog/web.robots-sitemap",
        "checkout_path": "/try/web.robots-sitemap",
        "sample_path": "/samples/web.robots-sitemap",
        "maximum_atomic_usdc": "25000",
        "handoff_payment_required": false,
        "executes_automatically": false,
        "authorization_required": true
      }
    ]
  }
}

Continue this workflow

These optional follow-ups use this result in a larger workflow. Each call shows a fresh x402 challenge and requires separate buyer authorization.

Try the payment challenge

curl -i -X POST 'https://apiacre.com/v1/web/links' \
  -H 'content-type: application/json' \
  --data '{"url":"https://example.com","include_external":true,"max_pages":3,"max_depth":2,"respect_robots":true}'