Reachlist docs

Every tool works the same way from MCP and from the REST API. Prices are in credits; a call that finds nothing costs nothing.

Claude.ai and ChatGPT

  1. In Claude.ai, open Settings, then Connectors, and add a custom connector. In ChatGPT, add a connector in developer mode.
  2. Use this URL: https://reachlist.app/mcp
  3. Sign in with your email when asked, and allow the connection. It spends your credits; you can disconnect it from your dashboard.

Cursor and Claude Code

Create an API key in your dashboard, then add the server. In Cursor, ~/.cursor/mcp.json:

{
  "mcpServers": {
    "reachlist": {
      "url": "https://reachlist.app/mcp",
      "headers": {
        "Authorization": "Bearer rl_…"
      }
    }
  }
}

In Claude Code:

claude mcp add --transport http reachlist https://reachlist.app/mcp --header "Authorization: Bearer rl_…"

REST API

Each tool is POST https://reachlist.app/v1/tools/{name} with a JSON body and your API key as a bearer token. The answer is JSON: found, data, credits_charged, balance and call_id. The full description is the OpenAPI file.

n8n and Make

Use an HTTP Request module: method POST, URL https://reachlist.app/v1/tools/find_email (or any tool), header Authorization: Bearer rl_…, JSON body with the tool's inputs. Import the OpenAPI file where the tool offers it.

Errors and retries

A refused call charges nothing and answers {"error": {"code", "message"}}:

CodeStatusMeans
invalid_input400An input is missing or malformed; the message names it.
unauthorized401No API key, or a revoked one.
insufficient_credits402Not enough credits for the most the call can cost.
monthly_cap402The call would pass the monthly cap you set.
rate_limited42960 calls a minute or 5,000 a day per key; wait Retry-After seconds.
provider_error, not_available502, 503The data source failed or is off; try again later.

To retry safely, send an Idempotency-Key header (any string up to 255 characters). The same key with the same request returns the first answer and charges nothing more, for 24 hours.

Tools

get_person1 credit

A LinkedIn profile URL in, a clean profile out: name, headline, location, about, followers. Set raw for the full record, with roles and education where the provider has them.

InputTypeWhat
linkedin_url requiredURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/get_person \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"linkedin_url":"https://www.linkedin.com/in/mara-lindqvist-example"}'
{
  "found": true,
  "data": {
    "name": "Mara Lindqvist",
    "headline": "Head of Talent at Northpay",
    "location": "Berlin, Germany",
    "linkedin_url": "https://www.linkedin.com/in/mara-lindqvist-example",
    "followers": 2140
  },
  "credits_charged": 1,
  "balance": 412.5,
  "call_id": "…"
}

get_company1 credit

A LinkedIn company URL or a domain in, the company out: name, industry, size, location, website, description.

InputTypeWhat
linkedin_urlURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe
domainstringA company's web domain, such as acme.com
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/get_company \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"domain":"northpay.example"}'
{
  "found": true,
  "data": {
    "name": "Northpay",
    "domain": "northpay.example",
    "industry": "Financial Services",
    "employees": "51-200",
    "founded": 2019,
    "location": "Berlin, Germany"
  },
  "credits_charged": 1,
  "balance": 412.5,
  "call_id": "…"
}

get_job1 credit

A LinkedIn job URL in, the job post out: title, company, place, posted date, description.

InputTypeWhat
job_url requiredURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/get_job \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"job_url":"https://www.linkedin.com/jobs/view/4000000001"}'
{
  "found": true,
  "data": {
    "title": "Senior Recruiter",
    "company": "Ledgerly",
    "location": "Berlin (Hybrid)",
    "posted": "2026-11-02",
    "employment_type": "Full-time",
    "description": "Ledgerly is hiring a senior recruiter to…"
  },
  "credits_charged": 1,
  "balance": 412.5,
  "call_id": "…"
}

search_jobs2 credits per 10 results

Job posts by title, place and company. Charged per 10 results returned.

InputTypeWhat
titlestringJob title words, such as 'Head of Sales'
locationstringA city, region or country
companystringA company name or domain
limitinteger (min 1, max 100, default 10)How many results to return, at most 100
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/search_jobs \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Head of Sales","location":"London","limit":10}'
{
  "found": true,
  "data": [
    {
      "title": "Head of Sales",
      "company": "Kontor Finance",
      "location": "London, England",
      "posted": "2026-11-05",
      "url": "https://www.linkedin.com/jobs/view/4000000002"
    }
  ],
  "credits_charged": 2,
  "balance": 412.5,
  "call_id": "…"
}

search_people2 credits per 10 results

People by job title, company and place, such as 'VPs of Sales at Series B SaaS companies in Berlin'. Charged per 10 results returned.

