Web & Metadata · x402 V1 + V2

HTTP Header Audit

Use this service when you need this capability: audits bounded supplied or safely fetched HTTP headers for caching, security, discovery, CORS, and x402 signals.

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/http_header_audit/invoke

Purpose

Audits bounded supplied or safely fetched HTTP headers for caching, security, discovery, CORS, and x402 signals.

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
headersarrayOptionalMinimum 1 item(s); Maximum 128 item(s)
statusintegerOptionalMinimum 100; Maximum 599

Example request body

{
  "headers": [
    [
      "content-type",
      "text/html"
    ],
    [
      "cache-control",
      "max-age=60"
    ]
  ]
}
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
    },
    "headers": {
      "type": "array",
      "minItems": 1,
      "maxItems": 128,
      "items": {
        "type": "array",
        "minItems": 2,
        "maxItems": 2,
        "items": {
          "type": "string",
          "minLength": 0,
          "maxLength": 8192
        }
      }
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    }
  }
}

Realistic output shape

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

{
  "sourceUrl": "example",
  "status": 0,
  "normalizedHeaders": [
    {
      "name": "example",
      "values": [
        "example"
      ]
    }
  ],
  "findings": [
    {
      "code": "duplicate_header",
      "severity": "info",
      "header": "example"
    }
  ],
  "result": "pass",
  "cacheSummary": {
    "present": [
      "example"
    ],
    "missing": [
      "example"
    ]
  },
  "securitySummary": {
    "present": [
      "example"
    ],
    "missing": [
      "example"
    ]
  },
  "discoverySummary": {
    "present": [
      "example"
    ],
    "missing": [
      "example"
    ]
  }
}
View complete output schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "minProperties": 8,
  "maxProperties": 8,
  "required": [
    "sourceUrl",
    "status",
    "normalizedHeaders",
    "findings",
    "result",
    "cacheSummary",
    "securitySummary",
    "discoverySummary"
  ],
  "properties": {
    "sourceUrl": {
      "type": "string",
      "minLength": 0,
      "maxLength": 2048
    },
    "status": {
      "type": "integer",
      "minimum": 0,
      "maximum": 599
    },
    "normalizedHeaders": {
      "type": "array",
      "minItems": 1,
      "maxItems": 128,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 2,
        "maxProperties": 2,
        "required": [
          "name",
          "values"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "values": {
            "type": "array",
            "minItems": 1,
            "maxItems": 128,
            "items": {
              "type": "string",
              "minLength": 0,
              "maxLength": 8192
            }
          }
        }
      }
    },
    "findings": {
      "type": "array",
      "minItems": 0,
      "maxItems": 256,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "minProperties": 3,
        "maxProperties": 3,
        "required": [
          "code",
          "severity",
          "header"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "duplicate_header",
              "missing_header",
              "cors_wildcard_credentials"
            ],
            "minLength": 14,
            "maxLength": 25
          },
          "severity": {
            "type": "string",
            "enum": [
              "info",
              "warn",
              "fail"
            ],
            "minLength": 4,
            "maxLength": 4
          },
          "header": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        }
      }
    },
    "result": {
      "type": "string",
      "enum": [
        "pass",
        "warn",
        "fail"
      ],
      "minLength": 4,
      "maxLength": 4
    },
    "cacheSummary": {
      "type": "object",
      "additionalProperties": false,
      "minProperties": 2,
      "maxProperties": 2,
      "required": [
        "present",
        "missing"
      ],
      "properties": {
        "present": {
          "type": "array",
          "minItems": 0,
          "maxItems": 16,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        },
        "missing": {
          "type": "array",
          "minItems": 0,
          "maxItems": 16,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        }
      }
    },
    "securitySummary": {
      "type": "object",
      "additionalProperties": false,
      "minProperties": 2,
      "maxProperties": 2,
      "required": [
        "present",
        "missing"
      ],
      "properties": {
        "present": {
          "type": "array",
          "minItems": 0,
          "maxItems": 16,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        },
        "missing": {
          "type": "array",
          "minItems": 0,
          "maxItems": 16,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        }
      }
    },
    "discoverySummary": {
      "type": "object",
      "additionalProperties": false,
      "minProperties": 2,
      "maxProperties": 2,
      "required": [
        "present",
        "missing"
      ],
      "properties": {
        "present": {
          "type": "array",
          "minItems": 0,
          "maxItems": 16,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        },
        "missing": {
          "type": "array",
          "minItems": 0,
          "maxItems": 16,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        }
      }
    }
  }
}

Execution limits

  • MaxInputBytes: 131072
  • MaxOutputBytes: 524288
  • MaxConcurrentExecutions: 3
  • MaxArtifacts: 0
  • MaxArtifactBytes: 0
  • RateLimitPerMinute: 45
  • MaxFetchBytes: 65536
  • MaxDecodedBytes: 65536
  • FetchTimeoutMs: 10000
  • MaxRedirects: 3
  • MaxHeaders: 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/http_header_audit/invoke \
  -H "Content-Type: application/json" \
  --data '{"headers":[["content-type","text/html"],["cache-control","max-age=60"]]}'

Continue with the paid-call walkthrough →