Features

Every endpoint, with a real example.

The request, a trimmed response, the credits it costs and what you get. Examples use acme.fr; replace it with your target company.

Company qualification

4 credits (1 cached)

Turn any company website into a structured profile: what it sells, to whom, and in which market.

Request

curl -X POST https://tools.epsimo.org/qualify \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://acme.fr"}'

Response (trimmed)

{
  "value_proposition": "ACME builds cloud invoicing software for small businesses.",
  "industry": "Software",
  "target_audience": "business owners",
  "market": "B2B",
  "status": 200,
  "error_message": null
}

/qualify · try it · full schema · get a key

One-call enrichment

8 credits (3 cached)

Registry record, qualification and email domain in a single request — plus the contact when you send a first and last name.

Request

curl -X POST https://tools.epsimo.org/enrich \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://acme.fr","first_name":"Jean","last_name":"Dupont"}'

Response (trimmed)

{
  "url": "https://acme.fr",
  "registry": {"nom_complet": "ACME", "siren": "123456789", "...": "..."},
  "qualification": {"industry": "Software", "market": "B2B", "...": "..."},
  "email_domain": {"domain": "acme.fr", "provider": "OVHcloud", "...": "..."},
  "contact": {"email": "jean.dupont@acme.fr", "confidence": "high", "...": "..."},
  "errors": {},
  "cached": false,
  "source": {"registry": "API Recherche d'Entreprises (DINUM), Licence Ouverte 2.0"},
  "status": 200,
  "error_message": null
}

/enrich · try it · full schema · get a key

Professional email discovery

2 credits

Find the most likely professional address of a person at a company, with the pattern it came from and a confidence score.

Request

curl -X POST https://tools.epsimo.org/email-verify \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://acme.fr","first_name":"Jean","last_name":"Dupont"}'

Response (trimmed)

{
  "domain_used": "acme.fr",
  "email": "jean.dupont@acme.fr",
  "confidence": "high",
  "pattern": "{f}.{l}",
  "verification": "pattern_inferred",
  "candidates": [
    {"email": "jean.dupont@acme.fr", "pattern": "{f}.{l}", "score": 0.908},
    {"email": "jdupont@acme.fr", "pattern": "{fi}{l}", "score": 0.027}
  ],
  "domain_checks": {"mx": ["mx1.mail.ovh.net"], "provider": "OVHcloud",
                    "spf": true, "dmarc": true, "disposable": false},
  "generic_emails": ["contact@acme.fr"],
  "cached": false,
  "status": "valid"
}

/email-verify · try it · full schema · get a key

French company search

1 credit

Query 10M+ French companies by name, activity, size, headcount, revenue or directors, with the official registry as the source.

Request

curl -X POST https://tools.epsimo.org/entreprise \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"invoicing","departement":"69","per_page":10}'

Response (trimmed)

{
  "results": [
    {"nom_complet": "ACME", "siren": "123456789",
     "siege": {"code_postal": "69001", "libelle_commune": "Lyon"}}
  ],
  "total_results": 128,
  "page": 1,
  "per_page": 10,
  "total_pages": 13,
  "source": "API Recherche d'Entreprises (DINUM), Licence Ouverte 2.0"
}

/entreprise · try it · full schema · get a key

Companies around a point

1 credit

Every company within a radius of a GPS point, with the same filters and pagination as the text search.

Request

curl -X POST https://tools.epsimo.org/entreprise/geo \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat":45.7640,"long":4.8357,"radius":2}'

Response (trimmed)

{
  "results": [
    {"nom_complet": "ACME", "siren": "123456789",
     "siege": {"code_postal": "69001"}}
  ],
  "total_results": 42,
  "page": 1,
  "per_page": 10,
  "total_pages": 5,
  "source": "API Recherche d'Entreprises (DINUM), Licence Ouverte 2.0"
}

/entreprise/geo · try it · full schema · get a key

Page text extraction

2 credits

Get the readable text of any page, with a headless-browser fallback for JavaScript-rendered or protected sites.

Request

curl -X POST https://tools.epsimo.org/scrape \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://acme.fr"}'

Response (trimmed)

{
  "text": "ACME builds cloud invoicing software for small businesses...",
  "length": 743,
  "method": "direct",
  "elapsed_s": 0.8,
  "status": 200,
  "error_message": null
}

/scrape · try it · full schema · get a key

Ask a company website

3 credits

Ask a question and get a short answer grounded in the page text — no scraping or prompting on your side.

Request

curl -X POST https://tools.epsimo.org/question \
  -H "x-token: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://acme.fr","question":"What does the company sell?"}'

Response (trimmed)

{
  "answer": "ACME sells cloud invoicing software to small businesses.",
  "status": 200,
  "error_message": null
}

/question · try it · full schema · get a key

Balance and usage

free

Check what is left before a batch: free and purchased credits, the monthly quota and per-route consumption.

Request

curl https://tools.epsimo.org/usage \
  -H "x-token: $API_KEY"

Response (trimmed)

{
  "principal": "ab_live_1a2b3c4d",
  "month": "2026-10",
  "free_balance": 100,
  "purchased_balance": 1000,
  "monthly_quota": 10000,
  "credits_consumed": 12,
  "routes": {
    "qualify": {"requests": 2, "credits": 8},
    "email_verify": {"requests": 2, "credits": 4}
  },
  "status": 200,
  "error_message": null
}

/usage · try it · full schema · get a key

Ready to try it?

100 free credits every month. No card required.