Web & Metadata · x402 V1 + V2

Link Graph Extract

Use this service when you need this capability: extracts bounded normalized internal, external, and anchor relationships from supplied HTML or one safely fetched URL without crawling.

Price and endpoint

LivePOSTBase USDC

0.01 USDC per call

x402 V1 + V2 exact payment on Base mainnet (base in V1; eip155:8453 in V2) using USDC. One HTTP 402 response carries the canonical V2 PAYMENT-REQUIRED header and equivalent V1 JSON body.

POST https://signalharness.ai/api/agent/services/link_graph_extract/invoke

Purpose

Extracts bounded normalized internal, external, and anchor relationships from supplied HTML or one safely fetched URL without crawling.

Documented public-source retrieval is bounded by the URL, byte, redirect, and timeout limits below. Source availability can affect execution; review the input schema and returned source metadata.

Inputs

Request fields and validation limits
FieldTypeRequiredLimits
urlstringOptionalPattern: ^https://; Minimum length 9; Maximum length 2048
htmlstringOptionalMinimum length 1; Maximum length 65536
baseUrlstringOptionalPattern: ^https://; Minimum length 9; Maximum length 2048

Example request body

{
  "html": "<a href=\"/example\">Example</a>",
  "baseUrl": "https://example.com/"
}
View complete input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "minProperties": 1,
  "maxProperties": 2,
  "required": [],
  "properties": {
    "url": {
      "type": "string",
      "pattern": "^https://",
      "minLength": 9,
      "maxLength": 2048
    },
    "html": {
      "type": "string",
      "minLength": 1,
      "maxLength": 65536
    },
    "baseUrl": {
      "type": "string",
      "pattern": "^https://",
      "minLength": 9,
      "maxLength": 2048
    }
  }
}

Realistic output shape

Illustrative output from the canonical adapter fixture and schema. It is not a completed paid execution or a current live observation.

{
  "baseUrl": "example00",
  "linkCount": 0,
  "uniqueDestinationCount": 0,
  "duplicateCount": 0,
  "internalLinks": [
    "example"
  ],
  "externalLinks": [
    "example"
  ],
  "anchors": [
    "example"
  ],
  "nodes": [
    "example"
  ],
  "edges": [
    "example"
  ]
}
View complete output schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "minProperties": 9,
  "maxProperties": 9,
  "required": [
    "baseUrl",
    "linkCount",
    "uniqueDestinationCount",
    "duplicateCount",
    "internalLinks",
    "externalLinks",
    "anchors",
    "nodes",
    "edges"
  ],
  "properties": {
    "baseUrl": {
      "type": "string",
      "minLength": 9,
      "maxLength": 2048
    },
    "linkCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 512
    },
    "uniqueDestinationCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 512
    },
    "duplicateCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 512
    },
    "internalLinks": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 16384
      }
    },
    "externalLinks": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 16384
      }
    },
    "anchors": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 16384
      }
    },
    "nodes": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 4096
      }
    },
    "edges": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 4096
      }
    }
  }
}

Execution limits

  • MaxInputBytes: 524288
  • MaxOutputBytes: 1048576
  • MaxConcurrentExecutions: 3
  • MaxArtifacts: 0
  • MaxArtifactBytes: 0
  • RateLimitPerMinute: 45
  • MaxFetchBytes: 2097152
  • MaxDecodedBytes: 2097152
  • FetchTimeoutMs: 15000
  • MaxRedirects: 3
  • MaxLinks: 512
  • MaxNodes: 1024
  • MaxNesting: 128

Timeout: 20000 ms. Full schemas are in OpenAPI.

Copyable unpaid request

This schema-valid request returns the canonical HTTP 402 challenge without executing the service. A payment-capable client validates the challenge, signs only with prior authority and budget, and retries the identical body.

curl -i -X POST https://signalharness.ai/api/agent/services/link_graph_extract/invoke \
  -H "Content-Type: application/json" \
  --data '{"html":"<a href=\"/example\">Example</a>","baseUrl":"https://example.com/"}'

Continue with the paid-call walkthrough →