Sales Intelligence · Beta
ContactOut
API integration
Ship Sales Intelligence features without building the integration. Full ContactOut API access via Proxy and 20+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with ContactOut
Common scenarios for SaaS companies building ContactOut integrations for their customers.
Embed native sourcing inside your ATS
Let recruiters paste a LinkedIn URL into your ATS and instantly create a candidate record with personal email, mobile, work history, and GitHub — eliminating the Chrome extension + CSV workflow that pulls users out of your product.
Turn target accounts into verified outbound sequences
For sales engagement and SDR platforms, convert a company domain into a ready-to-send cold sequence by auto-discovering decision-makers, enriching their contact details, and verifying deliverability before any email fires.
Guarantee 100% hit-rate enrichment for RevOps
Offer credit-optimized enrichment inside your CRM or data hygiene tool by using ContactOut's free check endpoints to pre-flight records, so your users only burn credits on contacts that will actually return data.
Make intent and signal data actionable
If you ship intent data, website visitor tracking, or signal-based prospecting, pair surging accounts with the real people to contact — searching ContactOut by company, title, and skill to turn signals into named pipeline.
Build privacy-compliant ad audiences from LinkedIn lists
Let MarTech users upload LinkedIn URLs and push SHA-256 hashed personal emails directly into Meta or LinkedIn custom audiences, without ever exposing raw PII inside your platform.
What You Can Build
Ship these features with Truto + ContactOut
Concrete product features your team can ship faster by leveraging Truto’s ContactOut integration instead of building from scratch.
One-click LinkedIn-to-CRM enrichment
A button in your UI that takes a LinkedIn URL or email and returns a fully populated contact record via contact_out_people_enrich_by_linkedin_url or contact_out_people_enrich_by_email.
Automated buying committee discovery
A workflow that takes a company domain, calls contact_out_companies_enrich plus contact_out_people_search_decision_makers, and surfaces the full leadership team ready for outreach.
Async bulk enrichment with webhook delivery
A background job runner using create_a_contact_out_contact_enrichment_job and get_single_contact_out_contact_enrichment_job_by_id to process thousands of CRM records without API timeouts.
Pre-send email verification layer
An automatic deliverability check using contact_out_email_verifications_verify that blocks invalid, disposable, or risky addresses before sequences fire, protecting your users' sending reputation.
Native prospecting search inside your app
A full lead-list builder powered by contact_out_people_search, contact_out_people_count, and contact_out_companies_search so users never leave your product to prospect.
Credit-aware waterfall enrichment
A smart enrichment engine that uses contact_out_contacts_check_work_email, check_personal_email, and check_phone to confirm data exists for free, then only spends credits on guaranteed hits.
SuperAI
ContactOut AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
contact_out_people_enrich
Enrich one person in ContactOut from linkedin_url, email or phone, or from a name plus company, company_domain, location or education. Contact data comes back only for the types listed in include. Returns status_code and profile. Costs 1 search credit per profile found, plus 1 email or phone credit when that data is found.
contact_out_people_enrich_by_linkedin_url
Get the full ContactOut profile for one LinkedIn profile URL, with emails and phones when found; profile_only=true skips contact data. Returns status_code and profile (an empty array when nothing matched). Costs 1 email credit and 1 phone credit when found, or 1 search credit when profile_only=true or no contact data exists.
contact_out_people_enrich_by_email
Get the ContactOut profile for one email address; personal emails match best. Set include=work_email to also get a work email checked in real time (workEmailStatus Verified or Unverified) (slower). Returns status_code and profile with camelCase keys. Costs 1 email credit if an email is found and 1 phone credit if a phone is found.
contact_out_people_find_linkedin_url
Get the LinkedIn profile URL for an email address (ContactOut Email to LinkedIn API). Returns status_code and profile with email and linkedin. Costs 1 email credit if a profile is found.
contact_out_people_search
Search ContactOut people profiles by title, company, location, skills, education and more. Page with page and page_size (1-25, default 25) in the body. Returns status_code, metadata and profiles keyed by LinkedIn URL. Costs 1 search credit per profile returned, plus email/phone credits when reveal_info=true. Limited to 60 requests per minute.
contact_out_people_count
Count ContactOut profiles matching the People Search filters (page, data_types and reveal_info are not accepted). Returns status_code, total_results, estimated_personal_emails, estimated_work_emails and estimated_phones. Does not consume credits. Available to paid users only.
contact_out_people_search_decision_makers
Get decision makers at a company in ContactOut. Send at least one of linkedin_url, domain or name; pass page for later pages (25 per page). Returns status_code, metadata and profiles keyed by LinkedIn URL. Costs 1 search credit per profile returned, plus email/phone credits when reveal_info=true.
contact_out_contacts_enrich
Get emails, and phones with include_phone=true, for one LinkedIn profile in ContactOut. email_type picks personal, work, personal,work or none. Returns status_code and profile with url, email, work_email, work_email_status, personal_email, phone and github. Costs 1 email credit if an email is found and 1 phone credit if a phone is found.
contact_out_contacts_bulk_enrich
Get contact details for up to 100 LinkedIn profiles in one synchronous ContactOut call (V1 bulk). Returns status_code and profiles keyed by the requested URL: an array of emails, or an object with emails and phones when include_phone=true. Costs 1 email credit per profile with an email and 1 phone credit per profile with a phone.
contact_out_contacts_check_personal_email
Check whether ContactOut has a personal email for a LinkedIn profile. Returns status_code and profile.email (true when present). Does not consume credits. Paid users only.
contact_out_contacts_check_work_email
Check whether ContactOut has a work email for a LinkedIn profile. Returns status_code and profile with email (true when present) and email_status (Verified, Unverified or null). Does not consume credits. Paid users only.
contact_out_contacts_check_phone
Check whether ContactOut has a phone number for a LinkedIn profile. Returns status_code and profile.phone (true when present). Does not consume credits. Paid users only.
create_a_contact_out_contact_enrichment_job
Start an asynchronous ContactOut contact lookup (V2 bulk) for up to 1000 LinkedIn profile URLs. Returns status (e.g. QUEUED) and job_id; fetch results with get using the job_id, or pass callback_url to have ContactOut POST them when done. Costs 1 email credit per profile with an email and 1 phone credit per profile with a phone.
get_single_contact_out_contact_enrichment_job_by_id
Get a ContactOut V2 bulk contact lookup job by its job_id. Returns uuid, status and result, where result is keyed by LinkedIn URL with emails, personal_emails, work_emails and phones.
contact_out_hashed_emails_bulk_lookup
Get SHA-256 hashed personal emails for 5 to 100 LinkedIn profile URLs in ContactOut. Returns status_code, matches.emails (hashes), matches_found, unmatched and unmatched_count. Work emails are not included. Costs 1 email credit per profile that returns a hash.
contact_out_email_verifications_verify
Verify the deliverability of one email address with ContactOut. Returns status_code and data.status: valid, invalid, accept_all, disposable or unknown. Costs 1 verifier credit when the result is valid, invalid or accept_all.
create_a_contact_out_email_verification_job
Start an asynchronous ContactOut bulk verification of up to 100 email addresses. Returns status (e.g. QUEUED) and job_id; fetch results with get, or pass callback_url to receive them by POST. Costs 1 verifier credit per email whose result is valid, invalid or accept_all.
get_single_contact_out_email_verification_job_by_id
Get a ContactOut bulk email verification job by its job_id. Returns uuid, status (DONE when complete) and result, a map of email to valid, invalid, accept_all, disposable or unknown.
list_all_contact_out_campaigns
List ContactOut email campaigns. Returns id, name, status, created_at and updated_at for each campaign. The Campaigns API must be enabled for the API token; otherwise ContactOut returns 403.
get_single_contact_out_campaign_by_id
Get one ContactOut campaign by id, with its sequence steps. Set include_stats=true to add stats (sends, opens, replies, bounces, open_rate, reply_rate). Returns id, name, status, created_at, updated_at, steps and stats. Needs the Campaigns API enabled for the token.
list_all_contact_out_usage_stats
Get ContactOut API usage for a month. Pass period as YYYY-MM (default current month). Returns status_code, period and usage with email, phone and search counts and quotas; postpaid keys also carry remaining and over_quota values. Unpaginated: the list returns this one usage object as a single record; limit and next_cursor do nothing.
contact_out_companies_enrich
Get ContactOut company details for up to 30 domains. Returns status_code and companies keyed by domain; a domain with no match maps to an empty object. Costs 1 search credit per company found.
contact_out_companies_search
Search ContactOut companies by name, domain, size, location, industry, technologies, revenue and founding year. Pass page in the body for later pages (25 per page). Returns status_code, metadata and a companies array. Costs 1 search credit per company returned.
Why Truto
Why use Truto’s MCP server for ContactOut
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with ContactOut in under an hour. No boilerplate, no maintenance burden.
Link your customer’s ContactOut account
Use Truto’s frontend SDK to connect your customer’s ContactOut account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call ContactOut
Truto’s Proxy API is a 1-to-1 mapping of the ContactOut API. You call us, we call ContactOut, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate ContactOut’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about ContactOut on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for ContactOut via Truto?
ContactOut uses API token authentication. Your end users provide their ContactOut API token through Truto's hosted connect UI or your own flow, and Truto stores and injects credentials on every request — you never handle the token directly.
Does Truto support ContactOut's asynchronous enrichment jobs?
Yes. You can create jobs via create_a_contact_out_contact_enrichment_job and poll status via get_single_contact_out_contact_enrichment_job_by_id. The same pattern is available for email verification jobs, making it straightforward to process bulk workloads.
Can I check if ContactOut has data on a contact without consuming credits?
Yes. ContactOut exposes dedicated check endpoints — contact_out_contacts_check_work_email, check_personal_email, and check_phone — that return boolean availability without burning enrichment credits. These are ideal for building waterfall or pre-flight logic.
What contact data can I retrieve for a LinkedIn profile?
Through the enrichment endpoints you can return work emails, personal emails, direct dials and mobile numbers, full work history, and profile metadata. Match rates for LinkedIn-to-email are among the highest in the category.
How do I handle rate limits and pagination?
Truto handles pagination normalization and automatic retry/backoff for ContactOut's rate limits across search and bulk endpoints, so you can iterate through contact_out_people_search or bulk lookups without writing retry logic yourself.
Can I pull campaign performance data from ContactOut?
Yes. list_all_contact_out_campaigns and get_single_contact_out_campaign_by_id let you sync campaigns and (with stats included) metrics like opens, clicks, replies, and bounces back into your CRM or analytics layer.
Is there a privacy-safe way to build ad audiences from LinkedIn URLs?
Yes. contact_out_hashed_emails_bulk_lookup returns SHA-256 hashes of personal emails for a given list of LinkedIn URLs, which can be pushed directly to Meta or LinkedIn custom audiences without exposing raw PII.
ContactOut
Get ContactOut integrated into your app
Our team understands what it takes to make a ContactOut integration successful. A short, crisp 30 minute call with folks who understand the problem.