---
title: Seamless.AI API Integration on Truto
slug: seamlessai
category: Sales Intelligence
canonical: "https://truto.one/integrations/detail/seamlessai/"
---

# Seamless.AI API Integration on Truto



**Category:** Sales Intelligence  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 10 tools for Seamless.AI that AI agents can call directly.

- **list_all_seamless_ai_companies** — List companies saved in your seamlessai org. Returns company records with name, domain, description, location, industries, annualRevenue, staffCountRange, createdAt, and intelligence URLs. Max 500 per page. Required: startDate, endDate. Seamless rejects a startDate/endDate range longer than 30 days (400: "Dates times are invalid. Please provide a time range that is no more than 30 days.").
- **list_all_seamless_ai_contacts** — List contacts saved in your Seamless.AI org (free, no credits consumed). Returns contact records including contactId, names, emails with validation confidence scores, direct and company phone numbers, company details, LinkedIn profile URLs, and jobChangeAlert. Max 500 results per page. Required: startDate, endDate. Seamless rejects a startDate/endDate range longer than 30 days (400: "Dates times are invalid. Please provide a time range that is no more than 30 days.").
- **list_all_seamless_ai_search_companies** — Search Seamless.AI companies by name, domain, location, industry, size, revenue, technology, funding, or news filters, or run the filters of an existing saved search via savedSearchId. Returns: name, street1, street2, street3, city, state, country, domain, description, industries, technologies. Costs 1 credit per 10 results (rounded up). If the org's credit balance cannot cover the requested limit, Seamless shortens the page to what the balance can pay for. Truto sends these filters as query params, not a body; use bracket arrays, e.g. companyName[]=Salesforce&industry[]=Software.
- **list_all_seamless_ai_search_contacts** — Search Seamless.AI contacts with filters such as companyName, jobTitle, seniority, department, industry, locations, and technologies; costs 1 credit per 10 results, rounded up. Returns each contact with searchResultId, name, title, company, department, seniority, domain, city/state/country, industries, timezone, and LinkedIn URLs. Pagination: limit defaults to 50; the reference page states a maximum of 500, with larger values reduced to 500 rather than rejected. If the org's credit balance cannot cover the requested limit, Seamless shortens the page to what the balance can pay for. Truto sends these filters as query params, not a body; use bracket arrays, e.g. companyName[]=Salesforce&seniority[]=C-Level.
- **create_a_seamless_ai_companies_research** — Research companies in Seamless.AI for async enrichment by submitting searchResultIds from /search/companies and/or direct domain/companyName identifiers. Returns an array of accepted request ID strings to poll for results. Up to 500 records combined per the reference page (the published OpenAPI spec says 100; documented vendor conflict); costs 1 credit per record.
- **list_all_seamless_ai_companies_researches** — Poll company research results in Seamless.AI for previously submitted research requests, one status entry per ID. Returns: requestId, status, company. Required: requestIds.
- **create_a_seamless_ai_contacts_research** — Research Seamless.AI contacts by searchResultIds from contact search results, or directly with a contacts array (contactName+companyName/domain, email, or a LinkedIn URL); set isJobChange true for job-change research. Up to 500 items combined per the reference page (the published OpenAPI spec says 100; documented vendor conflict), 1 credit per record. Returns the accepted request IDs to poll for results. Requires searchResultIds or contacts (mutually exclusive).
- **list_all_seamless_ai_contacts_researches** — Poll Seamless.AI contact research results for up to 500 requestIds returned by the research endpoint (the published OpenAPI spec says 100; documented vendor conflict). Returns one result per ID with requestId, searchResultId, status (queued, researching, done, error, missing, duplicate), message, additionalData, and the enriched contact record when done. Required: requestIds.
- **list_all_seamless_ai_users** — Get the authenticated user's profile in seamlessai. Returns: success, email, firstname, lastname. Free — no credits consumed.
- **list_all_seamless_ai_location_filter_values** — Look up Seamless.AI location filter values for contact/company search filters by partial place name. Returns matching locations as items with location, type, and count, ordered by contact volume. Required: q. Use types to restrict tiers (omit for all). Truto's proxy never forwards a caller-supplied limit query parameter for this method (src/common/getQueryToForward.ts always strips `limit`), so Seamless always applies its own default of 10 results — there is no way to request more through this method.

