Horizon Pulse Site API

The Site API from Horizon Pulse — 2 operation(s) for site.

GitHub OpenAPI

Operations 2

GET /api/site/audit Website audit for one public URL ($0.02-$0.12) #
GET /api/site/agent-readiness Agent-readiness report for one public site ($0.05) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/horizonpulse-dev:horizonpulse-dev-site-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

horizonpulse-dev-site-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Horizon Pulse Site API
  version: 1.1.0
  termsOfService: https://horizonpulse.dev/terms/buyer
  summary: Pay-per-call APIs for AI agents, settled in USDC on Base, Solana or Polygon, or RLUSD on the XRP Ledger, with x402.
  description: 'Pay-per-call APIs for AI agents, paid in USDC on Base, Solana or Polygon, or RLUSD on the XRP Ledger, with x402: web search, page fetch and extract, PDF to text, an HTTP proxy, and crypto market data. No signup or API key.


    On Base, you only pay for a successful response; errors are not charged except where an operation says so (for /api/tx-status, a not_found status is a charged answer; poll again after pollAgainSeconds). These no-charge statements are made for USDC on Base. On USDC on Solana, and RLUSD on the XRP Ledger, a refused or failed request may still be charged. charged: false means Horizon Pulse did not settle the payment; on USDC on Solana, and RLUSD on the XRP Ledger, this is not a guarantee that no funds moved. Every paid operation carries `x-payment-info` with the exact price, asset, network and payTo of its Base entry; these match the 402 challenge and https://horizonpulse.dev/.well-known/x402. The 402 challenge also offers the same price in USDC on Solana mainnet (`exact`, network solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, USDC mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, payTo BjY98A6dS3GGLZdz2zHy8wK7XAwnQgNhCc66mfmBTRPz, PayAI facilitator https://facilitator.payai.network), and in native USDC on Polygon PoS mainnet (`exact`, network eip155:137, USDC 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359, payTo 0x5b32c973596078a967562ca652761404f19be0e9, facilitator: Coinbase CDP), and in RLUSD on the XRP Ledger mainnet (`exact`, network xrpl:0, currency RLUSD = 524C555344000000000000000000000000000000, issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De, payTo r3FbirL83RAB2CwnUdxE5pCohMkuo6LQcf, verified on the validated ledger). Recorded example responses (fixed input, dated, informational; not paid operations): GET /api/demo/{route}.


    Agent integration: step-by-step skill at https://horizonpulse.dev/skill.md; guide with MCP setup at https://horizonpulse.dev/agents (hosted MCP at https://horizonpulse.dev/mcp for x402-aware clients, plus a local stdio MCP server in the repo''s mcp/ folder that pays from your own wallet with spend caps).


    Services for API owners (web pages, not API operations; not paid via x402): Bazaar listing fix at https://horizonpulse.dev/listing-fix; agent promotion at https://horizonpulse.dev/agent-promotion.'
  contact:
    name: Horizon Pulse
    email: horizonpulse.co@proton.me
    url: https://horizonpulse.dev
  x-guidance: 'Read PAYMENT-REQUIRED (base64 JSON). Pay exact USDC on Base (CDP), Solana (PayAI feePayer), Polygon, or RLUSD on XRPL at the listed payTo. Unpaid samples: /api/demo/{route}. Skill: /skill.md. Hosted MCP: /mcp (Base USDC only).'
servers:
- url: https://horizonpulse.dev
  description: Production
security:
- x402: []
tags:
- name: Site
paths:
  /api/site/audit:
    get:
      operationId: getSiteAudit
      summary: Website audit for one public URL ($0.02-$0.12)
      description: 'Website audit API for one public page (standard) or up to 10 same-origin pages plus DNS email records (premium, ?tier=premium): security headers, HSTS, TLS, HTTPS redirect, on-page SEO, heuristic accessibility checks (not a WCAG or ADA conformance audit), robots.txt, sitemap, security.txt, a broken-link sample and agent-readiness checks, scored against our checklist, with fixes. Findings only. Obeys the site''s robots.txt. Blocked or unreachable targets are not charged. USDC on Base only. Premium depth (?tier=premium, $0.12, 120000 atomic, USDC on Base only): the start page plus up to 9 same-origin pages it links to (10 pages max, robots.txt obeyed, 8 MB of responses per audit), mixed content, cookie flags (names and flags only; cookie values are not included in the report), CSP quality, certificate and redirect chains, robots.txt and sitemap validity, structured data, SPF/DMARC/CAA/DNSSEC, DKIM (common selectors), a check of up to 20 links and the full agent-readiness report. If the time or byte limit is reached, the report is charged and lists the pages not reached. If no linked page answers and every DNS email lookup fails, the call is refused and not charged.'
      parameters:
      - name: url
        in: query
        required: true
        description: One public http(s) URL or hostname (ports 80/443 only).
        schema:
          type: string
        example: https://example.com/
      - name: tier
        in: query
        required: false
        description: standard (default, $0.02) or premium ($0.12, up to 10 same-origin pages plus DNS email records).
        schema:
          type: string
          enum:
          - standard
          - premium
        example: premium
      x-payment-info:
        protocol: x402
        x402Version: 2
        scheme: exact
        network: eip155:8453
        asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        assetSymbol: USDC
        decimals: 6
        priceUsd: $0.02
        amount: '20000'
        payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
        facilitator: https://api.cdp.coinbase.com/platform/v2/x402
      responses:
        '200':
          description: Result.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad input. Not charged.
          content:
            application/json:
              schema:
                type: object
        '402':
          description: 'Payment required: PAYMENT-REQUIRED header, $0.02-$0.12 USDC on Base only.'
          content:
            application/json:
              schema:
                type: object
      tags:
      - Site
  /api/site/agent-readiness:
    get:
      operationId: getSiteAgentReadiness
      summary: Agent-readiness report for one public site ($0.05)
      description: 'Agent-readiness report for one public site: validates llms.txt, AI-crawler robots rules, /.well-known/x402 and each sampled unpaid 402 challenge (accepts, payTo format, network/asset, header-body mirror, Bazaar extension), MCP server card and endpoint, and openapi.json 402 responses. Scored against our checklist with fixes and evidence. Read-only: 402s are never paid. Obeys robots.txt. Blocked or unreachable targets are not charged. USDC on Base only.'
      parameters:
      - name: url
        in: query
        required: true
        description: One public http(s) site URL or hostname (ports 80/443 only).
        schema:
          type: string
        example: https://example.com/
      x-payment-info:
        protocol: x402
        x402Version: 2
        scheme: exact
        network: eip155:8453
        asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        assetSymbol: USDC
        decimals: 6
        priceUsd: $0.05
        amount: '50000'
        payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
        facilitator: https://api.cdp.coinbase.com/platform/v2/x402
      responses:
        '200':
          description: Result.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad input. Not charged.
          content:
            application/json:
              schema:
                type: object
        '402':
          description: 'Payment required: PAYMENT-REQUIRED header, $0.05 USDC on Base only.'
          content:
            application/json:
              schema:
                type: object
      tags:
      - Site
components:
  securitySchemes:
    x402:
      type: apiKey
      in: header
      name: PAYMENT-SIGNATURE
      description: x402 v2 payment payload (base64 JSON), built from the 402 PAYMENT-REQUIRED challenge. No account or API key. See https://www.x402.org/.
externalDocs:
  description: 'Agent guide: discovery, the x402 pay flow, skill file and MCP setup'
  url: https://horizonpulse.dev/agents