NAV
shell

Introduction

Welcome to ContactOut's API. Find anyone's email & phone number 10x faster with the most powerful sales and recruitment intelligence software available.

Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "https://api.contactout.com" \
  -H "authorization: basic"
  -H "token: <YOUR_API_TOKEN>"

ContactOut uses API keys to allow access to the API. You can request an API key by booking a meeting here.

ContactOut expects the API key to be included in all API requests to the server in a header that looks like the following:

token : <YOUR_API_TOKEN>

Rate limits

Please note that for all endpoints, the rate limit is 1200 requests per minute. Additionally, our search endpoint has a specific limit of 60 requests per minute.

1a. Personal Email Checker

Get personal email availability status for a single Linkedin profile


curl "https://api.contactout.com/v1/people/linkedin/personal_email_status?profile=https://www.linkedin.com/in/example-person" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "email": true
  }
}

HTTP Request

GET https://api.contactout.com/v1/people/linkedin/personal_email_status?{profile=}

Query Parameters

Parameter Type Description
profile profile: (string, URL encoded, required) The fully formed URL of the LinkedIn profile. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/

1b. Work Email Checker

Get work email availability status for a single LinkedIn profile

curl "https://api.contactout.com/v1/people/linkedin/work_email_status?profile=https://www.linkedin.com/in/example-person" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "email": true,
    "email_status": 'Verified | Unverified | null'
  }
}

HTTP Request

GET https://api.contactout.com/v1/people/linkedin/work_email_status?{profile=}

Query Parameters

Parameter Type Description
profile profile: (string, URL encoded, required) The fully formed URL of the LinkedIn profile. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/.

1c. Phone Number Checker

Get phone availability status for a single LinkedIn profile

curl "https://api.contactout.com/v1/people/linkedin/phone_status?profile=https://www.linkedin.com/in/example-person" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "phone": true
  }
}

HTTP Request

GET https://api.contactout.com/v1/people/linkedin/phone_status?{profile=}

Query Parameters

Parameter Type Description
profile profile: (string, URL encoded, required) The fully formed URL of the LinkedIn profile. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/

2a. Contact Info from LinkedIn Profile

Get contact details for a single LinkedIn profile. Requesting real-time work_emails via &email_type=work may increase the response time. This endpoint does not provide real-time verified work_email by default. If you need it in the response, you must pass the additional argument: email_type.


curl "https://api.contactout.com/v1/people/linkedin?profile=https://www.linkedin.com/in/example-person&include_phone=true" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "url": "https://www.linkedin.com/in/example-person",
    "email": [
      "[email protected]",
      "[email protected]"
    ],
    "work_email": [
      "[email protected]"
    ],
    "work_email_status": [
      "[email protected]" => "Verified | Unverified"
    ],
    "personal_email": [
      "[email protected]"
    ],
    "phone": [
      "phone number 1"
    ],
    "github":[
      "github_name"
    ]
  }
}

Empty Results

{
  "status_code": 404,
  "message": "Not Found"
}

HTTP Request

GET https://api.contactout.com/v1/people/linkedin?{profile=&include_phone=}

Query Parameters

Parameter Type Description
profile profile: (string, URL encoded, required) The fully formed URL of the LinkedIn profile. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/
include_phone boolean, optional, Defaults to false If set to true, it will include phone information in the response and deduct phone credits.
email_type string, optional If set to work, it will return a work email.
If unset, it will not provide real-time verified work emails.
If set to personal, work, it will return both types of emails and do the real-time verification.

2b. Contact Info from LinkedIn MemberId

Get contact details for a single LinkedIn profile using memberId


curl "https://api.contactout.com/v1/people/linkedin_member_id?member_id=12345&include_phone=true" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "member_id": 12345,
    "email": [
      "[email protected]",
      "[email protected]"
    ],
    "work_email": [
      "[email protected]"
    ],
    "work_email_status": [
      "[email protected]" => "Verified | Unverified"
    ],
    "personal_email": [
      "[email protected]"
    ],
    "phone": [
      "phone number 1"
    ],
    "github":[
      "github_name"
    ]
  }
}

Empty Results

{
  "status_code": 404,
  "message": "Not Found"
}

HTTP Request

GET https://api.contactout.com/v1/people/linkedin_member_id?{member_id=&include_phone=}

Query Parameters

Parameter Type Description
member_id integer, required LinkedIn profile member id
include_phone boolean, optional, Defaults to false If set to true, it will include phone information in the response and deduct phone credits.

