Every API here is available over the APIs.io API and to AI agents over MCP.
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