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

# Integration recipes

> Call the Seamless.AI API from n8n, Zapier, Make, Clay, Google Sheets, and your CRM, with the exact request settings for each.

Every tool below calls the same REST API. You need an [API key](/authentication/api-keys) and one HTTP request step. Research is asynchronous, so each recipe shows how to get results back, either with a webhook or by polling.

## The two requests every recipe uses

| Step | Method and URL | Body |
| - | - | - |
| Start research | `POST https://api.seamless.ai/api/client/v1/contacts/research` | `{"contacts": [{"email": "{{email}}"}]}` |
| Get the result | `GET https://api.seamless.ai/api/client/v1/contacts/research/poll?requestIds={{requestId}}` | none |

Headers on both: `Token: YOUR_API_KEY` and `Content-Type: application/json`.

> [!TIP]
>
> Prefer webhooks in no-code tools. Set your workflow's webhook URL under [Settings → Webhooks](https://login.seamless.ai/settings/webhooks) and results arrive on their own, with no polling loop. See [Webhooks](/receive-research-results-with-webhooks).

## n8n

**1. Start research**

Add an **HTTP Request** node. Method `POST`, the research URL, **Send Headers** on with `Token` and `Content-Type`, **Send Body** as JSON with the body above.

**2. Receive results**

In a second workflow, add a **Webhook** trigger node and paste its production URL into Seamless webhook settings. Check the `x-seamless-webhook-secret` header with an **IF** node.

**3. Or poll**

Add a **Wait** node (5 seconds), then an **HTTP Request** node calling the poll URL with `{{ $json.requestIds[0] }}`. Loop back to Wait while `status` is `queued` or `researching`.

## Zapier

**1. Start research**

Add a **Webhooks by Zapier** action, event **Custom Request**. Method `POST`, the research URL, data as the JSON body, and the two headers.

**2. Receive results**

Build a second Zap that starts with **Webhooks by Zapier → Catch Hook**. Paste the hook URL into Seamless webhook settings, then map the contact fields into your CRM or sheet.

## Make

**1. Start research**

Add an **HTTP → Make a request** module. Method `POST`, the research URL, headers `Token` and `Content-Type`, body type **Raw**, content type JSON.

**2. Receive results**

Start a second scenario with **Webhooks → Custom webhook** and register its address in Seamless webhook settings.

## Clay

Use searches in Clay, since search returns data in the same call.

**1. Add an HTTP API column**

Choose **HTTP API** as the enrichment. Method `POST`, URL `https://api.seamless.ai/api/client/v1/search/contacts`, headers `Token` and `Content-Type`.

**2. Send the row's data**

Body: `{"companyDomain": ["/Domain"], "seniority": ["VP", "C-Level"], "limit": 10}`, inserting your Domain column where shown.

**3. Map the output**

Pull `data[].fullName`, `data[].jobTitle`, and `data[].searchResultId` into new columns. Research the rows you keep with a second HTTP API column.

## Google Sheets

Paste this into **Extensions → Apps Script**, set `SEAMLESS_API_KEY` in Script Properties, and use `=SEAMLESS_DOMAIN(A2)` in a cell. It returns company name, size, and industry from a search.

```javascript theme={null}
function SEAMLESS_DOMAIN(domain) {
  const key = PropertiesService.getScriptProperties().getProperty("SEAMLESS_API_KEY");
  const res = UrlFetchApp.fetch("https://api.seamless.ai/api/client/v1/search/companies", {
    method: "post",
    contentType: "application/json",
    headers: { Token: key },
    payload: JSON.stringify({ companyDomain: [domain], limit: 1 }),
    muteHttpExceptions: true,
  });
  const row = (JSON.parse(res.getContentText()).data || [])[0];
  return row ? [[row.companyName, row.companySize, (row.industries || []).join(", ")]] : "Not found";
}
```

Each call is a search, so it uses credits. Run it on the rows you need, not a whole column at once.

## Salesforce, HubSpot, and data warehouses

Research once, then sync everything your org has researched for free with [My Contact Data](/api-catalog/my-contact-data). The [CRM sync guide](/use-cases/sync-researched-contacts-to-crm) walks through a nightly job.

## AI assistants

Claude, ChatGPT, Cursor, and other MCP clients connect to Seamless directly. No HTTP steps needed. See [MCP server](/api-catalog/mcp) and [Prompts and skills](/api-catalog/prompts-and-skills).


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