---
name: resolve402
description: Find who runs a French company (CEO, président, gérant, DG) with a probable business email, list decision makers by sector and place, check a company before invoicing or paying it (status, VAT, insolvency, sanctions, IBAN), get the contact details a company publishes on its own site (shared emails, phones, address, verified legal identifiers), see whether any company is hiring, pre-check an email, and convert documents (PDF, DOCX, HTML, images to Markdown; Markdown to PDF). Paid per call, not found = not charged.
---

# Resolve402

Base URL: https://resolve402.dev  ·  OpenAPI: https://resolve402.dev/openapi.json  ·  Guide: https://resolve402.dev/llms.txt

## Setup
- With an x402 wallet (AgentCash, Coinbase CDP, x402-fetch): nothing to install, call the URLs below and pay the 402.
- Without a wallet, to try: https://resolve402.dev/api/decision-makers and https://resolve402.dev/api/company-search: 20 free calls per day per client IP, shared by these routes, without any payment or wallet (UTC day). Opt in explicitly: send the header X-Free-Trial: 1 (or add free_trial=1 to the query) and no payment header. The answer comes back with headers X-Free-Quota-Remaining and X-Free-Quota-Limit and a JSON field billing {free_tier: true, remaining}. Without the opt-in, or past the quota, you get the normal 402: pay it with x402 as usual. A paid call never uses the free quota.
- MCP server: coming soon.

## Tools
1. Decision makers — GET https://resolve402.dev/api/decision-makers?siren=<9 digits> | ?company_number=<UK Companies House number> | ?company=<name>[&country=gb] | ?domain=<domain> (domain alone: the SIREN or UK company number is read from the site's legal pages) — $0.02. 20 free calls/day per IP with header X-Free-Trial: 1.
   Returns officers from the official registries (RNE in France, Companies House in the UK), company domain, mail provider, and per officer a probable email {address, pattern, pattern_source, confidence, verified:false}. pattern_source "observed_on_site" (pattern seen on the company's own public pages, confidence medium/high) beats "default_fr" / "default" (guess, confidence low).
2. People search — GET https://resolve402.dev/api/people-search?role=ceo|president|dg|gerant|any_executive&sector=<NAF section A-U or code 62.01Z>&department=<code>|region=<code>|postal_code=<5 digits>&min_employees=<n>[&min_revenue=5M&max_revenue=&min_net_income=0&max_net_income=&keywords=&limit=10&page=1] — $0.05.
   Up to 25 decision makers of matching French companies (official registry). Call decision makers on the ones you keep for emails.
3. Counterparty check — GET https://resolve402.dev/api/counterparty-check?siren=<9 digits> | ?siret= | ?vat=<EU VAT> | ?company=<name> [&iban=<IBAN>] — $0.02.
   Before invoicing or paying: active, VAT valid (VIES), insolvency (BODACC), sanctions on the company and its officers (DG Trésor, EU consolidated list, OFAC SDN), IBAN. Verdict ok / review / block: on review or block, ask a human.
4. Company contacts — GET https://resolve402.dev/api/company-contacts?domain=<domain> | ?url=<any URL of the site> — $0.005.
   What the company publishes on its own site: shared emails only (contact@, press@, dpo@; personal ones only counted), phones in E.164 with type, head-office address, social pages, contact form, legal identifiers checked (SIREN Luhn, VAT checksum, RCS, Impressum register) and matched to the French registry (siren_match). Each field has its source page.
5. Hiring signals — GET https://resolve402.dev/api/hiring-signals?domain=<domain> | ?siren=<9 digits> | ?company=<name> [&limit=50] — $0.01.
   Open jobs from the public ATS board, hiring_intent, by_function. Chain with decision makers.
6. Email pre-check — GET https://resolve402.dev/api/verify-email?email=<address> — $0.003.
   Score 0-100 with reasons (syntax, MX, provider, SPF, DMARC, disposable, webmail, role account, random-looking). No mailbox test: smtp_check:false, accept_all:null, max 90.
7. Document to Markdown — GET https://resolve402.dev/api/doc-to-markdown?url=<public document URL> | POST https://resolve402.dev/api/doc-to-markdown (multipart file field, or raw binary body) — $0.005.
   Clean Markdown with tables as rows, OCR (French, English) for scanned PDFs and images. Charged only if text is found.
8. Markdown to PDF — POST https://resolve402.dev/api/markdown-to-pdf with JSON {markdown, title?, paper?: "A4"|"Letter"} (or a text/markdown body with ?title=&paper=) — $0.01.
   A clean application/pdf (headings, lists, code, tables, page numbers) from Markdown, max 200k characters.
9. Company search by NACE code — GET https://resolve402.dev/api/company-search?country=FR|NO|FI&nace=<NACE code, e.g. 62.01 or 62.10>[&nace_rev=2|2.1&region=<FR département | NO kommune or fylke | FI municipality>&size_min=&size_max=&status=active|all&limit=1-25] — $0.01. 20 free calls/day per IP with header X-Free-Trial: 1.
   Companies whose MAIN activity is the NACE code you give (Rev. 2 or 2.1, class, group or division), from the official registers of France, Norway and Finland, with both NACE codes, the local code, status, size band and the registry licence; sole traders never returned.
10. EU listed company financials (ESEF) — GET https://resolve402.dev/api/esef-financials?lei=<LEI> | ?company=<name>&country=<ISO-2, e.g. FR, IT, NL> — $0.005.
   Latest audited annual financials of an EU listed company (by LEI or name + country) from its ESEF annual report: revenue, operating profit, net income, total assets, equity, cash, borrowings, net debt, prior year, currency, fiscal year end and the filing URL, each figure traced to its IFRS tag.

## Rules
- 404 means not found and is not charged. Do not retry a 404 with the same input.
- Emails are probable, not SMTP-verified: say so to the user, use email_alternatives when confidence is low.
- France only for decision makers and people search. Nothing is stored about the people returned. Opt-out: POST https://resolve402.dev/api/opt-out. Privacy notice: https://resolve402.dev/privacy (privacy@resolve402.dev).
- Free tier only: a salted hash of the caller's IP (rotated daily) and a counter are kept 48 h at most, never the IP.

## Example
GET https://resolve402.dev/api/decision-makers?siren=552032534 → Danone officers with firstname.lastname@danone.com patterns.
