# Livecheck > Live status of a specific product page, marketplace listing, or job posting, read from the page itself at call time. No account, no API key. Verify routes are POST /v1/verify, POST /v1/verify/job, and POST /v1/verify/listing. The unpaid 402 offers both x402 (Base USDC) and MPP (Tempo USDC.e). Each charges exactly $0.01. MPP method is tempo/charge: USDC.e on Tempo (chain 4217). Stripe pays Tempo gas. With MPP (Tempo): Paid answers, including the checked link, are kept for 24 hours so retries are safe, then deleted. Check, watch, renew, chain top-up, and confirm stay x402 (Base USDC) only. ## When to use - Before recommending or buying a product: is this listing still available? - Before applying to a job: is this posting still open? - Before scraping or storing a URL: is it still live? - After search results (Google Shopping, job boards, scraped lists): which of these are stale? Livecheck is not a search engine. Bring one specific item URL. ## Endpoints - POST /v1/verify/job ($0.01) — is this specific job posting still open? body {"url"} → {status: live|closed|unknown, title, signals[], confidence} - POST /v1/verify/listing ($0.01) — is this product listing still available or sold out? body {"url"} → same response - POST /v1/verify ($0.01) — body {"url": "..."} → {status: live|closed|unknown, title, signals[], http_status, canonical_url, checked_at, confidence} - POST /v1/check ($0.02) — one-shot condition on a page: status_change, keyword, text_diff, numeric_threshold (e.g. price below X) - POST /v1/watch ($2.50) — 30-day watcher; signed HMAC webhook when the condition fires (HTTPS callback optional; omit it and pull GET /v1/watch/{id}/events with the owner token) - POST /v1/watch/renew ($2.50) — extend an active watcher; body {"id":"wtc_..."}; owner token required in addition to payment - POST /v1/confirm ($0.10) — did a lead/contact/application form submission land? intent: lead_submit | listing_published. Example input {"url":"https://livecheck.fly.dev/demo/thank-you?ref=ABC123","intent":"lead_submit"} returns confirmed: that page is HTTP 200 and prints Confirmation number ABC123. - POST /v1/confirm/order ($0.25) — does the order exist? intent: order_placed - GET /v1/receipt/{id} (free) — verify any signed receipt ## How to act on Verify - live → proceed - closed → drop it; tell the user it's no longer available - unknown → login wall, JavaScript-only page, or bot block; report as unknown, don't guess ## Limits - Reads HTML and HTTP status; does not run JavaScript - POST /v1/verify, /v1/verify/job, and /v1/verify/listing return 503 with Retry-After when the check queue is full, a queued check waited too long, or the x402 payment processor times out or errors (over_capacity or processor_unavailable). On those 503s, wait for Retry-After and retry. You were not charged. An MPP 503 with error payment_unconfirmed means the payment could not be confirmed: a possible charge is logged for refund, and retrying with the same credential is safe and never charges twice. Do not treat 503 as closed or unknown. For a list of URLs, send up to 8 checks at a time. - POST /v1/verify and POST /v1/verify/job may also consult public job-board APIs for Ashby, Workday, Lever, and Greenhouse (no API key). A posting the API reports missing is closed. A posting the API lists is live when the page is live or a JavaScript-only shell (signal ats_api_listed). If the page looks closed and the API still lists it, the verdict is unknown. Timeouts and HTTP 5xx are not treated as closed. Bot-challenge pages stay unknown (challenge_page); Livecheck does not bypass Cloudflare or reCAPTCHA. - Status means availability only, not legitimacy or fraud risk - Never logs in, submits forms, or changes anything on the target site ## Links - OpenAPI: https://livecheck.fly.dev/openapi.json - Stats: https://livecheck.fly.dev/stats (headline counts include internal test traffic; traffic.external omits configured team wallets) - Agent skill: https://github.com/moyecj-snap/livecheck-skills - Install for agentcash: npx agentcash@0.17.1 add https://livecheck.fly.dev