Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Horizon Pulse Domain 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: Domain
paths:
/api/domain/precheck:
get:
operationId: getDomainPrecheck
summary: Domain pre-purchase check ($0.02-$0.25)
description: 'Registration verdict (registered, likely_unregistered or unknown) with age and status flags from registry RDAP, DNS, TLS, a look-alike similarity signal and an optional OFAC SDN address screen. Failed or throttled sources are unknown, never available. Not a guarantee of availability or safety; not legal advice. .dev and .app are not supported: a request with only those names is refused before payment; in a bulk batch they are removed before payment and the flat price still applies. On USDC on Base, errors are not charged, apart from the exceptions noted on a route. On USDC on Solana, and RLUSD on the XRP Ledger, a refused or failed request may still be charged. On Polygon (native USDC), a request is settled only when it succeeds (HTTP status below 400). Failed requests are not charged.'
x-payment-info:
protocol: x402
x402Version: 2
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
assetSymbol: USDC
decimals: 6
priceUsd: $0.02-$0.25
tiers:
- id: single
usd: $0.02
atomic: '20000'
- id: bulk
usd: $0.25
atomic: '250000'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
facilitator: https://api.cdp.coinbase.com/platform/v2/x402
networks:
- eip155:8453
- eip155:137
polygon:
network: eip155:137
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
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.25 USDC on Base.'
content:
application/json:
schema:
type: object
tags:
- Domain
post:
operationId: postDomainPrecheck
summary: Domain pre-purchase check ($0.02-$0.25)
description: 'Registration verdict (registered, likely_unregistered or unknown) with age and status flags from registry RDAP, DNS, TLS, a look-alike similarity signal and an optional OFAC SDN address screen. Failed or throttled sources are unknown, never available. Not a guarantee of availability or safety; not legal advice. .dev and .app are not supported: a request with only those names is refused before payment; in a bulk batch they are removed before payment and the flat price still applies. On USDC on Base, errors are not charged, apart from the exceptions noted on a route. On USDC on Solana, and RLUSD on the XRP Ledger, a refused or failed request may still be charged. On Polygon (native USDC), a request is settled only when it succeeds (HTTP status below 400). Failed requests are not charged.'
x-payment-info:
protocol: x402
x402Version: 2
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
assetSymbol: USDC
decimals: 6
priceUsd: $0.02-$0.25
tiers:
- id: single
usd: $0.02
atomic: '20000'
- id: bulk
usd: $0.25
atomic: '250000'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
facilitator: https://api.cdp.coinbase.com/platform/v2/x402
networks:
- eip155:8453
- eip155:137
polygon:
network: eip155:137
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
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.25 USDC on Base.'
content:
application/json:
schema:
type: object
tags:
- Domain
/api/domain/whois:
get:
operationId: getDomainWhois
summary: Domain registration lookup (.com/.net/.org) ($0.005)
description: 'One .com, .net or .org domain from registry RDAP: registrar, dates, status, nameservers, DNSSEC, registry notices, source URL. No contact data. Other TLDs refused before payment. USDC on Base or Polygon. Buyer terms: results may not be used for marketing, spam or any unsolicited commercial message or solicitation, or to compile or resell a registration database. On USDC on Base, errors are not charged, apart from the exceptions noted on a route. On USDC on Solana, and RLUSD on the XRP Ledger, a refused or failed request may still be charged. On Polygon (native USDC), a request is settled only when it succeeds (HTTP status below 400). Failed requests are not charged.'
x-payment-info:
protocol: x402
x402Version: 2
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
assetSymbol: USDC
decimals: 6
priceUsd: $0.005
amount: '5000'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
facilitator: https://api.cdp.coinbase.com/platform/v2/x402
networks:
- eip155:8453
- eip155:137
polygon:
network: eip155:137
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
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.005 USDC on Base or Polygon.'
content:
application/json:
schema:
type: object
tags:
- Domain
/api/domain/ssl:
get:
operationId: getDomainSsl
summary: SSL certificate expiry check ($0.005)
description: 'TLS certificate for one public hostname, read from a direct handshake on port 443: issuer, subject, SANs, valid from/to, days remaining, expired, hostname match, chain length. No HTTP request is sent. One name per call. USDC on Base or Polygon. On USDC on Base, errors are not charged, apart from the exceptions noted on a route. On USDC on Solana, and RLUSD on the XRP Ledger, a refused or failed request may still be charged. On Polygon (native USDC), a request is settled only when it succeeds (HTTP status below 400). Failed requests are not charged.'
x-payment-info:
protocol: x402
x402Version: 2
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
assetSymbol: USDC
decimals: 6
priceUsd: $0.005
amount: '5000'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
facilitator: https://api.cdp.coinbase.com/platform/v2/x402
networks:
- eip155:8453
- eip155:137
polygon:
network: eip155:137
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
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.005 USDC on Base or Polygon.'
content:
application/json:
schema:
type: object
tags:
- Domain
/api/domain/trust:
get:
operationId: getDomainTrust
summary: Domain checks bundle (.com/.net/.org) ($0.25)
description: 'Domain checks bundle for one .com, .net or .org domain in one call: registry facts (registrar, created/expiry, status), TLS certificate (issuer, days to expiry, hostname match), MX/SPF/DMARC, HTTP security headers (redirects not followed), with a 0-100 check score and its reasons. Other TLDs refused before payment. USDC on Base or Polygon. Buyer terms: results may not be used for marketing, spam or any unsolicited commercial message or solicitation, or to compile or resell a registration database. On USDC on Base, errors are not charged, apart from the exceptions noted on a route. On USDC on Solana, and RLUSD on the XRP Ledger, a refused or failed request may still be charged. On Polygon (native USDC), a request is settled only when it succeeds (HTTP status below 400). Failed requests are not charged.'
x-payment-info:
protocol: x402
x402Version: 2
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
assetSymbol: USDC
decimals: 6
priceUsd: $0.25
amount: '250000'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
facilitator: https://api.cdp.coinbase.com/platform/v2/x402
networks:
- eip155:8453
- eip155:137
polygon:
network: eip155:137
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
payTo: '0x5b32c973596078a967562ca652761404f19be0e9'
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.25 USDC on Base or Polygon.'
content:
application/json:
schema:
type: object
tags:
- Domain
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