3a. Bulk ContactInfo V1

Get contact details for a batch of 30 LinkedIn Profiles per API call

curl 'https://api.contactout.com/v1/people/linkedin/batch' \
--header 'Content-Type: application/json' \
--header 'Authorization: basic' \
--header "token: <YOUR_API_TOKEN>"
--data '{
    "profiles": [
        "https://linkedin.com/in/example-person-1",
        "https://linkedin.com/in/example-person-2",
        "https://linkedin.com/in/example-person-3"
    ]
}'

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profiles": {
    "https://linkedin.com/in/example-person-1": [
      "[email protected]",
      "[email protected]",
      "[email protected]"
    ],
    "https://linkedin.com/in/example-person-2": [
      "[email protected]"
    ],
    "https://linkedin.com/in/example-person-3": [
      "[email protected]"
    ]
  }
}

If no contact info found

{
  "status_code": 200,
  "profiles": {
    "https://linkedin.com/in/example-person-1": [],
    "https://linkedin.com/in/example-person-2": [],
    "https://linkedin.com/in/example-person-3": []
  }
}

HTTP Request

POST https://api.contactout.com/v1/people/linkedin/batch

Query Parameters

Parameter Type Description
profiles Array, required, max:30 An array of LinkedIn profile URLs. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/

3b. Bulk ContactInfo V2

Get contact details for a batch of 1000 LinkedIn Profiles in bulk. This version improves upon v1 by incorporating ContactOut's real-time work email finder.

curl 'https://api.contactout.com/v2/people/linkedin/batch' \
--header 'Content-Type: application/json' \
--header 'Authorization: basic' \
--header "token: <YOUR_API_TOKEN>"
--data '{
    "callback_url": "https://api.contactout.com/enrich-test-callback-endpoint",
    "profiles": [
        "https://linkedin.com/in/example-person-1",
        "https://linkedin.com/in/example-person-2",
        "https://linkedin.com/in/example-person-3"
    ]
}'

The above command returns JSON structured like this:

{
  "status": "QUEUED",
  "job_id": "96d1c156-fc66-46ef-b053-be6dbb45cf1f"
}

To get the contact information

curl "https://api.contactout.com/v2/people/linkedin/batch/96d1c156-fc66-46ef-b053-be6dbb45cf1f" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "data": {
    "uuid": "96d1d610-f163-484e-a433-3006c862c14d",
    "status": "SENT",
    "result": {
      "https://www.linkedin.com/in/example-person-1": {
        "emails": [
          "[email protected]"
        ],
        "personal_emails": [],
        "work_emails": [
          "[email protected]"
        ]
      },
      "https://www.linkedin.com/in/example-person-2": {
        "emails": [
          "[email protected]",
          "[email protected]"
        ],
        "personal_emails": [
          "[email protected]"
        ],
        "work_emails": [
          "[email protected]"
        ]
      },
      "https://www.linkedin.com/in/example-person-3": {
        "emails": [
          "[email protected]",
          "[email protected]"
        ],
        "personal_emails": [
          "[email protected]"
        ],
        "work_emails": [
          "[email protected]"
        ]
      }
    }
  }
}

HTTP Request

POST https://api.contactout.com/v2/people/linkedin/batch

GET https://api.contactout.com/v2/people/linkedin/batch/{job_uuid}

Query Parameters

Parameter Type Description
callback_url String, optional A URL where the results will be posted once the enrichment operation is completed.
profiles Array, required, Max:1000 An array of LinkedIn profile URLs. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/

4. LinkedIn Profile from Email

Get LinkedIn profile url for a given email


curl "https://api.contactout.com/v1/people/[email protected]" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "email": "[email protected]",
    "linkedin": "https://www.linkedin.com/in/terry"
  }
}

Empty Results

{
  "status_code": 404,
  "message": "Not Found"
}

HTTP Request

GET https://api.contactout.com/v1/people/person?{email=}

Query Parameters

Parameter Type Description
email string, required Email Address

5a. Profile details from LinkedIn URL

Get profile details for a single linkedin profile URL. The input only accepts LinkedIn regular URLs, not Sales Navigator or Talent / Recruiter LinkedIn products.


