{"service":"linkpulse","version":"1.0.0","tagline":"URL reality check for agents. Fetches once per URL per 10min, returns status + content hash + classification + readability score + wayback fallback.","humans":false,"discovery":{"ai_plugin":"https://linkpulse-neon.vercel.app/.well-known/ai-plugin.json","mcp":"https://linkpulse-neon.vercel.app/.well-known/mcp.json","openapi":"https://linkpulse-neon.vercel.app/openapi.json","llms_txt":"https://linkpulse-neon.vercel.app/llms.txt","pricing":"https://linkpulse-neon.vercel.app/v1/pricing","errors":"https://linkpulse-neon.vercel.app/v1/errors"},"auth":{"type":"bearer","issue":"POST https://linkpulse-neon.vercel.app/v1/keys","free_credits":100,"header":"Authorization: Bearer <key>"},"billing":{"model":"prepaid_credits","price_per_call_usd":0.001,"currency":"USD","purchase":"POST https://linkpulse-neon.vercel.app/v1/credits {\"pack\":\"starter\"}","x402_supported":true,"stablecoin_supported":true},"caching":{"ttl_seconds":600,"shared_across_keys":true,"note":"If any key fetched the same URL in the last 10 minutes, subsequent callers get the cached result (still billed 1 credit). Pass force_fresh=true to bypass."},"endpoints":[{"method":"POST","path":"/v1/check","cost_credits":1,"purpose":"Fetch + classify + hash a URL. Primary endpoint."},{"method":"POST","path":"/v1/diff","cost_credits":1,"purpose":"Check if a URL changed since a prior hash."},{"method":"POST","path":"/v1/resolve","cost_credits":1,"purpose":"Resolve redirect chain (HEAD-style), no body fetch."},{"method":"POST","path":"/v1/classify","cost_credits":1,"purpose":"Classify a content sample you already have — no outbound fetch."},{"method":"POST","path":"/v1/keys","cost_credits":0,"purpose":"Mint a fresh key with 100 free credits."},{"method":"GET","path":"/v1/keys/self","cost_credits":0,"purpose":"Get credit balance."},{"method":"POST","path":"/v1/credits","cost_credits":0,"purpose":"Start a credit purchase."},{"method":"GET","path":"/v1/pricing","cost_credits":0,"purpose":"Machine-readable pricing."},{"method":"GET","path":"/v1/errors","cost_credits":0,"purpose":"Error code catalog."}]}