Leadralia

The business directory, as an API

Search businesses in plain words or by trade and town, and read each one's facts as the company publishes them on its own website, updated regularly. 1,000 search and basic calls are free, once, for your company.

Choose what you read

  1. Search

    Find businesses by words, trade, town, language or facts. Each result is an id, a name, a category and a town, up to 20 results a call.

    EUR4.00per 1,000

    8.00per 1,000, USD 105

  2. Basic

    Contact only: name, category, address, town, country, coordinates, phone, website, logo and social links.

    EUR2.50per 1,000

    5.00per 1,000, USD 63

    • fields=basic
  3. ProfileRecommended

    More about the company: the basic data and its services, specialties, products, about, founded, languages and areas.

    EUR6.50per 1,000

    13.00per 1,000, USD 168

    • fields=profile
  4. Full

    With technical details: the profile data and the technology of its website.

    EUR10.00per 1,000

    20.00per 1,000, USD 2412

    • fields=full

Launch offer Every price above is 50 percent off the list price, struck through.

Each level includes the one before it. A business that has nothing at the level you ask for is billed at the highest level it can fill. The first 1,000 search and basic calls are free, once, for each company domain with an approved licence: never monthly, whatever the number of accounts or keys. Profile and full records are always paid. Lists of countries, trades and towns and the search suggestions are always free. A list or search counts one call for every 20 results it asks for. Charges are in euros; the dollar price is a guide.

A key holds the directory:read scope for search and basic records, directory:profile for profile records and directory:full for full records. E-mail addresses never appear in searches or lists; they are revealed one business at a time.

Pure-Inbox

Pure-Inbox checks e-mail addresses. Send one address or a list of up to 200,000 and get a clear answer for each: deliverable, undeliverable, catch_all (the domain accepts every address, so this one cannot be confirmed) or unknown (no definite answer for now). Each answer carries the reason and a few facts about the address. A result is our assessment at that moment. It does not promise that a message will arrive.

  1. Check

    Charged only for a definite answer: deliverable, undeliverable or catch_all. An unknown costs nothing, and so does a line that is not an address. A duplicate in a list is checked and charged once.

    EUR2.50per 1,000

    per 1,000, USD 3.0

    • POST /verify
    • POST /verify/lists

The first 100 checks of an account are free, once. A list is kept for 30 days and deleted on request; what you send is yours and never enters the directory. The scopes are verify:write (check, make, start and delete lists) and verify:read (progress and results). Charges are in euros; the dollar price is a guide.

curl -X POST -H "Authorization: Bearer lra_your_key" -H "Content-Type: application/json" \
  -d '{"email": "[email protected]"}' "https://leadralia.com/api/v1/verify"

curl -X POST -H "Authorization: Bearer lra_your_key" -H "Content-Type: text/csv" \
  --data-binary @list.csv "https://leadralia.com/api/v1/verify/lists?name=October"

Expired domains

Search expired domain names by trade, town, country, length and ending, and check whether one is free: GET /api/v1/expired-domains, /facets and POST /api/v1/expired-domains/{domain}/check. Scope domains:read, 50 rows a page, each call counts as one search.

Licence

The data is licensed to your company for its own activity. Reselling it, collecting it to build a competing directory, listing site or dataset, publishing it in bulk and sublicensing it are not allowed. Read the licence terms. A licence needs the company's own website and a code sent to an address on its domain, typed back; apply in Settings, API keys. There is one licence per domain, and the free calls are given to a domain once.

The whole data, and what changed

For a company that needs the whole directory, an annual feed gives every published business at the level you choose, then everything that was added, changed or gone since your last read. It runs by annual contract, with a licence for your company and a key of its own. E-mail addresses are not part of it. Write to us.

Top up your wallet

  1. 19,600 Basic records or 12,250 searches

    One payment, no subscription

    EUR49
  2. 41,580 Basic records or 25,987 searches

    +5% bonus for data

    EUR99
  3. 83,580 Basic records or 52,237 searches

    +5% bonus for data

    EUR199
  4. 219,560 Basic records or 137,225 searches

    +10% bonus for data

    EUR499

Calls past the free ones are paid from your API lots first, then from your wallet, at the prices above. A top-up from EUR 99 earns a bonus that pays data, never e-mails sent, We do it for you, ads, page plans, reports or plans. The smallest top-up is EUR 10. With no free calls and nothing to pay with, the API answers 402 with a link to this page. Once your licence is approved, top up in Leadralia, Wallet.

Quickstart

  1. Create a free account.
  2. Apply for the API licence in Settings, API keys: your company, its website and what you will use the data for.
  3. Type back the code we mail to an address on your company's domain.
  4. We review your application and approve it.
  5. Create your key in Settings, API keys.
  6. Send it as Authorization: Bearer lra_... with every call.
  7. Check what you used this month at GET /api/v1/usage.

curl

curl -H "Authorization: Bearer lra_your_key" \
  "https://leadralia.com/api/v1/directory/search?q=plumber+in+Houston"

curl -H "Authorization: Bearer lra_your_key" \
  "https://leadralia.com/api/v1/directory/listings/412?fields=basic"

curl -H "Authorization: Bearer lra_your_key" "https://leadralia.com/api/v1/usage"

Python

import requests

BASE = "https://leadralia.com/api/v1"
HEADERS = {"Authorization": "Bearer lra_your_key"}

found = requests.get(f"{BASE}/directory/search",
                     params={"q": "plumber in Houston"}, headers=HEADERS).json()
for hit in found["data"]["results"]:
    print(hit["id"], hit["name"], hit["category"], hit["town"])

first = found["data"]["results"][0]["id"]
one = requests.get(f"{BASE}/directory/listings/{first}",
                   params={"fields": "basic"}, headers=HEADERS).json()["data"]
print(one["name"], one["phone"], one["website"])

JavaScript

const BASE = "https://leadralia.com/api/v1";
const headers = { Authorization: "Bearer lra_your_key" };

const q = encodeURIComponent("plumber in Houston");
const found = await (await fetch(`${BASE}/directory/search?q=${q}`, { headers })).json();
for (const hit of found.data.results) console.log(hit.id, hit.name, hit.category, hit.town);

const one = await (await fetch(
  `${BASE}/directory/listings/${found.data.results[0].id}?fields=basic`, { headers })).json();
console.log(one.data.name, one.data.phone, one.data.website);

Assistants can use the directory through our MCP connector at https://leadralia.com/mcp/directory.