curl "  https://api.contactout.com/v1/linkedin/enrich?profile=https://www.linkedin.com/in/example-person" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

  {
  "status_code": 200,
  "profile": {
    "url": "https://www.linkedin.com/in/example-person",
    "email": [
      "[email protected]",
      "[email protected]"
    ],
    "work_email": [
      "[email protected]"
    ],
    "personal_email": [
      "[email protected]"
    ],
    "phone": [
      "+1234567891"
    ],
    "github":[
      "github_name"
    ],
    "twitter": [
      "twitter_username"
    ],
    "fullName": "Example Person",
    "headline": "Manager, Business Operations & Marketing at OBM",
    "industry": "Broadcast Media",
    "company": {
      "name": "OBM",
      "url": "https://www.linkedin.com/company/obm",
      "website": "http://obm.in",
      "headquarter": "HQ"
    },
    "location": "Bermuda",
        "summary": "An experienced professional with over 19 years in Marketing (digital, print, radio, television), Communications, Content Creation, Copy Writing, Website Maintenance, Social Media Exploitation, Relationship Building, Business Development, Business Operations, Training and Leadership.\\n",
    "experience": [
      {
        "end": "Present",
        "start": 2018,
        "title": "Manager, Business Operations & Marketing",
        "description": "Established in 1936, OBMI is a global master planning, architecture and design firm, with a rich history of shaping the architectural landscape of Bermuda. Within the firm, I support the OBMI Bermuda office on a multi-faceted level. My commitment to relationship building & client management, together with my passion and proficiency in marketing & communications, allows me to be an integral member of the team. Currently, my mandates include:Marketing•\tLead all marketing initiatives for the OBMI Bermuda office•\tCreation all print and digital ads for the local market•\tCreate, design and execute the quarterly newsletter•\tCopy & creative of OBMI Bermuda articles for local and international publication•\tManage Google My Business content•\tOversee see all aspects of the OBMI Bermuda website•\tCapture and analyze various metrics to identify areas of enhancement•\tExplore industry trends, best practices and innovative marketing solutions for potential adoptionBusiness Operations•\tProject management •\tClient relationship management•\tVendor & consultant management•\tOffice administration•\tPrimary point of contact for Bermuda office•\tCollaborate with corporate office in Miami on marketing & company-wide initiatives/roll-outs",
        "organization": [
          {
            "name": "OBM International",
            "profile_url": "https://www.linkedin.com/company/obm-international"
          }
        ]
      }
    ],
    "education": [
      {
        "end": "2004",
        "name": "George Brown College",
        "major": "Journalism",
        "start": "2002",
        "degrees": [
          "Journalism"
        ],
        "profile_url": "http://www.linkedin.com/edu/george-brown-college-19978"
      }
    ],
    "skills": [
      "Digital Marketing",
      "Content Creation",
      "Business Development",
      "Project Management",
      "Client Relationship Management"
    ]
  }
}

Empty Results

{
  "status_code": 200,
  "profile": []
}

HTTP Request

GET https://api.contactout.com/v1/linkedin/enrich?{profile=}

Query Parameters

Parameter Type Description
profile string, URL encoded, required The fully formed URL of the LinkedIn profile. URL must begin with http and must contain linkedin.com/in/ or linkedin.com/pub/

5b. Profile details from email address

Get profile details for a single email address. The match rate is typically higher with a personal email address as they change less frequently.


