# TruePoint Prospect Intelligence https://prospect-intelligence.prospectintel.workers.dev x402 USDC Base. No API key. ## Email lookup (POST /v1/email, $0.08, charged only when an address is returned) Body: {"domain":"acme.com","first_name":"Jane","last_name":"Doe"} (or "full_name"). Optional "found_only": true returns only publicly found addresses. Provider: Hunter Email Finder. We pass through Hunter's own result. We never call an address "verified" on our own. Fields: - outcome: found | no_result | invalid_input | provider_error | opted_out - email: the address, or null - address_origin: public_source (seen on the public web, see evidence.sources) | inferred_pattern (built from the company's email pattern, not seen anywhere) - verification.status: Hunter's raw status: valid | accept_all | unknown | invalid | webmail | disposable. checked_on, age_days, stale. valid = the mail server accepted the address. accept_all = catch-all server, mailbox not confirmed. unknown = could not be checked. - confidence.score: Hunter's 0-100 estimate that the address is correct. - recommendation.action: send | send_with_caution | verify_first | do_not_send, with a one-line reason. On a catch-all (accept_all) domain, a publicly found address can be send_with_caution; an inferred_pattern address is always verify_first. - evidence: company_domain, company_name, accept_all_domain, position, linkedin_url, sources[] (url, site, first_seen, last_seen, still_on_page). - billing: charged_usd, provider_credits_used, provider_cost_usd_est. Pricing: found = $0.08. no_result (HTTP 404), bad input (400/422), provider errors (503), opted_out (451) = $0. x402 settlement only runs on a 2xx response, so you are not charged for these. Example: {"tool":"email_lookup","schema_version":"2.0","outcome":"found","email":"jane@acme.com","address_origin":"public_source","verification":{"status":"valid","checked_on":"2026-09-20"},"confidence":{"score":96},"recommendation":{"action":"send"},"billing":{"charged_usd":0.08,"provider_credits_used":1}} ## Batch email lookup (POST /v1/email/batch, $0.08 per address returned, 1-25 contacts) Body: {"contacts":[{"domain":"acme.com","first_name":"Jane","last_name":"Doe"},{"domain":"globex.com","full_name":"Sam Lee"}]}. Optional "found_only": true (top level or per contact). Each result uses exactly the same fields and recommendation labels as POST /v1/email, plus "index" (input position) and "duplicate_of" (index of the first identical contact, or null). Results come back in input order. summary: requested, unique, duplicates, found, send, send_with_caution, verify_first, do_not_send (found but Hunter says invalid/disposable), no_result, opted_out, errors. Payment: x402 "upto" scheme (Permit2). You authorize up to $0.08 x unique contacts; we settle $0.08 x addresses actually returned. Duplicates are looked up and billed once. If no address is returned the response is HTTP 404 (or 503 if every lookup failed) and nothing is settled. Validation happens before payment: more than 25 contacts or any malformed contact returns HTTP 400 and nothing is charged. One contact failing never fails the batch; it shows up with outcome provider_error and is not billed. ## Accuracy results https://prospect-intelligence.prospectintel.workers.dev/accuracy (published test results and what the tools do not do) ## Company research POST /v1/basic $0.10, /v1/enriched $0.75, /v1/deep $3.00, /v1/tools $0.75 {"tool":"research_company","company":"Anthropic","domain":"anthropic.com"} Body: {"company":"Stripe","domain":"stripe.com"}. Domain is strongly recommended: it is used to pick the right company (official website must match). ### Basic (POST /v1/basic, $0.10) - 1.9.3 Keeps every 1.9.0 field (company.name, domain, summary, summary_source, summary_source_url, wikipedia, public_page) and adds company.firmographics: official_name, website_domain, industry, hq_city, hq_country (ISO-2), founded_year, employee_count (+as_of), size_range (1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+), ticker (+exchange, sec_cik for US filers), linkedin_url, x_url. Each field: { value, source, source_url, checked_at, confidence: high|medium|low, note? }. Sources: wikidata, wikipedia_infobox, company_website, company_website_schema_org, sec_edgar, caller_input. value is null when no source states it; we never guess. When sources disagree the field is marked low confidence with the alternative listed. company.entity: the Wikidata item used and how it was matched (exact = its official website equals your domain). ### Enriched (POST /v1/enriched, $0.75) - 1.9.3 Everything in Basic, plus: - buying_signals: news from the last 90 days (Google News) classified as funding, acquisition, hiring_expansion, layoffs_cost_cutting, leadership_change, product_launch, partnership, earnings_financials, legal_regulatory or news_mention, plus recent SEC filings (8-K, 10-Q, 10-K) for US filers. Each with headline/form, date and source_url. - hiring: open roles and top departments from the company's public Greenhouse, Lever or Ashby board (only boards linked from the company site, or a Greenhouse board whose name and text match the company). - icp_fit: 0-100 score, verdict (strong_fit, moderate_fit, weak_fit, insufficient_data) and per-factor reasons with source_url. Optional input "icp": {"size_ranges":["51-200"],"industries":["fintech"],"countries":["US"]}. - sales_brief: short points built only from the cited facts above. - recommended_actions: next steps, each with the fact that triggered it. - key_contact_roles / decision_makers.suggested_roles: roles to target with name null. We never invent people. Limits: news matching is headline-based and can miss or (rarely) misattribute items for companies with common-word names; small private companies often have no Wikidata record, so more fields are null.