> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# BetterContact

> Connect BetterContact to your Atako agents — 4 read and 5 write actions.

Let your agents find and enrich B2B contacts with BetterContact: look up verified work e-mails and mobile numbers for a list of people, search for leads or companies with filters, and enrich a LinkedIn or company profile.

## Connection

* **Authentication**: API key (BetterContact API key).

> [!NOTE]
>
> In BetterContact, open the left sidebar → API (app.bettercontact.rocks/api) → API KEYS → Copy the key (or Manage this key → Regenerate to get a new one). The key has no scopes: it carries all the account rights and spends its credits (see BetterContact's pricing page).
>
> See [BetterContact's documentation](https://doc.bettercontact.rocks/).

## Read actions (4)

| Action | Description |
| - | - |
| `get_account` | Get the account's remaining credits (credits\_left) — a read, free. |
| `get_company_finder_results` | Get the state and companies of a search started with start\_company\_finder — a read, free. Repeat until status is "terminated"; the search may stay in "processing" for several minutes. Argument: request\_id (string, REQUIRED, the request\_id returned by start\_company\_finder). |
| `get_enrichment_results` | Get the state and results of an enrichment started with enrich\_contacts — a read, free. Repeat until status is "terminated" (not\_started / in progress answers mean "try again later": an enrichment usually takes 30 s to a few minutes); an unknown id answers 406. Argument: request\_id (string, REQUIRED, the id returned by enrich\_contacts). |
| `get_lead_finder_results` | Get the state and leads of a search started with start\_lead\_finder — a read, free. Repeat until status is "terminated"; an unknown id answers 404. Argument: request\_id (string, REQUIRED, the request\_id returned by start\_lead\_finder). |

## Write actions (5)

| Action | Description |
| - | - |
| `enrich_company_profile` | Enrich one company's profile (name, description, industry, location…) — synchronous. Arguments: at least one of company\_domain (string, e.g. "microsoft.com") or company\_linkedin\_url (string, company LinkedIn page URL). |
| `enrich_contacts` | Start the enrichment of 1 to 100 contacts with their verified work e-mail and/or mobile number (waterfall). Spends credits when the job runs: 1 credit per valid e-mail found, 10 per valid mobile found, 0 when nothing is found. Asynchronous result: the call returns an id; call get\_enrichment\_results with that id until status is "terminated" (about 30 seconds). Arguments: data (array of 1 to 100 objects, REQUIRED; each \{ first\_name: string REQUIRED, last\_name: string REQUIRED, company\_domain: string (e.g. "tesla.com", better results than company), company: string (company name), linkedin\_url: string (recommended for phone) } — give company\_domain or company), enrich\_email\_address (boolean, default true), enrich\_phone\_number (boolean, default false; needs the phone add-on on the account, otherwise 402), verify\_catch\_all (boolean, default false; extra catch-all check, needs the add-on). |
| `enrich_lead_profile` | Enrich one person's profile (job title, seniority, location, current company) — synchronous, spends 0.1 credit. Arguments: either linkedin\_url (string, public LinkedIn profile URL, sufficient alone and takes precedence) OR first\_name + last\_name + company\_domain (strings, all three required in that case); company (string, optional, company name). |
| `start_company_finder` | Start a Company Finder search: companies matching filters (free). Asynchronous result: the call returns a request\_id; call get\_company\_finder\_results with it until status is "terminated" — a search can stay in "processing" for a long time, stop polling after a few minutes. Arguments: filters (object, REQUIRED, at least one filter: company (domains), company\_industry, company\_hq\_location, company\_technologies, company\_keywords, company\_headcount\_min / company\_headcount\_max (integers), is\_b2b / is\_b2c / is\_public (booleans), … — each list filter is \{ include: string\[] } and has no exclude), limit (integer 1 to 200, default 10), offset (integer, default 0). |
| `start_lead_finder` | Start a Lead Finder search: people matching company and job filters (the search itself is free, no e-mail or phone is enriched — use enrich\_contacts afterwards). Asynchronous result: the call returns a request\_id; call get\_lead\_finder\_results with it until status is "terminated". Arguments: filters (object, REQUIRED, at least one filter: company, company\_industry, company\_hq\_location, company\_technologies, company\_headcount\_min / company\_headcount\_max (integers), lead\_job\_title \{ include: string\[], exclude?: string\[], exact\_match?: boolean }, lead\_seniority, lead\_department, … — each list filter is \{ include: string\[], exclude?: string\[] } and exclude alone matches nothing), limit (integer 1 to 200, default 10), offset (integer, default 0). |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](https://docs.atako.ai/integrations/permissions.md) for the grant model and [Security](https://docs.atako.ai/integrations/security.md) for how credentials are protected.

***

*Last reviewed against the provider API: October 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.