curl "https://api.contactout.com/v1/email/[email protected]" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "profile": {
    "email": "[email protected]",
    "workEmail": "[email protected]",
    "workEmailStatus":  "Verified | Unverified",
    "fullName": "Bobbi Singh",
    "headline": "Manager, Business Operations & Marketing at OBM International",
    "industry": "Broadcast Media",
    "linkedinUrl": "https://www.linkedin.com/in/bobbisingh",
    "confidenceLevel": "",
    "altMatches": [],
    "phone": " +61.438347437",
    "twitter": "",
    "github": "",
    "company": {
      "name": "OBM International",
      "url": "https://www.linkedin.com/company/obm-international",
      "website": "http://obm.international",
      "headquarter": "HQ",
      "locations": [
        {
          "line1": "Address Line 1",
          "line2": "Address Line 2",
          "city": "City",
          "state": "State",
          "country": "US",
          "postalCode": "12345",
          "description": "Headquarters"
        }
      ]
    },
    "location": "Bermuda",
    "summary": "An experienced professional with over 19 years in Marketing (digital, print, radio, television), Communications, Content Creation, Copy Writing, Website Maintenance, Social Media Exploitation, Relationship Building, Business Development, Business Operations, Training and Leadership.\\n",
    "experience": [
      {
        "end": "Present",
        "start": 2018,
        "title": "Manager, Business Operations & Marketing",
        "description": "Established in 1936, OBMI is a global master planning, architecture and design firm, with a rich history of shaping the architectural landscape of Bermuda. Within the firm, I support the OBMI Bermuda office on a multi-faceted level. My commitment to relationship building & client management, together with my passion and proficiency in marketing & communications, allows me to be an integral member of the team. Currently, my mandates include:Marketing•\tLead all marketing initiatives for the OBMI Bermuda office•\tCreation all print and digital ads for the local market•\tCreate, design and execute the quarterly newsletter•\tCopy & creative of OBMI Bermuda articles for local and international publication•\tManage Google My Business content•\tOversee see all aspects of the OBMI Bermuda website•\tCapture and analyze various metrics to identify areas of enhancement•\tExplore industry trends, best practices and innovative marketing solutions for potential adoptionBusiness Operations•\tProject management •\tClient relationship management•\tVendor & consultant management•\tOffice administration•\tPrimary point of contact for Bermuda office•\tCollaborate with corporate office in Miami on marketing & company-wide initiatives/roll-outs",
        "organization": [
          {
            "name": "OBM International",
            "profile_url": "https://www.linkedin.com/company/obm-international"
          }
        ]
      }
    ],
    "education": [
      {
        "end": "2004",
        "name": "George Brown College",
        "major": "Journalism",
        "start": "2002",
        "degrees": [
          "Journalism"
        ],
        "profile_url": "http://www.linkedin.com/edu/george-brown-college-19978"
      }
    ],
    "skills": [
      "Digital Marketing",
      "Content Creation",
      "Business Development",
      "Project Management",
      "Client Relationship Management"
    ]
  }
}

Empty Results

{
  "status_code": 404,
  "message": "Not Found"
}

HTTP Request

GET https://api.contactout.com/v1/email/enrich?{email=}

Query Parameters

Parameter Type Description
email string, required Email Address
include string, optional Data to be returned. Currently support work_email

6. Company information from domains

Get company information based on given input domains.


curl "https://api.contactout.com/v1/domain/enrich" \
--header 'Content-Type: application/json' \
--header 'Authorization: basic' \
--header "token: <YOUR_API_TOKEN>"
--data '{
    "domains": [
        "test.com"
    ]
}'

The above command returns JSON structured like this:

{
  "status_code": 200,
  "companies": {
    "contactout.com": {
      "li_vanity": "https://www.linkedin.com/company/test",
      "name": "Test",
      "domain": "test.com",
      "description": "This company specializes in innovative software solutions to streamline business operations and enhance productivity.",
      "website": "http://test.com",
      "logo_url": "https://images.contactout.com/companies/328ffa89a83a83042329f8181b7fbfaf",
      "type": "Privately Held",
      "headquarter": "San Francisco, US",
      "country": "United States",
      "size": 89,
      "founded_at": 2015,
      "locations": [
        {
          "city": "San Francisco",
          "country": "US",
          "isPrimary": true
        }
      ],
      "industry": "Computer Software",
      "specialties": [],
      "technologies_used": [
        "laravel",
        "microsoft",
        "lever",
        "ahrefs",
        "vidyard",
        "entelo",
        "help desk",
        "salesforce",
        "reuse",
        "to go",
        "unicorn",
        "facebook",
        "sales navigator",
        "linkedin",
        "for business",
        "asx",
        "convey",
        "salesloft",
        "roadmap",
        "pipedrive",
        "tasker",
        "elasticsearch",
        "bitly",
        "trajectory",
        "crm",
        "data management"
      ],
      "revenue": "$5.4M"
    }
  }
}

Empty Results

{
  "status_code": 200,
  "companies": []
}

HTTP Request

POST https://api.contactout.com/v1/domain/enrich

Query Parameters

Parameter Type Description
domains array, required, max:30 An array of domain names. Each domain should be in a valid format, for ex: example.com

7. SearchAPI

Get profiles matching the search criteria.