## How it works

1. **Link your customer's Seamless.AI account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Seamless.AI.** The Proxy API is a 1-to-1 mapping of the Seamless.AI API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Auto-sync prospects from the Seamless.AI Chrome Extension into your CRM** — Sales reps live in the Chrome Extension saving contacts and companies. By polling saved records daily, your CRM can automatically ingest those prospects enriched with verified emails and direct dials — no copy-paste, no CSV imports.
- **Embed native prospecting inside your sales platform** — Let users define an ICP (title, seniority, industry, location) directly in your UI and run live Seamless.AI searches behind the scenes. Prospects flow straight into campaigns, sequences, or dialer workflows without ever leaving your product.
- **Power AI outbound agents with verified contact data** — Autonomous SDR agents need validated emails and firmographics to personalize at scale. Chain Seamless.AI search → research → poll workflows to feed your agent fresh, confidence-scored data before it drafts and sends outreach.
- **Keep CRM records clean with automated enrichment and job-change detection** — RevOps and data hygiene platforms can batch stale CRM contacts into Seamless.AI research jobs, surface job-change signals, and append newly verified phone numbers — turning rotting pipeline into actionable records.
- **Build vertical-specific sales intelligence for niche industries** — Logistics, healthcare, or recruiting SaaS products can offer their users a one-click Seamless.AI connection, delivering domain-relevant contacts and firmographics inside workflows tailored to their vertical.

## What you can build

- **Incremental saved-contact sync** — A rolling daily or weekly job that pulls newly saved Seamless.AI contacts and companies into your platform using 30-day-compliant date windows.
- **In-app ICP search builder** — A native search UI backed by Seamless.AI's contact and company search endpoints, with filters for seniority, title, location, industry, and company name.
- **Async enrichment pipeline with status polling** — Submit contacts or companies for research, store the returned Request IDs, and poll until status transitions to done, error, missing, or duplicate — then append verified data to your records.
- **Job-change alert workflows** — Trigger research jobs with job-change flags to detect when prospects move companies, auto-flag outdated CRM records, and create new opportunities in your platform.
- **Credit-aware search pagination** — A smart pagination layer that respects Seamless.AI's silent credit truncation behavior and surfaces credit exhaustion to your end users before searches fail quietly.
- **Location filter picker** — A typeahead picker powered by Seamless.AI's location filter values endpoint, so users can build geographically precise prospect lists without guessing valid values.

## FAQs

### How does authentication work for end users connecting their Seamless.AI account?

Truto handles the Seamless.AI auth flow and credential storage for you. Your end users connect their own Seamless.AI account through Truto's connection UI, and your app calls the unified tools without managing API keys directly.

### Can we do a full historical sync of all contacts a user has ever saved?

No. Seamless.AI rejects any list request with a startDate/endDate range longer than 30 days. You must build incremental, rolling syncs (daily or weekly) rather than a one-shot historical backfill.

### Why does fetching enriched data require two API calls?

Seamless.AI researches contacts and companies in real time, so enrichment is asynchronous. You call create_a_seamless_ai_contacts_research (or the companies equivalent) to submit targets, get back Request IDs, then poll list_all_seamless_ai_contacts_researches until status is done, error, missing, or duplicate.

### How do credits affect API behavior?

Search costs 1 credit per 10 results (rounded up) and research costs 1 credit per record. If a user's organization runs out of credits mid-request, Seamless.AI silently truncates the paginated response to whatever the balance allows, so you should surface credit state in your UI.

### What are the pagination and batch limits?

Truto's search endpoints default to a limit of 50 with a max of 500 per page. For research submissions, batch sizes are capped (vendor docs reference 100–500 per batch) — chunk large payloads accordingly.

### What data fields are most valuable to surface in our product?

Validated emails with confidence scores, direct and company phone numbers, LinkedIn URLs, and firmographics like annualRevenue, staffCountRange, and technologies. Job-change signals are also available via research requests for intent-based workflows.
