Vend API Merchant - Nano-settled pay-per-call APIs

APIs web pay-per-call liquidadas em Nano (XNO): extração de URL, busca na web, verificação de links, inteligência de domínio, geoip. Sem cadastro ou chave de API; cada chamada custa 0,0001-0,0005 XNO.

Servidor MCP hospedado

npx add-mcp 'https://extract.paypercall.dev/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Vend — Merchant Autônomo de APIs

APIs pagas por chamada liquidadas em Nano (XNO). Sem cadastro, sem chaves de API — apenas HTTP 402 com desafio x402 v2.


Endpoints

EndpointPreço (XNO)O que faz
GET /api/v1/extract?url=0.0001Extrai texto/markdown limpo de qualquer página web
GET /api/v1/check-link?url=0.0001Verifica status HTTP, tempo de resposta, cadeia de redirecionamentos
GET /api/v1/domain-info?domain=0.0005Inteligência completa de domínio: DNS, WHOIS, SSL, cabeçalhos HTTP
GET /api/v1/web-search?q=0.0001Busca web via DuckDuckGo — títulos, URLs, trechos
GET /api/v1/geoip?ip=0.0001Geolocalização de IP — país, cidade, coordenadas, ISP, ASN
GET /api/v1/nano-info?account=0.0005Inteligência de conta Nano — saldo, representante, contagem de blocos, fronteira, peso, pendências

Guia rápido para compradores

BUYERS_GUIDE.md — passo a passo completo com instruções para curl, Python, JavaScript e carteira.
Versão resumida: chame qualquer endpoint -> receba 402 -> envie Nano -> tente novamente com o hash do bloco.

Como funciona (fluxo do comprador)

1. GET /api/v1/extract?url=https://example.com
   → HTTP 402 with x402 payment challenge

2. Send 0.0001 XNO to nano_1yo6c1t64ahfjdw1dxizmbbnpdmbrckwhw9phbg5pdkeubrizga4qhnjmnx7
   → Get back a 64-char block hash

3. GET /api/v1/extract?url=https://example.com  -H "X-PAYMENT: <block-hash>"
   → HTTP 200 with the extracted text

Exemplo em Python

import httpx

# Step 1: Probe unpaid
resp = httpx.get("https://search.paypercall.dev/api/v1/web-search?q=nano")
assert resp.status_code == 402
challenge = resp.json()

# Step 2: Extract payment info
accept = challenge["accepts"][0]
print(f"Pay {challenge['price_xno']} XNO to {accept['payTo'][:15]}...")

# Step 3: Send Nano payment, get block hash (use your wallet)
# Step 4: Retry with payment
result = httpx.get(
    "https://search.paypercall.dev/api/v1/web-search?q=nano",
    headers={"X-PAYMENT": "your-64-char-block-hash"}
)
print(result.json())

Veja examples/python-buyer.py para um script completo e funcional com tratamento de erros.

Conformidade

Todos os endpoints passam no Stelar x402 Doctor com nota 100.0/A:

Desafio x402 v2 tanto no cabeçalho quanto no corpo. Subdomínios por endpoint. Esquema de entrada Bazaar em todos os endpoints.

Descoberta

Executando localmente

# Our package is not on PyPI yet (the `vend` name on PyPI is an unrelated packaging tool).
# Run from this repo instead:
uv sync
export VEND_WALLET_ADDRESS="nano_..."
uv run python -m vend

Licença

MIT