curl "https://api.contactout.com/v1/people/search" \
--header 'Content-Type: application/json' \
--header 'Authorization: basic' \
--header "token: <YOUR_API_TOKEN>"
--data '
  {
    "page": 1,
    "name": "John Smith",
    "job_title": [
      "Vice President",
      "VP Of Product"
    ],
    "exclude_job_titles": [
      "Sales"
    ],
    "current_titles_only": false,
    "include_related_job_titles": false,
    "skills": [
      "Network Security",
      "Networking"
    ],
    "location": [
      "Sydney, Australia"
    ],
    "company": [
      "ContactOut"
    ],
    "exclude_companies": [
      "Google"
    ],
    "domain":[
      "https://contactout.com"
    ],
    "industry: [
      "Computer Software",
      "Computer Networking"
    ],
    "company_size": [
      "1_10",
      "11_50"
    ],
    "years_of_experience": [
      "6_10",
      "10"
    ],
    "current_company_only": false,
    "data_types" : [
      "personal_email",
      "work_email",
      "phone"
    ],
    "reveal_info" : true
  }
'

The above command returns JSON structured like this:

{
  "status_code": 200,
  "metadata": {
    "page": 1,
    "page_size": 25,
    "total_results": 45
  },
  "profiles": {
    "https://linkedin.com/in/at-JqjtXv": {
      "li_vanity": "at-JqjtXv",
      "full_name": "Llewellyn Ruecker",
      "title": "Research Assistant",
      "headline": "Research Assistant at Legros, Smitham and Kessler",
      "company": {
        "name": "Legros, Smitham and Kessler",
        "website": "nemo",
        "headquarter": "535 Kuhic Gardens Apt. 044",
        "domain": "hamill.net",
        "company_size": 3
      },
      "location": "Faheybury",
      "industry": "Dr. Trenton Hane III",
      "experience": [
        "Research Assistant at Legros, Smitham and Kessler in 2014 - Present"
      ],
      "education": [
        "Doctorate degree at Vertapple University in 2017 - 2021"
      ],
      "skills": [
        "Research",
        "Algorithms",
        "Budget Planning",
        "Storage",
        "Requirements Gathering",
        "Coding"
      ],
      "updated_at": "2023-03-31 00:00:00",
      "contact_availability" : {
        "personal_email" : true,
        "work_email": true,
        "phone": true
      },
      "contact_info": {
        "emails": ["[email protected]", "[email protected]"],
        "personal_emails": ["[email protected]"],
        "work_emails": ["[email protected]"],
        "work_email_status": [
          "[email protected]" => "Verified | Unverified"
        ],
        "phones": ["+123456789"]
      }
    },
    "https://www.linkedin.com/in/maxime-IX12tS": {
      ....
    },
    .....
  }
}

No matching profiles

{
  "status_code": 200,
  "metadata": {
    "page": 1,
    "page_size": 25,
    "total_results": 0
  },
  "profiles": []
}

HTTP Request

POST https://api.contactout.com/v1/people/search

Query Parameters

Parameter Type Description
name text Name of the profile
job_title array, max:50 Accepts an array of job titles.
current_titles_only boolean, default: true Returns profiles matching the current job title. If specified false, the response will return profiles matching the current or past job title.
include_related_job_titles boolean, default: false Returns profiles with related job titles
skills array, max:50 Accepts an array of skills
location array, max:50 Accepts an array of locations
company array, max:50 Accepts an array of company names
current_company_only boolean, default: true Returns profiles matching the current company name
domain array, max:50 Accepts an array of domains
industry array, max:50 Accepts an array of industries. Accepted values list
company_size array Accepts an array of company size ranges. Accepted values list
years_of_experience array Accepts an array representing ranges of years of experience. Accepted values list
page integer Provides results for the given page
data_types array Returns profiles containing atleast one of the specified data types. It accepts an array of one more values from this list [personal_email, work_email, phone]
reveal_info boolean, default: false If set to true, contact_info will contain the emails and phone numbers of the profile and credits will be charged

Response

Response contains the meta information and the matching list of profiles. Each profile contains the information like title, headline, company details, experience, skills etc. It also lists the contact availability and contact information fields.

Parameter Type Description
contact_info array Returns an array containing contact information including email and phone numbers
contact_availability array Returns an array determining whether the profile contains the contact information

For customizing the output fields, use the below command with list of fields to be returned in the output:

curl "https://api.contactout.com/v1/people/search" \
--header 'Content-Type: application/json' \
--header 'Authorization: basic' \
--header "token: <YOUR_API_TOKEN>"
--data '
  {
    "page": 1,
    "name": "John Smith",
    "output_fields" : [
        "title",
        "li_vanity"
    ]
  }