InputTypeWhat
titlestringJob title words, such as 'VP Sales'
companystringA company name or domain
locationstringA city, region or country
industrystringAn industry, such as 'SaaS' or 'fintech'
limitinteger (min 1, max 100, default 10)How many results to return, at most 100
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/search_people \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Head of Talent","industry":"fintech","location":"Berlin","limit":25}'
{
  "found": true,
  "data": [
    {
      "name": "Mara Lindqvist",
      "title": "Head of Talent",
      "company": "Northpay",
      "company_domain": "northpay.example",
      "location": "Berlin",
      "linkedin_url": "https://www.linkedin.com/in/mara-lindqvist-example"
    }
  ],
  "credits_charged": 2,
  "balance": 412.5,
  "call_id": "…"
}

company_employees2 credits per 10 results

People who work at a company, optionally filtered by title. Charged per 10 results returned.

InputTypeWhat
linkedin_urlURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe
domainstringA company's web domain, such as acme.com
titlestringOnly people whose title matches, such as 'engineering'
limitinteger (min 1, max 100, default 10)How many results to return, at most 100
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/company_employees \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"domain":"ledgerly.example","title":"engineering","limit":10}'
{
  "found": true,
  "data": [
    {
      "name": "Tomasz Wrona",
      "title": "Engineering Manager",
      "company": "Ledgerly",
      "company_domain": "ledgerly.example",
      "linkedin_url": "https://www.linkedin.com/in/tomasz-wrona-example"
    }
  ],
  "credits_charged": 2,
  "balance": 412.5,
  "call_id": "…"
}

find_email2 credits

A person's verified work email, from their LinkedIn URL or their name and company domain. Only addresses that pass verification and match the company's domain are returned.

InputTypeWhat
linkedin_urlURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe
full_namestringThe person's full name
domainstringA company's web domain, such as acme.com

Example request and answer

curl https://reachlist.app/v1/tools/find_email \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"full_name":"Jonas Brenner","domain":"ledgerly.example"}'
{
  "found": true,
  "data": {
    "email": "j.brenner@ledgerly.example",
    "status": "valid",
    "domain": "ledgerly.example"
  },
  "credits_charged": 2,
  "balance": 412.5,
  "call_id": "…"
}

verify_email0.25 credits

One address in: valid, invalid or risky.

InputTypeWhat
email requiredemailThe address to check

Example request and answer

curl https://reachlist.app/v1/tools/verify_email \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"aylin.demir@kontor.example"}'
{
  "found": true,
  "data": {
    "email": "aylin.demir@kontor.example",
    "result": "valid"
  },
  "credits_charged": 0.25,
  "balance": 412.5,
  "call_id": "…"
}

find_phone10 credits

A person's phone number from their LinkedIn URL. Charged only when one is found.

InputTypeWhat
linkedin_url requiredURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe

Example request and answer

curl https://reachlist.app/v1/tools/find_phone \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"linkedin_url":"https://www.linkedin.com/in/mara-lindqvist-example"}'
{
  "found": true,
  "data": {
    "phone": "+49 30 0000000",
    "line_type": "mobile",
    "country_code": "DE"
  },
  "credits_charged": 10,
  "balance": 412.5,
  "call_id": "…"
}

recent_posts1 credit

A person's most recent LinkedIn posts, for a personal opener.

InputTypeWhat
linkedin_url requiredURLA LinkedIn URL, such as https://www.linkedin.com/in/jane-doe
limitinteger (min 1, max 10, default 3)How many results to return, at most 10

Example request and answer

curl https://reachlist.app/v1/tools/recent_posts \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"linkedin_url":"https://www.linkedin.com/in/jonas-brenner-example","limit":1}'
{
  "found": true,
  "data": [
    {
      "text": "We're hiring three engineers in Berlin this quarter…",
      "posted": "2026-11-04",
      "reactions": 86,
      "comments": 12
    }
  ],
  "credits_charged": 1,
  "balance": 412.5,
  "call_id": "…"
}

similar_companies2 credits per 10 results

Companies like a seed company's domain. Charged per 10 results returned.

InputTypeWhat
domain requiredstringA company's web domain, such as acme.com
limitinteger (min 1, max 100, default 10)How many results to return, at most 100
rawboolean (default false)Return the full provider record instead of the trimmed one

Example request and answer

curl https://reachlist.app/v1/tools/similar_companies \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{"domain":"northpay.example","limit":10}'
{
  "found": true,
  "data": [
    {
      "name": "Ledgerly",
      "domain": "ledgerly.example",
      "industry": "Financial Services",
      "employees": "51-200"
    }
  ],
  "credits_charged": 2,
  "balance": 412.5,
  "call_id": "…"
}

creditsFree

Your credit balance and this month's usage. Free.

No inputs.

Example request and answer

curl https://reachlist.app/v1/tools/credits \
  -H "Authorization: Bearer rl_…" \
  -H "Content-Type: application/json" \
  -d '{}'
{
  "found": true,
  "data": {
    "balance": 412.5,
    "spent_this_month": 87.5,
    "monthly_cap": null
  },
  "credits_charged": 0,
  "balance": 412.5,
  "call_id": "…"
}