Resolve402 / services

Company contacts

GET /api/company-contacts · $0.005 per call (USDC on Base or Solana, x402)

Company contact details as published by the company on its own website: shared emails only (contact@, press@, dpo@; personal addresses never returned), phones in E.164, head-office address, social pages, contact form, and legal identifiers checked (SIREN Luhn, VAT checksum, RCS, Impressum register) and matched to the French registry. Every field sourced. From a domain or URL. Nothing found = not charged.

Problem solved

You have a company website and need its official contact details (shared email, switchboard, head-office address, legal identifiers, social pages), each with the page it was read on.

Use cases

Input

GET /api/company-contacts?domain=<domain> | ?url=<any URL of the site>

ParameterWhereTypeDescription
domainquerystringCompany web domain, e.g. acme.fr
urlquerystringAny URL of the company site (alternative to domain)

Output

Contact details the company publishes itself on its website (legal notice / Impressum, contact page, schema.org): emails [{address, source}] limited to shared mailboxes (contact@, press@, dpo@...; personal addresses are never returned, only counted in personal_emails_omitted), phones [{number (E.164), type: standard|customer_service|sales|null, source}] (voice lines; fax numbers in fax [{number, source}]), head-office address, legal {siren, siren_source (published|vat), siret, rcs, vat {number, country, checksum}, register (HRB, FN, KvK, BCE, UID), legal_form, share_capital, official_name, siren_match, active, registry_status}, social (company pages: LinkedIn, X, Facebook, Instagram, YouTube, GitHub), contact_form_url, sources, pages_checked. SIREN/SIRET pass Luhn, the FR VAT key is recomputed; a valid SIREN is matched against the French registry. At most 8 requests per domain, robots.txt honoured. 404 no_public_contact = nothing found, not charged.

Price

$0.005 per call. Charged only if a shared email, a phone number or a legal identifier is found: 404 no_public_contact is not charged.

Example

GET https://resolve402.dev/api/company-contacts?domain=danone.com
{
  "domain": "danone.com",
  "company_name": "Danone S.A.",
  "emails": [
    {
      "address": "press@danone.com",
      "source": "https://www.danone.com/legal-pages/contact.html"
    }
  ],
  "personal_emails_omitted": 0,
  "phones": [
    {
      "number": "+33144352020",
      "type": "customer_service",
      "source": "https://www.danone.com/"
    }
  ],
  "address": {
    "street": "59-61 rue La Fayette",
    "postal_code": "75009",
    "city": "Paris",
    "country": "FR",
    "source": "https://www.danone.com/"
  },
  "legal": {
    "siren": "552032534",
    "rcs": "RCS Paris 552 032 534",
    "vat": {
      "number": "FR27552032534",
      "country": "FR",
      "checksum": "valid"
    },
    "legal_form": "SA",
    "official_name": "DANONE",
    "siren_match": true,
    "active": true,
    "registry_status": "checked"
  },
  "social": {
    "linkedin": "https://www.linkedin.com/company/danone",
    "x": "https://x.com/Danone"
  },
  "contact_form_url": null,
  "sources": {
    "legal.siren": "https://www.danone.com/legal-pages/legal-information.html"
  },
  "pages_checked": [
    "https://www.danone.com/",
    "https://www.danone.com/legal-pages/legal-information.html"
  ],
  "robots_respected": true
}

Bazaar discovery example served in the production 402 (abridged).

Sources

Limits

Use it

All services