The above command returns JSON structured like this:

{
  "status_code": 200,
  "metadata": {
    "page": 1,
    "page_size": 25,
    "total_results": 0
  },
  "profiles": {
    "https://linkedin.com/in/at-JqjtXv": {
      "li_vanity": "at-JqjtXv",
      "title": "Research Assistant",
      "contact_availability": {
        "personal_email": true,
        "work_email": true,
        "phone": true
      },
      "contact_info": {
        "emails": [],
        "personal_emails": [],
        "work_emails": [],
        "work_email_status": [],
        "phones": []
      }
    }
  }
}

8. Email Verifier

Verify the deliverability of an email address

curl "https://api.contactout.com/v1/email/[email protected]" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "data": {
    "status": "valid"
  }
}

HTTP Request

GET https://api.contactout.com/v1/email/verify?{email=}

Query Parameters

Parameter Type Description
email string, required Email Address

Response

status returns the status of the email address. Below are the possible values

9. Bulk Email Verifier

Verify the deliverability for a batch of 100 email addresses in bulk.

curl 'https://api.contactout.com/v1/email/verify/batch' \
--header 'Content-Type: application/json' \
--header 'Authorization: basic' \
--header "token: <YOUR_API_TOKEN>"
--data '{
    "callback_url": "https://api.contactout.com/enrich-test-callback-endpoint",
    "emails": [
        "[email protected]",
        "[email protected]",
        "[email protected]"
    ]
}'

The above command returns JSON structured like this:

{
  "status": "QUEUED",
  "job_id": "96d1c156-fc66-46ef-b053-be6dbb45cf1f"
}

To get the data

curl "https://api.contactout.com/v1/email/verify/batch/96d1c156-fc66-46ef-b053-be6dbb45cf1f" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "data": {
    "uuid": "992d8707-aa77-4499-92e4-cf3579c1d384",
    "status": "DONE",
    "result": {
      "[email protected]": "valid",
      "[email protected]": "accept_all",
      "[email protected]": "invalid"
    }
  }
}

HTTP Request

POST https://api.contactout.com/v1/email/verify/batch

GET https://api.contactout.com/v1/email/verify/batch/{job_uuid}

Query Parameters

Parameter Type Description
callback_url String, optional A URL where the results will be posted once the bulk email verification operation is completed.
emails Array, required, Max:1000 An array of email addresses

10. Decision Makers API

Get profiles of key decision makers within a specified company.

curl "https://api.contactout.com/v1/people/decision-makers?reveal_info=true&linkedin_url=https://linkedin.com/company/contactout" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

The above command returns JSON structured like this:

{
  "status_code": 200,
  "metadata": {
    "page": 1,
    "page_size": 25,
    "total_results": 8
  },
  "profiles": {
    "https://www.linkedin.com/in/rob-liu": {
      "full_name": "Rob Liu",
      "li_vanity": "robliu",
      "title": "CEO / Founder",
      "headline": "Founder at Contactout",
      "company": {
        "name": "ContactOut",
        "website": "http://contactout.com",
        "domain": "contactout.com",
        "email_domain": "contactout.com",
        "headquarter": "San Francisco, US",
        "size": 96,
        "revenue": 10000,
        "industry": "Computer Software"
      },
      "location": "Singapore",
      "industry": "Computer Software",
      "experience": [
        "CEO / Founder at ContactOut in 2015 - Present",
        "Limited Partner at Blackbird in 2020 - Present",
        "Limited Partner at Hustle Fund in 2021 - Present",
        "Visiting Partner at Iterative in 2023 - Present"
      ],
      "education": [
        "UNSW in 2008 - 2011"
      ],
      "skills": [
        "Start-ups",
        "Entrepreneurship",
        "Online Advertising",
        "Social Media Marketing",
        "Digital Marketing",
        "Web Analytics",
        "Digital Media",
        "Project Management",
        "Laravel",
        "Test Driven Development"
      ],
      "updated_at": "2024-04-03 17:15:14",
      "contact_availability": {
        "work_email": true,
        "personal_email": true,
        "phone": true
      },
      "contact_info": {
        "emails": [
          "[email protected]",
          "[email protected]"
        ],
        "personal_emails": [
          "[email protected]"
        ],
        "work_emails": [
          "[email protected]"
        ],
        "work_email_status": {
          "[email protected]": "Verified"
        },
        "phones": [
          "+123456789"
        ]
      }
    }
  }
}

HTTP Request

GET https://api.contactout.com/v1/people/decision-makers?{domain=&name=&linkedin_url=&reveal_info=}

Query Parameters

This endpoint requires at least one of the following three parameters: linkedin_url, domain, or name. The endpoint accepts any combination of these parameters to identify the most relevant company match.

Parameter Type Description
linkedin_url string, optional The fully formed URL of the company's LinkedIn profile. URL must begin with http and must contain linkedin.com/company/. Accepts both the numeric or string version of the URL, e.g. https://linkedin.com/company/contactout or https://linkedin.com/company/27090845
domain string, optional The domain name of the company's website, e.g. example.com
name string, optional The name of the company
reveal_info boolean, default: false If set to true, contact_info will contain the emails and phone numbers of the profile and credits will be charged

Response

Response contains the meta information and the matching list of profiles. Each profile contains the information like title, headline, company details, experience, skills etc. It also lists the contact availability and contact information fields.

Parameter Type Description
contact_info array Returns an array containing contact information including email and phone numbers
contact_availability array Returns an array determining whether the profile contains the contact information

11. API Usage Stats

Get API stats for the given period.

curl "https://api.contactout.com/v1/stats?period=2023-04" \
--header "authorization: basic" \
--header "token: <YOUR_API_TOKEN>"

Postpaid

Key Type Description
count integer Successful API requests that used an email credit
quota integer Allowed email credit usage before either overage is charged or key is disabled until next period
remaining integer Calculated as quota - count
over_quota integer Overages on email credit usage(only applicable to some users)
phone_count integer Successful API requests that used a phone credit
phone_quota integer Allowed phone credit usage before either overage is charged or key is disabled until next period
phone_remaining integer Calculated as phone_quota - phone_count
phone_over_quota integer Overages on phone credit usage (only applicable to some users)
{
  "status_code": 200,
  "metadata": {
    "page": 1,
    "page_size": 25,
    "total_results": 10
  },
  "profiles": {
    "https://linkedin.com/in/at-JqjtXv": {
      "li_vanity": "at-JqjtXv",
      "full_name": "Llewellyn Ruecker",
      "title": "Research Assistant",
      "headline": "Research Assistant at Legros, Smitham and Kessler",
      "company": {
        "name": "Legros, Smitham and Kessler",
        "website": "nemo",
        "headquarter": "535 Kuhic Gardens Apt. 044",
        "domain": "hamill.net",
        "company_size": 3
      },
      "location": "Faheybury",
      "industry": "Dr. Trenton Hane III",
      "experience": [
        "Research Assistant at Legros, Smitham and Kessler in 2014 - Present"
      ],
      "education": [
        "Doctorate degree at Vertapple University in 2017 - 2021"
      ],
      "skills": [
        "Research",
        "Algorithms",
        "Budget Planning",
        "Storage",
        "Requirements Gathering",
        "Coding"
      ],
      "updated_at": "2023-03-31 00:00:00",
      "contact_availability" : {
        "personal_email" : true,
        "work_email": true,
        "phone": true
      },
      "contact_info": {
        "emails": ["[email protected]", "[email protected]"],
        "personal_emails": ["[email protected]"],
        "work_emails": ["[email protected]"],
        "work_email_status": [
          "[email protected]" => "Verified | Unverified"
        ],
        "phones": ["+123456789"]
      }
    },
    "https://www.linkedin.com/in/maxime-IX12tS": {
      ....
    },
    .....
  }
}

Prepaid

Key Type Description
count integer Successful API requests that used an email credit
quota integer Prepaid Email credits remaining
phone_count integer Successful API requests that used a phone credit
phone_quota integer Prepaid Phone credits remaining
{
  "status_code": 200,
  "period": {
    "start": "2023-04-01",
    "end": "2023-04-31"
  },
  "usage": {
    "count": 100,
    "quota": 200,
    "phone_count": 500,
    "phone_quota": 1000
  }
}

HTTP Request

GET https://api.contactout.com/v1/stats?period=2023-04

Query Parameters

Parameter Type Description
period string, YYYY-MM format, defaults to current month Accepts month in YYYY-MM format, which returns the stats of the given month

Errors

ContactOut APIs returns the following error codes:

Error Code Message
400 Bad credentials or invalid headers
401 Bad request or invalid input
403 You're out of credits, please email your sales manager