# Get account details Source: https://docs.amplemarket.com/api-reference/account-info get /account-info Get account details # Log call Source: https://docs.amplemarket.com/api-reference/calls/create-calls post /calls Log call # List dispositions Source: https://docs.amplemarket.com/api-reference/calls/get-call-dispositions get /calls/dispositions List dispositions # Single company enrichment Source: https://docs.amplemarket.com/api-reference/companies-enrichment/single-company-enrichment get /companies/find Single company enrichment # Retrieve contact Source: https://docs.amplemarket.com/api-reference/contacts/get-contact get /contacts/{id} Retrieve contact # Retrieve contact by email Source: https://docs.amplemarket.com/api-reference/contacts/get-contact-by-email get /contacts/email/{email} Retrieve contact by email # Retrieve contacts Source: https://docs.amplemarket.com/api-reference/contacts/get-contacts get /contacts Retrieve contacts ```bash cURL curl --request GET \ --url https://api.amplemarket.com/contacts?ids[]={id} \ --header 'Authorization: Bearer ' ``` ```python Python import requests url = "https://api.amplemarket.com/contacts" params = { "ids[]": [{id}] } headers = {"Authorization": "Bearer "} response = requests.request("GET", url, headers=headers, params=params) print(response.text) ``` ```js JavaScript const params = new URLSearchParams(); params.append('ids[]', '{id}'); const options = { method: 'GET', headers: { Authorization: 'Bearer ' } }; fetch(`https://api.amplemarket.com/contacts?${params.toString()}`, options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err)); ``` ```php PHP "https://api.amplemarket.com/contacts?ids[]={id}", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go Go package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://api.amplemarket.com/contacts?ids[]={id}" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```java Java HttpResponse response = Unirest.get("https://api.amplemarket.com/contacts?ids[]={id}") .header("Authorization", "Bearer ") .asString(); ``` # Cancel batch of email validations Source: https://docs.amplemarket.com/api-reference/email-validation/cancel-batch-of-email-validations patch /email-validations/{id} Cancel batch of email validations # Retrieve email validation results Source: https://docs.amplemarket.com/api-reference/email-validation/retrieve-email-validation-results get /email-validations/{id} Retrieve email validation results # Start batch of email validations Source: https://docs.amplemarket.com/api-reference/email-validation/start-batch-of-email-validations post /email-validations Start batch of email validations For each email that goes through the validation process will consume 1 email credit from your account # Errors and Compatibility Source: https://docs.amplemarket.com/api-reference/errors How to navigate the API responses. # Handling Errors Amplemarket uses convention HTTP response codes to indicate the success or failure of an API request. Some errors that could be handled programmatically include an [error code](#error-codes) that briefly describes the reported error. When this happens, you can find details within the response under the field `_errors`. ## Error Object An error object MAY have the following members, and MUST contain at least on of: * `id` (string) - a unique identifier for this particular occurrence of the problem * `status` (string) - the HTTP status code applicable to this problem * `code` (string) - an application-specific [error code](#error-codes) * `title` (string) - human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization * `detail` (string) - a human-readable explanation specific to this occurrence of the problem, and can be localized * `source` (object) - an object containing references to the primary source of the error which **SHOULD** include one of the following members or be omitted: * `pointer`: a JSON Pointer [RFC6901](https://tools.ietf.org/html/rfc6901) to the value in the request document that caused the error (e.g. `"/data"` for a primary data object, or `"/data/attributes/title"` for a specific attribute). This **MUST** point to a value in the request document that exists; if it doesn’t, then client **SHOULD** simply ignore the pointer. * `parameter`: a string indicating which URI query parameter caused the error. * `header`: a string indicating the name of a single request header which caused the error. Example: ```js { "_errors":[ { "status":"400", "code": "unsupported_value", "title": "Unsupported Value", "detail": "Number of emails exceeds 100000 limit" "source": { "pointer": "/emails" } } ] } ``` ## Error Codes The following error codes may be returned by the API: | code | title | Description | | -------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | internal\_server\_error | Internal Server Error | An unexpected error occurred | | insufficient\_credits | Insufficient Credits | The account doesn’t have enough credits to continue the operation | | person\_not\_found | Person Not Found | A matching person was not found in our database | | unavailable\_for\_legal\_reasons | Unavailable For Legal Reasons | A matching person was found in our database, but has been removed due to privacy reasons | | unsupported\_value | Unsupported Value | Request has a field containing a value unsupported by the operation; more details within the corresponding [error object](#error-object) | | missing\_field | Missing Field | Request is missing a mandatory field; more details within the corresponding [error object](#error-object) | | unauthorized | Unauthorized | The API credentials used are either invalid, or the user is not authorized to perform the operation | # Compatibility When receiving data from Amplemarket please take into consideration that adding fields to the JSON output is considered a backwards-compatible change and it may happen without prior warning or through explicit versioning. It is recommended to future proof your code so that it disregards all JSON fields you don't actually use. # Create email exclusions Source: https://docs.amplemarket.com/api-reference/exclusion-lists/create-excluded-emails post /excluded-emails Create email exclusions # Create domain exclusions Source: https://docs.amplemarket.com/api-reference/exclusion-lists/create-excluded_domains post /excluded-domains Create domain exclusions # Delete email exclusions Source: https://docs.amplemarket.com/api-reference/exclusion-lists/delete-excluded-emails delete /excluded-emails Delete email exclusions # Delete domain exclusions Source: https://docs.amplemarket.com/api-reference/exclusion-lists/delete-excluded_domains delete /excluded-domains Delete domain exclusions # List excluded domains Source: https://docs.amplemarket.com/api-reference/exclusion-lists/get-excluded-domains get /excluded-domains List excluded domains # List excluded emails Source: https://docs.amplemarket.com/api-reference/exclusion-lists/get-excluded-emails get /excluded-emails List excluded emails # Introduction Source: https://docs.amplemarket.com/api-reference/introduction How to use the Amplemarket API. The Amplemarket API is a [REST-based](http://en.wikipedia.org/wiki/Representational_State_Transfer) API that returns JSON-encoded responses and complies with the HTTP standard regarding response codes, authentication and verbs. Production API access is provided via `https://api.amplemarket.com` base URL. The media type used is `application/json` # Authentication You will be provided with an API Key that can then be used to authenticate against the Amplemarket API. ### Authorization Header The Amplemarket API uses API Keys to authenticate requests. You can view and manage your API keys from the Dashboard as explained in the [getting started section](/guides/quickstart). All API requests must be made over [HTTPS](http://en.wikipedia.org/wiki/HTTP_Secure) to keep your data secure. Calls made over plain HTTP will be redirected to HTTPS. API requests without authentication will also fail. Please do not share your secret API keys in publicly accessible locations such as Github repos, client-side code, etc. To make an authenticated request, specify the bearer token within the `Authorization` HTTP header: ```js GET /email-validations/1 Authorization: Bearer {{api-key}} ``` ```js curl /email-validations/1 \ -H "Authorization: Bearer {{api-key}} ``` # Limits ## Rate Limits The Amplemarket API uses rate limiting at the request level in order to maximize stability and ensure quality of service to all our API consumers. By default, each consumer is allowed **500 requests per minute** across all API endpoints, except the ones listed below. Users who send many requests in quick succession might see error responses that show up as status code `429 Too Many Requests`. If you need these limits increased, please [contact support](mailto:support@amplemarket.com). ### Endpoint specific limits | Endpoint | Limit | | -------------- | ---------- | | /people/search | 300/minute | | /people/find | 350/minute | ## Usage Limits Selected operations that run in the background also have limits associated with them, according to the following table: | Operation | Limit | | --------------------- | ------------ | | Max Email Validations | 100k/request | | Email Validations | 15000/hour | ## Costs Endpoints that incur credit consumption have the amount specified alongside selected endpoints in the API reference. In the eventuality the account runs out of credits, the API will return an [error](errors#error-object) with the [error code](errors#error-codes) `insufficient_credits`. # Create Lead List Source: https://docs.amplemarket.com/api-reference/lead-list/create-lead-list post /lead-lists Create Lead List # List Lead Lists Source: https://docs.amplemarket.com/api-reference/lead-list/get-lead-lists get /lead-lists List Lead Lists # Retrieve Lead List Source: https://docs.amplemarket.com/api-reference/lead-list/retrieve-lead-list get /lead-lists/{id} Retrieve Lead List # Links and Pagination Source: https://docs.amplemarket.com/api-reference/pagination How to navigate the API responses. # Links Amplemarket provides a RESTful API including the concept of hyperlinking in order to facilitate user’s navigating the API without necessarily having to build URLs. For this responses MAY include `_links` member in order to facilitate navigation, inspired by the [HAL media type](https://stateless.co/hal_specification.html). The `_links` member is an object whose members correspond to a name that represents the link relationship. All links are relative, and thus require appending on top of a Base URL that should be configurable. E.g. a `GET` request could be performed on a “self” link: `GET {{base_url}}{{response._links.self.href}}` ## Link Object A link object is composed of the following fields: * `href` (string) - A relative URL that represents a hyperlink to another related object Example: ```js { "_links": { "self": { "href": "/email-validations/1" } } } ``` # Pagination Certain endpoints that return large number of results will require pagination in order to transverse and visualize all the data. The approach that was adopted is Cursor-based pagination (aka keyset pagination) with the following query parameters: `page[size]`, `page[before]`, and `page[after]` As the cursor may change based on the results being returned (e.g. for Email Validation it’s based on the email, while for Lead Lists it’s based on the ID of the lead list’s entry) it’s **highly recommended** to follow the links `next` or `prev` within the response (e.g. `response._links.next.href`). Notes: * The `next` and `previous` links will only appear when there are items available. * The results that will appear will be exclusive of the values provided in the `page[before]` and `page[after]` query parameters. Example: ```json "_links": { "self": { "href": "/lead-lists/81f63c2e-edbd-4c1a-9168-542ede3ce98f" }, "prev": { "href": "/lead-lists/1?page[size]=100&page[before]=81f63c2e-edbd-4c1a-9168-542ede3ce98a" }, "next": { "href": "/lead-lists/1?page[size]=100&page[after]=81f63c2e-edbd-4c1a-9168-542ede3ce98a" } } ``` ## Searcher pagination Certain special endpoints such as [Search people](/api-reference/searcher/search-people) take a different pagination approach, where the the pagination is done through the POST request's body using the `page` and `page_size` fields. For these cases the response will include a `_pagination` object: * `page` (integer) - The current page number * `page_size` (integer) - The number of entries per page * `total_pages` (integer) - The total number of pages in the search results * `total` (integer) - The total number of entries in the search results Example: ```js "_pagination": { "page": 1, "page_size": 30, "total_pages": 100, "total": 3000 } ``` # Single person enrichment Source: https://docs.amplemarket.com/api-reference/people-enrichment/single-person-enrichment get /people/find Single person enrichment Credit consumption: * 0.5 email credits when a person is found, charged at most once per 24 hours * 1 email credit when an email is revealed, only charged once * 1 phone credit when a phone number is revealed, only charged once # Review phone number Source: https://docs.amplemarket.com/api-reference/phone-numbers/review-phone-number post /phone_numbers/{id}/review Review phone number # Search people Source: https://docs.amplemarket.com/api-reference/searcher/search-people post /people/search Search people # Add leads Source: https://docs.amplemarket.com/api-reference/sequences/add-leads post /sequences/{id}/leads Add leads # List Sequences Source: https://docs.amplemarket.com/api-reference/sequences/get-sequences get /sequences List Sequences # Supported departments Source: https://docs.amplemarket.com/api-reference/supported-departments These are the supported departments for the Amplemarket API, which can be used for example in the [Search people](/api-reference/searcher/search-people) endpoint: * Senior Leadership * Consulting * Design * Education * Engineering & Technical * Finance * Human Resources * Information Technology * Legal * Marketing * Medical & Health * Operations * Product * Revenue # Supported industries Source: https://docs.amplemarket.com/api-reference/supported-industries These are the supported industries for the Amplemarket API, which can be used for example in the [Search people](/api-reference/searcher/search-people) endpoint: * Abrasives and Nonmetallic Minerals Manufacturing * Accessible Architecture and Design * Accessible Hardware Manufacturing * Accommodation and Food Services * Accounting * Administration of Justice * Administrative and Support Services * Advertising Services * Agricultural Chemical Manufacturing * Agriculture, Construction, Mining Machinery Manufacturing * Air, Water, and Waste Program Management * Airlines and Aviation * Alternative Dispute Resolution * Alternative Fuel Vehicle Manufacturing * Alternative Medicine * Ambulance Services * Amusement Parks and Arcades * Animal Feed Manufacturing * Animation and Post-production * Apparel Manufacturing * Appliances, Electrical, and Electronics Manufacturing * Architectural and Structural Metal Manufacturing * Architecture and Planning * Armed Forces * Artificial Rubber and Synthetic Fiber Manufacturing * Artists and Writers * Audio and Video Equipment Manufacturing * Automation Machinery Manufacturing * Aviation and Aerospace Component Manufacturing * Baked Goods Manufacturing * Banking * Bars, Taverns, and Nightclubs * Bed-and-Breakfasts, Hostels, Homestays * Beverage Manufacturing * Biomass Electric Power Generation * Biotechnology Research * Blockchain Services * Blogs * Boilers, Tanks, and Shipping Container Manufacturing * Book Publishing * Book and Periodical Publishing * Breweries * Broadcast Media Production and Distribution * Building Construction * Building Equipment Contractors * Building Finishing Contractors * Building Structure and Exterior Contractors * Business Consulting and Services * Business Content * Business Intelligence Platforms * Cable and Satellite Programming * Capital Markets * Caterers * Chemical Manufacturing * Chemical Raw Materials Manufacturing * Child Day Care Services * Chiropractors * Circuses and Magic Shows * Civic and Social Organizations * Civil Engineering * Claims Adjusting, Actuarial Services * Clay and Refractory Products Manufacturing * Climate Data and Analytics * Climate Technology Product Manufacturing * Coal Mining * Collection Agencies * Commercial and Industrial Equipment Rental * Commercial and Industrial Machinery Maintenance * Commercial and Service Industry Machinery Manufacturing * Communications Equipment Manufacturing * Community Development and Urban Planning * Community Services * Computer Games * Computer Hardware Manufacturing * Computer Networking Products * Computer and Network Security * Computers and Electronics Manufacturing * Conservation Programs * Construction * Construction Hardware Manufacturing * Consumer Goods Rental * Consumer Services * Correctional Institutions * Cosmetology and Barber Schools * Courts of Law * Credit Intermediation * Cutlery and Handtool Manufacturing * Dairy Product Manufacturing * Dance Companies * Data Infrastructure and Analytics * Data Security Software Products * Defense and Space Manufacturing * Dentists * Design Services * Desktop Computing Software Products * Digital Accessibility Services * Distilleries * E-Learning Providers * Economic Programs * Education * Education Administration Programs * Electric Lighting Equipment Manufacturing * Electric Power Generation * Electric Power Transmission, Control, and Distribution * Electrical Equipment Manufacturing * Electronic and Precision Equipment Maintenance * Embedded Software Products * Emergency and Relief Services * Engineering Services * Engines and Power Transmission Equipment Manufacturing * Entertainment Providers * Environmental Quality Programs * Environmental Services * Equipment Rental Services * Events Services * Executive Offices * Executive Search Services * Fabricated Metal Products * Facilities Services * Family Planning Centers * Farming * Farming, Ranching, Forestry * Fashion Accessories Manufacturing * Financial Services * Fine Arts Schools * Fire Protection * Fisheries * Flight Training * Food and Beverage Manufacturing * Food and Beverage Retail * Food and Beverage Services * Footwear Manufacturing * Footwear and Leather Goods Repair * Forestry and Logging * Fossil Fuel Electric Power Generation * Freight and Package Transportation * Fruit and Vegetable Preserves Manufacturing * Fuel Cell Manufacturing * Fundraising * Funds and Trusts * Furniture and Home Furnishings Manufacturing * Gambling Facilities and Casinos * Geothermal Electric Power Generation * Glass Product Manufacturing * Glass, Ceramics and Concrete Manufacturing * Golf Courses and Country Clubs * Government Administration * Government Relations Services * Graphic Design * Ground Passenger Transportation * HVAC and Refrigeration Equipment Manufacturing * Health and Human Services * Higher Education * Highway, Street, and Bridge Construction * Historical Sites * Holding Companies * Home Health Care Services * Horticulture * Hospitality * Hospitals * Hospitals and Health Care * Hotels and Motels * Household Appliance Manufacturing * Household Services * Household and Institutional Furniture Manufacturing * Housing Programs * Housing and Community Development * Human Resources Services * Hydroelectric Power Generation * IT Services and IT Consulting * IT System Custom Software Development * IT System Data Services * IT System Design Services * IT System Installation and Disposal * IT System Operations and Maintenance * IT System Testing and Evaluation * IT System Training and Support * Individual and Family Services * Industrial Machinery Manufacturing * Industry Associations * Information Services * Insurance * Insurance Agencies and Brokerages * Insurance Carriers * Insurance and Employee Benefit Funds * Interior Design * International Affairs * International Trade and Development * Internet Marketplace Platforms * Internet News * Internet Publishing * Interurban and Rural Bus Services * Investment Advice * Investment Banking * Investment Management * Janitorial Services * Landscaping Services * Language Schools * Laundry and Drycleaning Services * Law Enforcement * Law Practice * Leasing Non-residential Real Estate * Leasing Residential Real Estate * Leather Product Manufacturing * Legal Services * Legislative Offices * Libraries * Lime and Gypsum Products Manufacturing * Loan Brokers * Machinery Manufacturing * Magnetic and Optical Media Manufacturing * Manufacturing * Maritime Transportation * Market Research * Marketing Services * Mattress and Blinds Manufacturing * Measuring and Control Instrument Manufacturing * Meat Products Manufacturing * Media Production * Media and Telecommunications * Medical Equipment Manufacturing * Medical Practices * Medical and Diagnostic Laboratories * Mental Health Care * Metal Ore Mining * Metal Treatments * Metal Valve, Ball, and Roller Manufacturing * Metalworking Machinery Manufacturing * Military and International Affairs * Mining * Mobile Computing Software Products * Mobile Food Services * Mobile Gaming Apps * Motor Vehicle Manufacturing * Motor Vehicle Parts Manufacturing * Movies and Sound Recording * Movies, Videos, and Sound * Museums * Museums, Historical Sites, and Zoos * Musicians * Nanotechnology Research * Natural Gas Distribution * Natural Gas Extraction * Newspaper Publishing * Non-profit Organizations * Nonmetallic Mineral Mining * Nonresidential Building Construction * Nuclear Electric Power Generation * Nursing Homes and Residential Care Facilities * Office Administration * Office Furniture and Fixtures Manufacturing * Oil Extraction * Oil and Coal Product Manufacturing * Oil and Gas * Oil, Gas, and Mining * Online Audio and Video Media * Online and Mail Order Retail * Operations Consulting * Optometrists * Outpatient Care Centers * Outsourcing and Offshoring Consulting * Packaging and Containers Manufacturing * Paint, Coating, and Adhesive Manufacturing * Paper and Forest Product Manufacturing * Pension Funds * Performing Arts * Performing Arts and Spectator Sports * Periodical Publishing * Personal Care Product Manufacturing * Personal Care Services * Personal and Laundry Services * Pet Services * Pharmaceutical Manufacturing * Philanthropic Fundraising Services * Photography * Physical, Occupational and Speech Therapists * Physicians * Pipeline Transportation * Plastics Manufacturing * Plastics and Rubber Product Manufacturing * Political Organizations * Postal Services * Primary Metal Manufacturing * Primary and Secondary Education * Printing Services * Professional Organizations * Professional Services * Professional Training and Coaching * Public Assistance Programs * Public Health * Public Policy Offices * Public Relations and Communications Services * Public Safety * Racetracks * Radio and Television Broadcasting * Rail Transportation * Railroad Equipment Manufacturing * Ranching * Ranching and Fisheries * Real Estate * Real Estate Agents and Brokers * Real Estate and Equipment Rental Services * Recreational Facilities * Regenerative Design * Religious Institutions * Renewable Energy Equipment Manufacturing * Renewable Energy Power Generation * Renewable Energy Semiconductor Manufacturing * Repair and Maintenance * Research Services * Residential Building Construction * Restaurants * Retail * Retail Apparel and Fashion * Retail Appliances, Electrical, and Electronic Equipment * Retail Art Dealers * Retail Art Supplies * Retail Books and Printed News * Retail Building Materials and Garden Equipment * Retail Florists * Retail Furniture and Home Furnishings * Retail Gasoline * Retail Groceries * Retail Health and Personal Care Products * Retail Luxury Goods and Jewelry * Retail Motor Vehicles * Retail Musical Instruments * Retail Office Equipment * Retail Office Supplies and Gifts * Retail Pharmacies * Retail Recyclable Materials & Used Merchandise * Reupholstery and Furniture Repair * Robot Manufacturing * Robotics Engineering * Rubber Products Manufacturing * Satellite Telecommunications * Savings Institutions * School and Employee Bus Services * Seafood Product Manufacturing * Secretarial Schools * Securities and Commodity Exchanges * Security Guards and Patrol Services * Security Systems Services * Security and Investigations * Semiconductor Manufacturing * Services for Renewable Energy * Services for the Elderly and Disabled * Sheet Music Publishing * Shipbuilding * Shuttles and Special Needs Transportation Services * Sightseeing Transportation * Skiing Facilities * Smart Meter Manufacturing * Soap and Cleaning Product Manufacturing * Social Networking Platforms * Software Development * Solar Electric Power Generation * Sound Recording * Space Research and Technology * Specialty Trade Contractors * Spectator Sports * Sporting Goods Manufacturing * Sports Teams and Clubs * Sports and Recreation Instruction * Spring and Wire Product Manufacturing * Staffing and Recruiting * Steam and Air-Conditioning Supply * Strategic Management Services * Subdivision of Land * Sugar and Confectionery Product Manufacturing * Surveying and Mapping Services * Taxi and Limousine Services * Technical and Vocational Training * Technology, Information and Internet * Technology, Information and Media * Telecommunications * Telecommunications Carriers * Telephone Call Centers * Temporary Help Services * Textile Manufacturing * Theater Companies * Think Tanks * Tobacco Manufacturing * Translation and Localization * Transportation Equipment Manufacturing * Transportation Programs * Transportation, Logistics, Supply Chain and Storage * Travel Arrangements * Truck Transportation * Trusts and Estates * Turned Products and Fastener Manufacturing * Urban Transit Services * Utilities * Utilities Administration * Utility System Construction * Vehicle Repair and Maintenance * Venture Capital and Private Equity Principals * Veterinary Services * Vocational Rehabilitation Services * Warehousing and Storage * Waste Collection * Waste Treatment and Disposal * Water Supply and Irrigation Systems * Water, Waste, Steam, and Air Conditioning Services * Wellness and Fitness Services * Wholesale * Wholesale Alcoholic Beverages * Wholesale Apparel and Sewing Supplies * Wholesale Appliances, Electrical, and Electronics * Wholesale Building Materials * Wholesale Chemical and Allied Products * Wholesale Computer Equipment * Wholesale Drugs and Sundries * Wholesale Food and Beverage * Wholesale Footwear * Wholesale Furniture and Home Furnishings * Wholesale Hardware, Plumbing, Heating Equipment * Wholesale Import and Export * Wholesale Luxury Goods and Jewelry * Wholesale Machinery * Wholesale Metals and Minerals * Wholesale Motor Vehicles and Parts * Wholesale Paper Products * Wholesale Petroleum and Petroleum Products * Wholesale Photography Equipment and Supplies * Wholesale Raw Farm Products * Wholesale Recyclable Materials * Wind Electric Power Generation * Wineries * Wireless Services * Women's Handbag Manufacturing * Wood Product Manufacturing * Writing and Editing * Zoos and Botanical Gardens # Supported job functions Source: https://docs.amplemarket.com/api-reference/supported-job-functions These are the supported job functions for the Amplemarket API, which can be used for example in the [Search people](/api-reference/searcher/search-people) endpoint: * Account Management * Accounting * Acquisitions * Advertising * Anesthesiology * Application Development * Artificial Intelligence / Machine Learning * Bioengineering & Biometrics * Brand Management * Business Development * Business Intelligence * Business Service Management / ITSM * Call Center * Channel Sales * Chemical Engineering * Chiropractics * Clinical Systems * Cloud / Mobility * Collaboration & Web App * Compensation & Benefits * Compliance * Construction * Consultant * Content Marketing * Contracts * Corporate Secretary * Corporate Strategy * Culture, Diversity & Inclusion * Customer Experience * Customer Marketing * Customer Retention & Development * Customer Service / Support * Customer Success * Data Center * Data Science * Data Warehouse * Database Administration * Demand Generation * Dentistry * Dermatology * DevOps * Digital Marketing * Digital Transformation * Doctors / Physicians * eCommerce Development * eCommerce Marketing * eDiscovery * Emerging Technology / Innovation * Employee & Labor Relations * Engineering & Technical * Enterprise Architecture * Enterprise Resource Planning * Epidemiology * Ethics * Event Marketing * Executive * Facilities Management * Field / Outside Sales * Field Marketing * Finance * Finance Executive * Financial Planning & Analysis * Financial Reporting * Financial Risk * Financial Strategy * Financial Systems * First Responder * Founder * Governance * Governmental Affairs & Regulatory Law * Graphic / Visual / Brand Design * Growth * Health & Safety * Help Desk / Desktop Services * HR / Financial / ERP Systems * HR Business Partner * Human Resource Information System * Human Resources * Human Resources Executive * Industrial Engineering * Infectious Disease * Information Security * Information Technology * Information Technology Executive * Infrastructure * Inside Sales * Intellectual Property & Patent * Internal Audit & Control * Investor Relations * IT Asset Management * IT Audit / IT Compliance * IT Operations * IT Procurement * IT Strategy * IT Training * Labor & Employment * Lawyer / Attorney * Lead Generation * Learning & Development * Leasing * Legal * Legal Counsel * Legal Executive * Legal Operations * Litigation * Logistics * Marketing * Marketing Analytics / Insights * Marketing Communications * Marketing Executive * Marketing Operations * Mechanic * Medical & Health Executive * Medical Administration * Medical Education & Training * Medical Research * Medicine * Mergers & Acquisitions * Mobile Development * Networking * Neurology * Nursing * Nutrition & Dietetics * Obstetrics / Gynecology * Office Operations * Oncology * Operations * Operations Executive * Ophthalmology * Optometry * Organizational Development * Orthopedics * Partnerships * Pathology * Pediatrics * People Operations * Pharmacy * Physical Security * Physical Therapy * Principal * Privacy * Product Development * Product Management * Product Marketing * Product or UI/UX Design * Professor * Project & Program Management * Project Development * Project Management * Psychiatry * Psychology * Public Health * Public Relations * Quality Assurance * Quality Management * Radiology * Real Estate * Real Estate Finance * Recruiting & Talent Acquisition * Research & Development * Retail / Store Systems * Revenue Operations * Safety * Sales * Sales Enablement * Sales Engineering * Sales Executive * Sales Operations * Sales Training * Scrum Master / Agile Coach * Search Engine Optimization / Pay Per Click * Servers * Shared Services * Social Media Marketing * Social Work * Software Development * Sourcing / Procurement * Storage & Disaster Recovery * Store Operations * Strategic Communications * Superintendent * Supply Chain * Support / Technical Services * Talent Management * Tax * Teacher * Technical Marketing * Technician * Technology Operations * Telecommunications * Test / Quality Assurance * Treasury * UI / UX * Virtualization * Web Development * Workforce Management # Complete task Source: https://docs.amplemarket.com/api-reference/tasks/complete-task post /tasks/{id}/complete Complete task # List tasks Source: https://docs.amplemarket.com/api-reference/tasks/get-tasks get /tasks List tasks # List task statuses Source: https://docs.amplemarket.com/api-reference/tasks/get-tasks-statuses get /tasks/statuses List task statuses # List task types Source: https://docs.amplemarket.com/api-reference/tasks/get-tasks-types get /tasks/types List task types # Skip task Source: https://docs.amplemarket.com/api-reference/tasks/skip-task post /tasks/{id}/skip Skip task # List users Source: https://docs.amplemarket.com/api-reference/users/get-users get /users List users # Companies Search Source: https://docs.amplemarket.com/guides/companies-search Learn how to find the right company. Matching against a Company in our database allows the retrieval of data associated with said Company. ## Company Object Here is the description of the Company object: | Field | Type | Description | | ------------------------------- | ----------------- | -------------------------------------------- | | `id` | string | Amplemarket ID of the Company | | `name` | string | Name of the Company | | `linkedin_url` | string | LinkedIn URL of the Company | | `website` | string | Website of the Company | | `overview` | string | Description of the Company | | `logo_url` | string | Logo URL of the Company | | `founded_year` | integer | Year the Company was founded | | `traffic_rank` | integer | Traffic rank of the Company | | `sic_codes` | array of integers | SIC codes of the Company | | `type` | string | Type of the Company (Public Company, etc.) | | `total_funding` | integer | Total funding of the Company | | `latest_funding_stage` | string | Latest funding stage of the Company | | `latest_funding_date` | string | Latest funding date of the Company | | `keywords` | array of strings | Keywords of the Company | | `estimated_number_of_employees` | integer | Estimated number of employees at the Company | | `followers` | integer | Number of followers on LinkedIn | | `size` | string | Self reported size of the Company | | `industry` | string | Industry of the Company | | `location` | string | Location of the Company | | `location_details` | object | Location details of the Company | | `is_b2b` | boolean | `true` if the Company has a B2B component | | `is_b2c` | boolean | `true` if the Company has a B2C component | | `technologies` | array of strings | Technologies detected for the Company | | `department_headcount` | object | Headcount by department | | `job_function_headcount` | object | Headcount by job function | | `estimated_revenue` | string | The estimated annual revenue of the company | | `revenue` | integer | The annual revenue of the company | ## Companies Endpoints ### Finding a Company **Request** The following endpoint can be used to find a Company on Amplemarket: ```js GET /companies/find?linkedin_url=https://www.linkedin.com/company/company-1 HTTP/1.1 GET /companies/find?domain=example.com HTTP/1.1 ``` **Response** The response contains the Linkedin URL of the Company along with the other relevant data. ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "eec03d70-58aa-46e8-9d08-815a7072b687", "object": "company", "name": "A Company", "website": "https://company.com", "linkedin_url": "https://www.linkedin.com/company/company-1", "keywords": [ "sales", "ai sales", "sales engagement" ], "estimated_number_of_employees": 500, "size": "201-500 employees", "industry": "Software Development", "location": "San Francisco, California, US", "is_b2b": true, "is_b2c": false, "technologies": ["Salesforce"] } ``` # Email Validation Source: https://docs.amplemarket.com/guides/email-verification Learn how to validate email addresses. Email validation plays a critical role in increasing the deliverability rate of email messages sent to potential leads. It allows the user to determine the validity of the email, whether it's valid or not, or whether there's some risk associated in having the email bounce. The email validation flow will usually follow these steps: 1. `POST /email-validations/` with a list of emails that will be validated 2. In the response, follow the URL provided in `response._links.self.href` 3. Continue polling the endpoint while respecting the `Retry-After` HTTP Header 4. When validation completes, the results are in `response.results` 5. If the results are larger than the [default limit](/api-reference/introduction#usage-limits), then follow the URL provided in `response._links.next.href` ## Email Validation Object | Field | Type | Description | | --------- | ---------------------------------- | ------------------------------------------------------------------------------------------------ | | `id` | string | The ID of the email validation operation | | `status` | string | The status of the email validation operation: | | | | `queued`: The validation operation hasn’t started yet | | | | `processing`: The validation operation is in-progress | | | | `completed`: The validation operation terminated successfully | | | | `canceled`: The validation operation terminated due to being canceled | | | | `error`: The validation operation terminated with an error; see `_errors` for more details | | `results` | array of email\_validation\_result | The validation results for the emails provided; default number of results range from 1 up to 100 | | `_links` | array of links | Contains useful links related to this resource | | `_errors` | array of errors | Contains the errors if the operation fails | ## Email Validation Result Object | Field | Type | Description | | ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | | `email` | string | The email address that went through the validation process | | `catch_all` | boolean | Whether the domain has been configured to catch all emails or not | | `result` | string | The result of the validation: | | | | `deliverable`: The email provider has confirmed that the email address exists and can receive emails | | | | `risky`: The email address may result in a bounce or low engagement, usually if it’s a catch-all, mailbox is full, or disposable | | | | `unknown`: Unable to receive a response from the email provider to determine the status of the email address | | | | `undeliverable`: The email address is either incorrect or does not exist | ## Email Validation Endpoints ### Start Email Validation **Request** A batch of emails can be sent to the email validation service, up to 100,000 entries: ```js POST /email-validations HTTP/1.1 Content-Type: application/json { "emails": [ {"email":"foo@example.com"}, {"email":"bar+baz@example.com"} ] } ``` ```bash curl -X POST https://api.amplemarket.com/email-validations \ -H "Authorization: Bearer {{API Key}}" \ -H "Content-Type: application/json" \ -d '{"emails": [{"email":"foo@example.com"}, {"email":"bar+baz@example.com"}]}' ``` **Response** This will return a `202 Accepted` indicating that the email validation will soon be started: ```js HTTP/1.1 202 Accepted Content-Type: application/json Location: /email-validations/1 { "id": "1", "object": "email_validation", "status": "queued", "results": [], "_links": { "self": { "href": "/email-validations/1" } } } ``` **HTTP Headers** * `Location`: `GET` points back to the email validations object that was created **Links** * `self` - `GET` points back to the email validations object that was created ### Email Validation Polling **Request** The Email Validation object can be polled in order to receive results: ```js GET /email-validations/{{id}} HTTP/1.1 Content-Type: application/json ``` ```bash curl https://api.amplemarket.com/email-validations/{{id}} \ -H "Authorization: Bearer {{API Key}}" ``` **Response** Will return a `200` OK while the operation hasn't yet terminated. ```js HTTP/1.1 200 OK Content-Type: application/json Retry-After: 60 { "id": "1", "object": "email_validation", "status": "processing", "results": [], "_links": { "self": { "href": "/email-validations/1" } } } ``` **HTTP Headers** * `Retry-After` - indicates how long to wait until performing another `GET` request **Links** * `self` - `GET` points back to the same object * `next` - `GET` points to the next page of entries, when available * `prev` - `GET` points to the previous page of entries, when available ### Retrieving Email Validation Results **Request** When the email validation operation has terminated, the results can be retrieved using the same url: ```js GET /email-validations/1 HTTP/1.1 Content-Type: application/json ``` ```bash curl https://api.amplemarket.com/email-validations/{{id}} \ -H "Authorization: Bearer {{API Key}}" ``` **Response** The response will display up to 100 results: ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "1", "object": "email_validation", "status": "completed", "results": [ { "object": "email_validation_result", "email": "foo@example.com", "result": "deliverable", "catch_all": false }, { "object": "email_validation_result", "email": "bar@example.com", "result": "deliverable", "catch_all": false } ], "_links": { "self": { "href": "/email-validations/1" }, "next": { "href": "/email-validations/1?page[size]=100&page[after]=foo@example.com" }, "prev": { "href": "/email-validations/1?page[size]=100&page[before]=foo@example.com" } } } ``` If the results contains more than 100 entries, then pagination is required transverse them all and can be done using the links such as:`response._links.next.href` (e.g. `GET /email-validations/1?page[size]=100&page[after]=foo@example.com`). **Links** * `self` - `GET` points back to the same object * `next` - `GET` points to the next page of entries, when available * `prev` - `GET` points to the previous page of entries, when available ### Cancelling a running Email Validation operation **Request** You can cancel an email validation operation that's still running by sending a `PATCH` request: ```js PATCH /email-validations/1 HTTP/1.1 Content-Type: application/json { "status": "canceled" } ``` ```bash curl -X PATCH https://api.amplemarket.com/email-validations \ -H "Authorization: Bearer {{API Key}}" \ -H "Content-Type: application/json" \ -d '{"status": "canceled"}' ``` Only `"status"` is supported in this request, any other field will be ignored. **Response** The response will display any available results up until the point the email validation operation was canceled. ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "1", "object": "email_validation", "status": "canceled", "results": [ { "object": "email_validation_result", "email": "foo@example.com", "result": "deliverable", "catch_all": false } ], "_links": { "self": { "href": "/email-validations/1" }, "next": { "href": "/email-validations/1?page[size]=100&page[after]=foo@example.com" }, "prev": { "href": "/email-validations/1?page[size]=100&page[before]=foo@example.com" } } } ``` If the results contains more than 100 entries, then pagination is required transverse them all and can be done using the links such as:`response._links.next.href` (e.g. `GET /email-validations/1?page[size]=100&page[after]=foo@example.com`). **Links** * `self` - `GET` points back to the same object * `next` - `GET` points to the next page of entries, when available * `prev` - `GET` points to the previous page of entries, when available # Exclusion Lists Source: https://docs.amplemarket.com/guides/exclusion-lists Learn how to manage domain and email exclusions. Exclusion lists are used to manage domains and emails that should not be sequenced. ## Exclusion Lists Overview The exclusion list API endpoints allow you to: 1. **List excluded domains and emails** 2. **Create new exclusions** 3. **Delete existing exclusions** ## Exclusion Domain Object | Field | Type | Description | | ----------------- | ------ | ----------------------------------------------------------------------- | | `domain` | string | The domain name that is excluded (e.g., `domain.com`). | | `source` | string | The source or reason for exclusion (e.g., `amplemarket`, `salesforce`). | | `date_added` | string | The date the domain was added to the exclusion list (ISO 8601). | | `excluded_reason` | string | The reason for the exclusion (e.g., `api`, \`manual). | | `_links` | object | Links to related resources. | ## Exclusion Email Object | Field | Type | Description | | ----------------- | ------ | ----------------------------------------------------------------------- | | `email` | string | The email address that is excluded (e.g., `someone@domain.com`). | | `source` | string | The source or reason for exclusion (e.g., `amplemarket`, `salesforce`). | | `date_added` | string | The date the email was added to the exclusion list (ISO 8601). | | `excluded_reason` | string | The reason for the exclusion (e.g., `api`, `manual`). | | `_links` | object | Links to related resources. | ## Exclusion Domains Endpoints ### List Excluded Domains **Request** Retrieve a list of excluded domains: ```js GET /excluded-domains HTTP/1.1 Authorization: Bearer {{API Key}} ``` ```bash curl -X GET https://api.amplemarket.com/excluded-domains \ -H "Authorization: Bearer {{API Key}}" ``` **Response** This will return a `200 OK` with a list of excluded domains: ```js HTTP/1.1 200 OK Content-Type: application/json { "excluded_domains": [ { "domain": "domain.com", "source": "amplemarket", "date_added": "2024-08-28T22:33:16.145Z", "excluded_reason": "api" } ], "_links": { "self": { "href": "/excluded-domains?size=2000" } } } ``` ### Create Domain Exclusions **Request** Add new domains to the exclusion list. ```js POST /excluded-domains HTTP/1.1 Authorization: Bearer API_KEY Content-Type: application/json { "excluded_domains": [ {"domain": "new_domain.com"} ] } ``` ```bash curl -X POST https://api.amplemarket.com/excluded-domains \ -H "Authorization: Bearer {{API Key}}" \ -H "Content-Type: application/json" \ -d '{"excluded_domains": [{"domain":"new_domain.com"}]}' ``` **Response** This will return a `200 OK` with the status of each domain: ```js HTTP/1.1 200 OK Content-Type: application/json { "existing_domain.com": "duplicated", "new_domain.com": "success" } ``` ### Delete Domain Exclusions **Request** Remove domains from the exclusion list. ```js DELETE /excluded-domains HTTP/1.1 Authorization: Bearer API_KEY Content-Type: application/json { "excluded_domains": [ {"domain": "existing_domain.com"} ] } ``` ```bash curl -X DELETE https://api.amplemarket.com/excluded-domains \ -H "Authorization: Bearer {{API Key}}" \ -H "Content-Type: application/json" \ -d '{"excluded_domains": [{"domain":"existing_domain.com"}]}' ``` **Response** This will return a `200 OK` with the status of each domain: ```js HTTP/1.1 200 OK Content-Type: application/json { "existing_domain.com": "success", "existing_domain_from_crm.com": "unsupported", "unexistent_domain.com": "not_found" } ``` ## Exclusion Emails Endpoints ### List Excluded Emails **Request** Retrieve a list of excluded emails: ```js GET /excluded-emails HTTP/1.1 Authorization: Bearer {{API Key}} ``` ```bash curl -X GET https://api.amplemarket.com/excluded-emails \ -H "Authorization: Bearer {{API Key}}" ``` **Response** This will return a `200 OK` with a list of excluded emails: ```js HTTP/1.1 200 OK Content-Type: application/json { "excluded_emails": [ { "email": "someone@domain.com", "source": "amplemarket", "date_added": "2024-08-28T22:33:16.145Z", "excluded_reason": "api" } ], "_links": { "self": { "href": "/excluded-emails?size=2000" } } } ``` ### Create Email Exclusions **Request** Add new emails to the exclusion list. ```js POST /excluded-emails HTTP/1.1 Authorization: Bearer API_KEY Content-Type: application/json { "excluded_emails": [ {"email": "someone@domain.com"} ] } ``` ```bash curl -X POST https://api.amplemarket.com/excluded-emails \ -H "Authorization: Bearer {{API Key}}" \ -H "Content-Type: application/json" \ -d '{"excluded_emails": [{"email":"someone@domain.com"}]}' ``` **Response** This will return a `200 OK` with the status of each email: ```js HTTP/1.1 200 OK Content-Type: application/json { "existing@domain.com": "duplicated", "new@domain.com": "success" } ``` ### Delete Email Exclusions **Request** Remove emails from the exclusion list. ```js DELETE /excluded-emails HTTP/1.1 Authorization: Bearer API_KEY Content-Type: application/json { "excluded_emails": [ {"email": "someone@domain.com"} ] } ``` ```bash curl -X DELETE https://api.amplemarket.com/excluded-emails \ -H "Authorization: Bearer {{API Key}}" \ -H "Content-Type: application/json" \ -d '{"excluded_emails": [{"email":"someone@domain.com"}]}' ``` **Response** This will return a `200 OK` with the status of each email: ```js HTTP/1.1 200 OK Content-Type: application/json { "existing@domain.com": "success", "existing_from_crm@domain.com": "unsupported", "unexistent@domain.com": "not_found" } ``` # Lead Lists Source: https://docs.amplemarket.com/guides/lead-lists Learn how to use lead lists. Lead Lists can be used to upload a set of leads which will then undergo additional enrichment and processing in order to reveal as much information on each lead as possible, leveraging Amplemarket's vast database. Usually the flow for this is: 1. `POST /lead-lists/` with a list of LinkedIn URLs that will be processed and revealed 2. In the response, follow the URL provided in `response._links.self.href` 3. Continue polling the endpoint while respecting the `Retry-After` HTTP Header 4. When validation completes, the results are in `response.results` 5. If the results are larger than the default [limit](/api-reference/introduction#usage-limits), then follow the URL provided in `response._links.next.href` ## Lead List Object | Field | Type | Description | | --------- | -------------------------- | ------------------------------------------------------------------------------------ | | `id` | string | The ID of the Lead List | | `name` | string | The name of the Lead List | | `status` | string | The status of the Lead List: | | | | `queued`: The validation operation hasn’t started yet | | | | `processing`: The validation operation is in-progress | | | | `completed`: The validation operation terminated successfully | | | | `canceled`: The validation operation terminated due to being canceled | | `shared` | boolean | If the Lead List is shared across the Account | | `visible` | boolean | If the Lead List is visible in the Dashboard | | `owner` | string | The email of the owner of the Lead List | | `options` | object | Options for the Lead List: | | | | `reveal_phone_numbers`: boolean - If phone numbers should be revealed for the leads | | | | `validate_email`: boolean - If the emails of the leads should be validated | | | | `enrich`: boolean - If the leads should be enriched | | `type` | string | The type of the Lead List: | | | | `linkedin`: The inputs were LinkedIn URLs | | | | `email`: The inputs were emails | | | | `title_and_company`: The inputs were titles and company names | | | | `name_and_company`: The inputs were person names and company names | | | | `salesforce`: The inputs were Salesforce Object IDs | | | | `hubspot`: The inputs were Hubspot Object IDs | | | | `person`: The inputs were Person IDs | | | | `adaptive`: The input CSV file's columns were used dynamically during enrichment | | `leads` | array of lead\_list\_entry | The entries of the Lead List; the default number of results that appear is up to 100 | | `_links` | array of links | Contains useful links related to this resource | ## Lead List Entry Object | Field | Type | Description | | ------------------------- | ---------------------------------------- | -------------------------------------------------- | | `id` | string | The ID of the entry | | `email` | string | The email address of the entry | | `person_id` | string | The ID of the Person matched with this entry | | `linkedin_url` | string | The LinkedIn URL of the entry | | `first_name` | string | The first name of the entry | | `last_name` | string | The last name of the entry | | `company_name` | string | The company name of the entry | | `company_domain` | string | The company domain of the entry | | `industry` | string | The industry of the entry | | `title` | string | The title of the entry | | `email_validation_result` | object of type email\_validation\_result | The result of the email validation if one occurred | | `data` | object | Other arbitrary fields may be included here | ## Lead List Endpoints ### Creating a new Lead List **Request** A list of leads can be supplied to create a new Lead List with a subset of settings that are included within the [`lead_list` object](#lead-list-object): * `owner` (string, mandatory) - email of the owner of the lead list which must be an existing user; if a revoked users is provided, the fallback will be the oldest admin's account instead * `shared` (boolean, mandatory) - indicates whether this list should be shared across the account or just for the specific user * `type` (string, mandatory) - currently only `linkedin`, `email`, and `titles_and_company` are supported * `leads` ([array of `lead_list_entry`](#lead-list-entry-object), mandatory) where: * For the `linkedin` type, each entry only requires the field `linkedin_url` * For the `email` type, each entry only requires the field `email` * For the `titles_and_company` type, each entry only requires the fields `title` and `company_name` (or `company_domain`) * `name` (string, optional) - defaults to an automatically generated one when not supplied * `visible` (boolean, optional) - defaults to true * `options` (object) * `reveal_phone_numbers` (boolean) - if phone numbers should be revealed for the leads * `validate_email` (boolean) - if the emails of the leads should be validated * Can only be disabled for lists of type `email` * `enrich` (boolean) - if the leads should be enriched * Can only be disabled for lists of type `email` ```js POST /lead-lists HTTP/1.1 Content-Type: application/json { "name": "Example", "shared": true, "visible": true, "owner": "user@example.com", "type": "linkedin", "leads": [ { "linkedin_url": "..." }, { "linkedin_url": "..." } ] } ``` **Response** This will return a `202 Accepted` indicating that the email validation will soon be started: ```js HTTP/1.1 202 Accepted Content-Type: application/json Location: /lead-lists/81f63c2e-edbd-4c1a-9168-542ede3ce98f { "id": "81f63c2e-edbd-4c1a-9168-542ede3ce98f", "object": "lead_list", "name": "Example", "status": "queued", "shared": true, "visible": false, "owner": "user@example.com", "type": "linkedin", "options": { "reveal_phone_numbers": false, "validate_email": true, "enrich": true, }, "leads": [], "_links": { "self": { "href": "/lead-lists/81f63c2e-edbd-4c1a-9168-542ede3ce98f" } } } ``` **HTTP Headers** * `Location`: `GET` points back to the object that was created **Links** * `self` - `GET` points back to the object that was created ### Polling a Lead List **Request** The Lead List object can be polled in order to receive results: ```js GET /lead-lists/{{id}} HTTP/1.1 Content-Type: application/json ``` **Response** Will return a `200 OK` while the operation hasn't yet terminated. ```js HTTP/1.1 200 OK Content-Type: application/json Retry-After: 60 { "id": "81f63c2e-edbd-4c1a-9168-542ede3ce98f", "object": "lead_list", "name": "Example", "status": "processing", "shared": true, "visible": false, "owner": "user@example.com", "type": "linkedin", "options": { "reveal_phone_numbers": false, "validate_email": true, "enrich": true, }, "leads": [], "_links": { "self": { "href": "/lead-lists/81f63c2e-edbd-4c1a-9168-542ede3ce98f" } } } ``` **HTTP Headers** * `Retry-After` - indicates how long to wait until performing another `GET` request **Links** * `self` - `GET` points back to the same object ### Retrieving a Lead List **Request** When the processing of the lead list has terminated, the results can be retrieved using the same url: ```js GET /lead-lists/{{id}} HTTP/1.1 Content-Type: application/json ``` **Response** The response will display up to 100 results and will contain as much information as available about each lead, however there may be many fields that don't have all information. ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "81f63c2e-edbd-4c1a-9168-542ede3ce98f", "object": "lead_list", "name": "Example", "status": "completed", "shared": true, "visible": false, "owner": "user@example.com", "type": "linkedin", "options": { "reveal_phone_numbers": false, "validate_email": true, "enrich": true, }, "leads": [ { "id": "81f63c2e-edbd-4c1a-9168-542ede3ce98a", "object": "lead_list_entry", "email": "lead@company1.com", "person_id": "576ed970-a4c4-43a1-bdf0-154d1d9049ed", "linkedin_url": "https://www.linkedin.com/in/lead1/", "first_name": "Lead", "last_name": "One", "company_name": "Company 1", "company_domain": "company1.com", "industry": "Computer Software", "title": "CEO", "email_validation_result": { "object": "email_validation_result", "email": "lead@company1.com", "result": "deliverable", "catch_all": false }, "data": { // other data fields } }, { "id": "81f63c2e-edbd-4c1a-9168-542ede3ce98a", "object": "lead_list_entry", "email": "lead@company2.com", "person_id": "1dfe7176-5491-4e95-a20f-10ebac3c7c4b", "linkedin_url": "https://www.linkedin.com/in/jim-smith", "first_name": "Jim", "last_name": "Smith", "company_name": "Example, Inc", "company_domain": "example.com", "industry": "Computer Software", "title": "CTO", "email_validation_result": { "object": "email_validation_result", "email": "lead@company1.com", "result": "deliverable", "catch_all": false }, "data": { // other data fields } }, { "id": "6ba3394f-b0f2-44e0-86e0-f360a0a8dcec", "object": "lead_list_entry", "email": null, "person_id": null, "linkedin_url": "https://www.linkedin.com/in/nobody", "first_name": null, "last_name": null, "company_name": null, "company_domain": null, "industry": null, "title": null, "email_validation_result": null, "data": { // other data fields } } ], "_links": { "self": { "href": "/lead-lists/81f63c2e-edbd-4c1a-9168-542ede3ce98f" }, "prev": { "href": "/lead-lists/1?page[size]=100&page[before]=81f63c2e-edbd-4c1a-9168-542ede3ce98a" }, "next": { "href": "/lead-lists/1?page[size]=100&page[after]=81f63c2e-edbd-4c1a-9168-542ede3ce98a" } } } ``` If the list contains more than 100 entries, then pagination is required transverse them all and can be done using the links such as: `response._links.next.href` (e.g. `GET /lead-lists/81f63c2e-edbd-4c1a-9168-542ede3ce98f?page[size]=100&page[after]=81f63c2e-edbd-4c1a-9168-542ede3ce98a`). **Links** * `self` - `GET` points back to the same object * `next` - `GET` points to the next page of entries, when available * `prev` - `GET` points to the previous page of entries, when available ### List Lead Lists **Request** Retrieve a list of Lead Lists: ```js GET /lead-lists HTTP/1.1 Authorization: Bearer {{API Key}} ``` ```bash curl -X GET https://api.amplemarket.com/lead-lists \ -H "Authorization: Bearer {{API Key}}" ``` **Response** This will return a `200 OK` with a list of Lead Lists: ```js HTTP/1.1 200 OK Content-Type: application/json { "lead_lists": [ { "id": "01937248-a242-7be7-9666-ba15a35d223d", "name": "Sample list 1", "status": "queued", "shared": false, "visible": true, "owner": "foo-23@email.com", "type": "linkedin" } ], "_links": { "self": { "href": "/lead-lists?page[size]=20" } } } ``` # Outbound JSON Push Source: https://docs.amplemarket.com/guides/outbound-json-push Learn how to receive a notifications from Amplemarket when contacts reply. Outbound Workflows will allow you to get programmatically notified when a lead is contacted or when it replies. You can accomplish this by configuring a specified endpoint that Amplemarket will notify according to a specified message format. There are two ways to configure webhooks: * JSON Push Integration * JSON Push from Workflow ## Enable JSON Data Integration These are the steps to follow in your Amplemarket Account in order to enable the JSON Data Integration: 1. Login in to your Amplemarket Account 2. On the left sidebar go to Settings and click Integrations. 3. Click Connect button for JSON data under Other Integrations. 4. Use the toggles to select which in-sequence activities to push. 5. Select whether you want to push all new contacts or only contacts that replied 6. Specify the endpoint that will receive the messages and test it. 7. If everything went well, save changes and Amplemarket will start notifying you of events. ### Types of events On Amplemarket, the following activity will be pushed through a webhook: * Within a sequence * An email sent * Executed LinkedIn activities: visits, connections, messages, follows and like last posts * Phone calls made using Amplemarket’s dialer * Executed generic tasks * An email reply from a prospect in a sequence * A LinkedIn reply from a prospect in a sequence * An email sent within a reply sequence * An email received from a prospect within a reply sequence This is true for both automatic and manual activities in your sequences. To check webhook schemas for this source please check [our documentation](/webhooks/events) ## Enable JSON Push from Workflows These are the steps to follow in your Amplemarket Account in order to enable JSON Push from a Workflow: 1. Login in to your Amplemarket Account 2. On the left sidebar go to Workflows 3. Select which tags you wish to automated 4. Pick the Send JSON to endpoint action 5. Specify the endpoint that will receive the messages and test it. 6. If everything went well, save changes and enable the automation. ### Types of events On Amplemarket, the following classifications will be pushed through a webhook: * An interested reply * A not interested reply * A hard no response * An out of office notice * An ask to circle back later * Not the right person to engage * A forward to the right person To check webhook schemas for this source please check [our documentation](/webhooks/events/workflow) # People Search Source: https://docs.amplemarket.com/guides/people-search Learn how to find the right people. Matching against a Person in our database allows the retrieval of data associated with said Person. ## Person Object The Person object represents a b2b contact, typically associated with a company. Here is a description of the Person object: | Field | Type | Description | | ------------------ | -------------- | -------------------------------------- | | `id` | string | ID of the Person | | `linkedin_url` | string | LinkedIn URL of the Person | | `name` | string | Name of the Person | | `first_name` | string | First name of the Person | | `last_name` | string | Last name of the Person | | `title` | string | Title of the Person | | `headline` | string | Headline of the Person | | `logo_url` | string | Image URL of the Person | | `location` | string | Location of the Person | | `location_details` | object | Location details of the Person | | `company` | Company object | Company the Person currently works for | ## Company Object Here is the description of the Company object: | Field | Type | Description | | ------------------------------- | ----------------- | -------------------------------------------- | | `id` | string | Amplemarket ID of the Company | | `name` | string | Name of the Company | | `linkedin_url` | string | LinkedIn URL of the Company | | `website` | string | Website of the Company | | `overview` | string | Description of the Company | | `logo_url` | string | Logo URL of the Company | | `founded_year` | integer | Year the Company was founded | | `traffic_rank` | integer | Traffic rank of the Company | | `sic_codes` | array of integers | SIC codes of the Company | | `type` | string | Type of the Company (Public Company, etc.) | | `total_funding` | integer | Total funding of the Company | | `latest_funding_stage` | string | Latest funding stage of the Company | | `latest_funding_date` | string | Latest funding date of the Company | | `keywords` | array of strings | Keywords of the Company | | `estimated_number_of_employees` | integer | Estimated number of employees at the Company | | `followers` | integer | Number of followers on LinkedIn | | `size` | string | Self reported size of the Company | | `industry` | string | Industry of the Company | | `location` | string | Location of the Company | | `location_details` | object | Location details of the Company | | `is_b2b` | boolean | `true` if the Company has a B2B component | | `is_b2c` | boolean | `true` if the Company has a B2C component | | `technologies` | array of strings | Technologies detected for the Company | | `department_headcount` | object | Headcount by department | | `job_function_headcount` | object | Headcount by job function | | `estimated_revenue` | string | The estimated annual revenue of the company | | `revenue` | integer | The annual revenue of the company | ## People Endpoints ### Finding a Person **Request** The following endpoint can be used to find a Person on Amplemarket: ```js GET /people/find?linkedin_url=https://www.linkedin.com/in/person-1 HTTP/1.1 GET /people/find?email=person@example.com HTTP/1.1 GET /people/find?name=John%20Doe&title=CEO&company_name=Example HTTP/1.1 GET /people/find?name=John%20Doe&title=CEO&company_domain=example.com HTTP/1.1 ``` **Response** The response contains the Linkedin URL of the Person along with the other relevant data. ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "84d31ab0-bac0-46ea-9a8b-b8721126d3d6", "object": "person", "name": "Jonh Doe", "first_name": "Jonh", "last_name": "Doe", "linkedin_url": "https://www.linkedin.com/in/person-1", "title": "Founder and CEO", "headline": "CEO @ Company", "location": "San Francisco, California, United States", "company": { "id": "eec03d70-58aa-46e8-9d08-815a7072b687", "object": "company", "name": "A Company", "website": "https://company.com", "linkedin_url": "https://www.linkedin.com/company/company-1", "keywords": [ "sales", "ai sales", "sales engagement" ], "estimated_number_of_employees": 500, "size": "201-500 employees", "industry": "Software Development", "location": "San Francisco, California, US", "is_b2b": true, "is_b2c": false, "technologies": ["Salesforce"] } } ``` #### Revealing an email address ```js GET /people/find?linkedin_url=https://www.linkedin.com/in/person-1&reveal_email=true HTTP/1.1 ``` **Response** The response contains the Linkedin URL of the Person along with the other relevant data and the revealed email address (if successful). ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "84d31ab0-bac0-46ea-9a8b-b8721126d3d6", "object": "person", "name": "Jonh Doe", "first_name": "Jonh", "last_name": "Doe", "linkedin_url": "https://www.linkedin.com/in/person-1", "title": "Founder and CEO", "headline": "CEO @ Company", "location": "San Francisco, California, United States", "company": { "id": "eec03d70-58aa-46e8-9d08-815a7072b687", "object": "company", "name": "A Company", "website": "https://company.com", "linkedin_url": "https://www.linkedin.com/company/company-1", "keywords": [ "sales", "ai sales", "sales engagement" ], "estimated_number_of_employees": 500, "size": "201-500 employees", "industry": "Software Development", "location": "San Francisco, California, US", "is_b2b": true, "is_b2c": false, "technologies": ["Salesforce"] }, "email": "john.doe@company.com" } ``` **Response (Request Timeout)** It is possible for the request to time out when revealing an email address, in this case the response will look like this. ```js HTTP/1.1 408 Request Timeout Content-Type: application/json Retry-After: 60 { "object": "error", "_errors": [ { "code": "request_timeout", "title": "Request timeout" "detail": "We are processing your request, try again later." } ] } ``` In this case you are free to retry the request after the specified time in the `Retry-After` header. #### Revealing phone numbers ```js GET /people/find?linkedin_url=https://www.linkedin.com/in/person-1&reveal_phone_numbers=true HTTP/1.1 ``` **Response** The response contains the Linkedin URL of the Person along with the other relevant data and the revealed phone numbers (if successful). ```js HTTP/1.1 200 OK Content-Type: application/json { "id": "84d31ab0-bac0-46ea-9a8b-b8721126d3d6", "object": "person", "name": "Jonh Doe", "first_name": "Jonh", "last_name": "Doe", "linkedin_url": "https://www.linkedin.com/in/person-1", "title": "Founder and CEO", "headline": "CEO @ Company", "location": "San Francisco, California, United States", "company": { "id": "eec03d70-58aa-46e8-9d08-815a7072b687", "object": "company", "name": "A Company", "website": "https://company.com", "linkedin_url": "https://www.linkedin.com/company/company-1", "keywords": [ "sales", "ai sales", "sales engagement" ], "estimated_number_of_employees": 500, "size": "201-500 employees", "industry": "Software Development", "location": "San Francisco, California, US", "is_b2b": true, "is_b2c": false, "technologies": ["Salesforce"] }, "phone_numbers": [ { "object": "phone_number", "id": "84d31ab0-bac0-46ea-9a8b-b8721126d3d6", "number": "+1 123456789", "type": "mobile" } ] } ``` **Response (Request Timeout)** It is possible for the request to time out when revealing phone numbers, in this case the response will look like this. ```js HTTP/1.1 408 Request Timeout Content-Type: application/json Retry-After: 60 { "object": "error", "_errors": [ { "code": "request_timeout", "title": "Request timeout" "detail": "We are processing your request, try again later." } ] } ``` In this case you are free to retry the request after the specified time in the `Retry-After` header. ### Searching for multiple People The following endpoint can be used to search for multiple People on Amplemarket: ```js POST /people/search HTTP/1.1 Content-Type: application/json { "person_name": "Jonh Doe", "person_titles": ["CEO"], "person_locations": ["San Francisco, California, United States"], "company_names": ["A Company"], "page": 1, "page_size": 10 } ``` **Response** The response contains the Linkedin URL of the Person along with the other relevant data. ```js HTTP/1.1 200 OK Content-Type: application/json { "object": "person_search_result", "results": [ { "id": "84d31ab0-bac0-46ea-9a8b-b8721126d3d6", "object": "person", "name": "Jonh Doe", "first_name": "Jonh", "last_name": "Doe", "linkedin_url": "https://www.linkedin.com/in/person-1", "title": "Founder and CEO", "headline": "CEO @ Company", "location": "San Francisco, California, United States", "company": { "id": "eec03d70-58aa-46e8-9d08-815a7072b687", "object": "company", "name": "A Company", "website": "https://company.com", "linkedin_url": "https://www.linkedin.com/company/company-1", "keywords": [ "sales", "ai sales", "sales engagement" ], "estimated_number_of_employees": 500, "size": "201-500 employees", "industry": "Software Development", "location": "San Francisco, California, US", "is_b2b": true, "is_b2c": false, "technologies": ["Salesforce"] } } ], "_pagination": { "page": 1, "page_size": 1, "total_pages": 1, "total": 1 } } ``` # Getting Started Source: https://docs.amplemarket.com/guides/quickstart Getting access and starting using the API. The API is available from all Amplemarket accounts and getting started is as easy as following these steps: First, [sign in](https://app.amplemarket.com/login) or [request a demo](https://www.amplemarket.com/demo) to have an account. Go to the Amplemarket Dashboard, navigate to Settings > API to open the API Integrations page. Click the `+ New API Key` button and give a name to your api key. Copy the API Key and you're ready to start! ## API Playground You can copy your API Key into the Authorization header in our [playground](/api-reference/people-enrichment/single-person-enrichment) and start exploring the API. ## Postman Collection At any time you can jump from this documentation portal into Postman and run our collection. If you want, you can also [import the collection](https://api.postman.com/collections/20053380-5f813bad-f399-4542-a36a-b0900cd37d4d?access_key=PMAT-01HSA73CZM63C0KV0YAQYC4ACY) directly into Postman # Sequences Source: https://docs.amplemarket.com/guides/sequences Learn how to use sequences. Sequences can be used to engage with leads. They must be created by users via web app, while leads can also be programmatically added into existing sequences. Example flow: 1. Sequences are created by users in the web app 2. The API client lists the sequences via API applying the necessary filters 3. Collect the sequences from `response.sequences` 4. Iterate the endpoint through `response._links.next.href` while respecting the `Retry-After` HTTP Header 5. Add leads to the desired sequences ## Sequences Endpoints ### List Sequences #### Sequence Object | Field | Type | Description | | ----------------------- | -------------- | ------------------------------------------------------------------------------------ | | `id` | string | The ID of the Sequence | | `name` | string | The name of the Sequence | | `status` | string | The status of the Sequence: | | | | `active`: The sequence is live and can accept new leads | | | | `draft`: The sequence is not launched yet and cannot accept leads programmatically | | | | `archived`: The sequence is archived and cannot accept leads programmatically | | | | `archiving`: The sequence is being archived and cannot accept leads programmatically | | | | `paused`: The sequence is paused and can accept new leads | | | | `pausing`: The sequence is being paused and cannot accept leads programmatically | | | | `resuming`: The sequence is being resumed and cannot accept leads programmatically | | `created_at` | string | The creation date in ISO 8601 | | `updated_at` | string | The last update date in ISO 8601 | | `created_by_user_id` | string | The user id of the creator of the Sequence (refer to the `Users` API) | | `created_by_user_email` | string | The email of the creator of the Sequence | | `_links` | array of links | Contains useful links related to this resource | #### Request format Retrieve a list of Sequences: ```js GET /sequences HTTP/1.1 Authorization: Bearer {{API Key}} ``` ```bash curl -X GET https://api.amplemarket.com/sequences \ -H "Authorization: Bearer {{API Key}}" ``` Sequences can be filtered using * `name` (case insensitive search) * `status` * `created_by_user_id` * `created_by_user_email` #### Response This will return a `200 OK` with a list of Sequences: ```js HTTP/1.1 200 OK Content-Type: application/json { "sequences": [ { "id": "311d73f042157b352c724975970e4369dba30777", "name": "Sample sequence", "status": "active", "created_by_user_id": "edbec9eb3b3d8d7c1c24ab4dcac572802b14e5f1", "created_by_user_email": "foo-49@email.com", "created_at": "2025-01-07T10:16:01Z", "updated_at": "2025-01-07T10:16:01Z" }, { "id": "e6890fa2c0453fd2691c06170293131678deb47b", "name": "A sequence", "status": "active", "created_by_user_id": "edbec9eb3b3d8d7c1c24ab4dcac572802b14e5f1", "created_by_user_email": "foo-49@email.com", "created_at": "2025-01-07T10:16:01Z", "updated_at": "2025-01-07T10:16:01Z" } ], "_links": { "self": { "href": "/sequences?page[size]=20" }, "next": { "href": "/sequences?page[after]=e6890fa2c0453fd2691c06170293131678deb47b&page[size]=20" } } } ``` If the result set contains more entries than the page size, then pagination is required transverse them all and can be done using the links such as: `response._links.next.href` (e.g. `GET /sequences/81f63c2e-edbd-4c1a-9168-542ede3ce98f?page[size]=100&page[after]=81f63c2e-edbd-4c1a-9168-542ede3ce98a`). #### Links * `self` - `GET` points back to the same object * `next` - `GET` points to the next page of entries, when available * `prev` - `GET` points to the previous page of entries, when available ### Add leads to a Sequence This endpoint allows users to add one or more leads to an existing active sequence in Amplemarket. It supports flexible lead management with customizable distribution settings, real-time validations, and asynchronous processing for improved scalability. For specific API details, [please refer to the API specification](/api-reference/sequences/add-leads). This endpoint does not update leads already in sequence, it can only add new ones #### Choosing the sequence A sequence is identified by its `id`, which is used in the `POST` request: ``` POST https://api.amplemarket.com/sequences/cb4925debf37ccb6ae1244317697e0f/leads ``` To retrieve it, you have two options: 1. Use the "List Sequences" endpoint 2. Go to the Amplemarket Dashboard, navigate to Sequences, and choose your Sequence. * In the URL bar of your browser, you will find a URL that looks like this: `https://app.amplemarket.com/dashboard/sequences/cb4925debf37ccb6ae1244317697e0f` * In this case, the sequence `id` is `cb4925debf37ccb6ae1244317697e0f` #### Request format The request has two main properties: * `leads`: An array of objects, each of them representing a lead to be added to the sequence. Each lead object must include at least an `email` or `linkedin_url` field. These properties are used to check multiple conditions, including exclusion lists and whether they are already present in other sequences. Other supported properties: * `data`: holds other lead data fields, such as `first_name` and `company_domain` * `overrides`: used to bypass certain safety checks. It can be omitted completely or partially, and the default value is `false` for each of the following overrides: * `ignore_recently_contacted`: whether to override the recently contacted check. Note that the time range used for considering a given lead as "recently contacted" is an account-wide setting managed by your Amplemarket account administrator * `ignore_exclusion_list`: whether to override the exclusion list * `ignore_duplicate_leads_in_other_draft_sequences`: whether to bypass the check for leads with the same `email` or `linkedin_url` present in other draft sequences * `ignore_duplicate_leads_in_other_active_sequences`: whether to bypass the check for leads with the same `email` or `linkedin_url` present in other active or paused sequences * `settings`: an optional object storing lead distribution configurations affecting all leads: * `leads_distribution`: a string that can have 2 values: * `sequence_senders`: (default) the leads will be distributed across the mailboxes configured in the sequence settings * `custom_mailboxes`: the leads will be distributed across the mailboxes referred to by the `/settings/mailboxes` property, regardless of the sequence setting. * `mailboxes`: an array of email addresses, that must correspond to mailboxes connected to the Amplemarket account. If `/settings/leads_distribution` is `custom_mailboxes`, this property will be used to assign the leads to the respective users and mailboxes. Otherwise, this property is ignored. #### Request limits Each request can have up to **250 leads**, if you try to send more, the request will fail with an HTTP 400. Besides the `email` and `linkedin_url`, each lead can have up to **50 data fields** on the `data` object. Both the data field names and values must be of the type `String`, field names can be up to *255 characters* while values can be up to *512 characters*. The names of the data fields can only have lowercase letters, numbers or underscores (`_`), and must start with a letter. Some examples of rejected data field names: | Rejected | Accepted | Explanation | | ---------------- | ------------------- | ----------------------------------- | | `FirstName` | `first_name` | Only lowercase letters are accepted | | `first name` | `first_name` | Spaces are not accepted | | `3_letter_name` | `three_letter_name` | Must start with a letter | | `_special_field` | `special_field` | Must start with a letter | #### Request example ```json { "leads": [ { "email": "lead1@example.com", "data": { "first_name": "John", "company_name": "Apple" } }, { "email": "lead2@example.org", "data": { "first_name": "Jane", "company_name": "Salesforce" }, "overrides": { "ignore_exclusion_list": true } } ], "settings": { "leads_distribution": "custom_mailboxes", "mailboxes": ["my_sales_mailbox@example.com"] } } ``` #### Response format There are 3 potential outcomes: * The request is successful, and it returns the number of leads that were added and skipped due to safety checks. Example: ```json { "total": 2, "total_added_to_sequence": 1, "duplicate_emails": [], "duplicate_linkedin_urls": [], "in_exclusion_list_and_skipped": [{"email": "lead1@example.com"}], "recently_contacted_and_skipped": [], "already_in_sequence_and_skipped": [], "in_other_draft_sequences_and_skipped": [], "in_other_active_sequences_and_skipped": [] } ``` | Property name | Explanation | | --------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `total` | Total number of lead objects in the request | | `total_added_to_sequence` | Total number of leads added to the sequence | | `duplicate_emails` | List of email addresses that appeared duplicated in the request. Leads with duplicate emails will be skipped and not added to the sequence | | `duplicate_linkedin_urls` | List of LinkedIn URLs that appeared duplicated in the request. Leads with duplicate LinkedIn URLs will be skipped and not added to the sequence | | `in_exclusion_list_and_skipped` | List of lead objects (with just the `email` and `linkedin_url` fields) that were in the account exclusion list, and therefore not added to the sequence | | `recently_contacted_and_skipped` | List of lead objects (with just the `email` and `linkedin_url` fields) that were recently contacted by the account, and therefore not added to the sequence | | `already_in_sequence_and_skipped` | List of lead objects (with just the `email` and `linkedin_url` fields) that are already present in the sequence with the same contact fields, and therefore not added to the sequence | | `in_other_draft_sequences_and_skipped` | List of lead objects (with just the `email` and `linkedin_url` fields) that are present in other draft sequences of the account, and therefore skipped | | `in_other_active_sequences_and_skipped` | List of lead objects (with just the `email` and `linkedin_url` fields) that are present in other active sequences of the account, and therefore skipped | Checks corresponding to `in_exclusion_list_and_skipped`, `recently_contacted_and_skipped`, `in_other_draft_sequences_and_skipped`, and `in_other_active_sequences_and_skipped` can be bypased by using the [`overrides` property on the lead object](#request-format-2) * The request was malformed in itself. In that case, the response will have the HTTP Status code `400`, and the body will contain an indication of the error, [following the standard format](/api-reference/errors#error-object). * The request was correctly formatted, but due to other reasons the request cannot be completed. The response will have the HTTP Status code `422`, and a single property `validation_errors`, which can indicate one or more problems. Example ```json { "validation_errors": [ { "error_code": "missing_lead_field", "message": "Missing lead dynamic field 'it' on leads with indexes [1]" }, { "error_code": "total_leads_exceed_limit", "message": "Number of leads 1020 would exceed the per-sequence limit of 1000" } ] } ``` #### Error codes and their explanations All `error_code` values have an associated message giving more details about the specific cause of failure. Some of the errors include: | `error_code` | Description | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `"invalid_sequence_status"` | The sequence is in a status that does not allow adding new leads with this method. That typically is because the sequence is in the "Draft" or "Archived" states | | `"missing_ai_credits"` | Some of the sequence users do not have enough credits to support additional leads | | `"missing_feature_copywriter"` | Some of the sequence users do not have access to Duo features, and the sequence is using Duo Copywriter email stages or Duo Voice stages | | `"missing_feature_dialer"` | The sequence has a phone call stage, and some of the users do not have a Dialer configured | | `"missing_linkedin_account"` | The sequence has a stage that requires a LinkedIn account (such as Duo Copywriter or automatic LinkedIn stages), and not all sequence users have connected their LinkedIn account to Amplemarket | | `"missing_voice_clone"` | The sequence has a Duo Voice stage, but a sequence user does not have an usable voice clone configured | | `"missing_lead_field"` | The sequence requires a lead data field that was not provided in the request (such as an email address when there are email stages, or a data field used in the text) | | `"missing_sender_field"` | The sequence requires a sender data field that a sequence user has not filled in yet | | `"mailbox_unusable"` | A mailbox was selected to be used, but it cannot be used (e.g. due to disconnection or other errors) | | `"max_leads_threshold_reached"` | Adding all the leads would make the sequence go over the account-wide per-sequence lead limit | | `"other_validation_error"` | An unexpected validaton error has occurred | # Amplemarket API Source: https://docs.amplemarket.com/home Welcome to Amplemarket's API. At Amplemarket we are leveraging the most recent developments in machine learning to develop the next generation of sales tools and help companies grow at scale. Tip: Open search with `⌘K`, then start typing to find anything in our docs Learn more about what you can build with our API guides. [Get started...](/guides/quickstart) Double check parameters and play with our API live. [Check our API...](/api-reference/introduction) Set up outbound webhooks to receive real-time notifications [Go to Webhooks...](/webhooks/introduction) ### Quick Links *** Follow our guide to [get access to the API](/guides/quickstart) Call our [people endpoint](/guides/people-search#people-endpoints) and find the right leads. Start a bulk [email validation](/guides/email-verification#email-validation-endpoints) and poll for results. Upload a [lead list](/guides/lead-lists#lead-list-endpoints) and use it in Amplemarket. Register a [webhook](/guides/outbound-json-push) and start receiving activity notifications. ### Support To learn more about the product or if you need further assistance, use our [Support portal](https://knowledge.amplemarket.com/hc/en-us) # Replies Source: https://docs.amplemarket.com/webhooks/events/replies Notifications for an email or LinkedIn message reply received from a prospect through a sequence or reply sequence Sender's email address. List of recipients in the "To" field. List of recipients in the "CC" field. List of recipients in the "BCC" field. When the email was sent. Email subject line. Email content. Activity ID. LinkedIn activity details. Lead's LinkedIn URL. Whether the activity is a reply. Available values are `interested`, `hard_no`, `introduction`, `not_interested`, `ooo`, `asked_to_circle_back_later`, `not_the_right_person`, `forwarded_to_the_right_person` User details. Lead's dynamic fields. Sequence details. Sequence stage details. Available values are: `email`, `linkedin_visit`, `linkedin_follow`, `linkedin_like_last_post`, `linkedin_connect`, `linkedin_message`, `linkedin_voice_message`, `linkedin_video_message`, `phone_call`, `custom_task` Reply sequence details. Reply sequence stage details. Contact details. ```js Email { "from": "noreply@amplemarket.com", "to": [ "noreply@amplemarket.com", "noreply@amplemarket.com" ], "cc": [ "noreply@amplemarket.com" ], "bcc": [ "noreply@amplemarket.com" ], "date": "2022-09-18T13:12:00+00:00", "subject": "Re: The subject of the message", "body": "The email message body in plaintext.", "is_reply": true, "id": "6d3mi54v6hxrissb2zqgpq1xu", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "labels": ["Interested"] "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "noreply@amplemarket.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates" }, "user": { "first_name": "Jane", "last_name": "Doe", "email": "luis@amplemarket.com" }, "sequence": { "id": "a3f8b29c7d15e4f6b8c9a2e5d7f1b3c8e6f9a4b2", "name": "The name of the sequence", "start_date": "2022-09-12T11:33:47Z", "end_date": "2022-09-18T13:12:47Z" }, "sequence_stage": { "index": 3 }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` ```js LinkedIn { "is_reply": true, "id": "6d3mi54v6hxrissb2zqgpq1xu", "linkedin": { "subject": "LinkedIn: Send message to Profile", "description": "Message: \"This is the message body\"", "date": "2024-10-11T10:57:00Z" }, "linkedin_url": "https://www.linkedin.com/in/williamhgates", "labels": ["Interested"] "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "noreply@amplemarket.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates" }, "user": { "first_name": "Jane", "last_name": "Doe", "email": "luis@amplemarket.com" }, "sequence": { "id": "a3f8b29c7d15e4f6b8c9a2e5d7f1b3c8e6f9a4b2", "name": "The name of the sequence", "start_date": "2022-09-12T11:33:47Z", "end_date": "2022-09-18T13:12:47Z" }, "sequence_stage": { "index": 2, "type": "linkedin_message", "automatic": true }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` ```js Reply Sequence (email only) { "from": "noreply@amplemarket.com", "to": [ "noreply@amplemarket.com", "noreply@amplemarket.com" ], "cc": [ "noreply@amplemarket.com" ], "bcc": [ "noreply@amplemarket.com" ], "date": "2022-09-18T13:12:00+00:00", "subject": "Re: The subject of the message", "body": "The email message body in plaintext.", "is_reply": true, "id": "6d3mi54v6hxrissb2zqgpq1xu", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "noreply@amplemarket.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates" }, "user": { "first_name": "Jane", "last_name": "Doe", "email": "luis@amplemarket.com" }, "reply_sequence": { "name": "The name of the reply sequence", "start_date": "2022-09-15T11:20:32Z", "end_date": "2022-09-21T11:20:32Z" }, "reply_sequence_stage": { "index": 1 }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` # Sequence Stage Source: https://docs.amplemarket.com/webhooks/events/sequence-stage Notifications for manual or automatic sequence stage or reply sequence Sender's email address. List of recipients in the "To" field. List of recipients in the "CC" field. List of recipients in the "BCC" field. When the email was sent. Email subject line. Email content. Activity ID. LinkedIn activity details. Call details. Available values are: `incoming`, `outgoing` Available values are: `no_answer`, `no_answer_voicemail`, `wrong_number`, `busy`, `not_interested`, `interested` Generic Task details. Lead's LinkedIn URL. Whether the activity is a reply. User details. Lead's dynamic fields. Sequence details. Sequence stage details. Available values are: `email`, `linkedin_visit`, `linkedin_follow`, `linkedin_like_last_post`, `linkedin_connect`, `linkedin_message`, `linkedin_voice_message`, `linkedin_video_message`, `phone_call`, `custom_task` Reply sequence details. Reply sequence stage details. Contact details. ```js Email { "from": "noreply@amplemarket.com", "to": [ "destination@example.com" ], "cc": [ "noreply@amplemarket.com" ], "bcc": [ "noreply@amplemarket.com" ], "date": "2024-10-11T10:57:00Z", "subject": "The subject of the message", "body": "The email message body in plaintext.", "id": "d4927e92486a0ac8399ddb2d7c6105fe", "linkedin_url": "https://linkedin.com/in/test", "is_reply": false, "user": { "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@email.com" }, "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "destination@example.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "sender": { "first_name": "Jane", "last_name": "Doe" } }, "sequence": { "id": "a3f8b29c7d15e4f6b8c9a2e5d7f1b3c8e6f9a4b2", "name": "The name of the sequence", "start_date": "2024-10-11T10:57:00Z", "end_date": "2024-10-12T10:57:00Z" }, "sequence_stage": { "index": 2, "type": "email", "automatic": true }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` ```js LinkedIn { "id": "d4927e92486a0ac8399ddb2d7c6105fe", "linkedin": { "subject": "LinkedIn: Send message to Profile", "description": "Message: \"This is the message body\"", "date": "2024-10-11T10:57:00Z" }, "linkedin_url": "https://linkedin.com/in/test", "is_reply": false, "user": { "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@email.com" }, "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "destination@example.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "sender": { "first_name": "Jane", "last_name": "Doe" } }, "sequence": { "id": "a3f8b29c7d15e4f6b8c9a2e5d7f1b3c8e6f9a4b2", "name": "The name of the sequence", "start_date": "2024-10-11T10:57:00Z", "end_date": "2024-10-12T10:57:00Z" }, "sequence_stage": { "index": 2, "type": "linkedin_message", "automatic": true }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` ```js Call { "id": "d4927e92486a0ac8399ddb2d7c6105fe", "call": { "date": "2024-10-11T10:57:00Z", "title": "Incoming call to (+351999999999) | Answered | Answered", "description": "Call disposition: Answered
Call recording URL: https://amplemarket.com/example
", "direction": "incoming", "disposition": "interested", "duration": "1970-01-01T00:02:00.000Z", "from": "+351999999999", "to": "+351888888888", "recording_url": "https://amplemarket.com/example" }, "linkedin_url": "https://linkedin.com/in/test", "is_reply": false, "user": { "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@email.com" }, "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "destination@example.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "sender": { "first_name": "Jane", "last_name": "Doe" } }, "sequence": { "id": "a3f8b29c7d15e4f6b8c9a2e5d7f1b3c8e6f9a4b2", "name": "The name of the sequence", "start_date": "2024-10-11T10:57:00Z", "end_date": "2024-10-12T10:57:00Z" }, "sequence_stage": { "index": 2, "type": "phone_call", "automatic": true }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` ```js Generic task { "id": "d4927e92486a0ac8399ddb2d7c6105fe", "task": { "subject": "Generic Task", "user_notes": "This is a note", "date": "2024-10-11T10:57:00+00:00" }, "linkedin_url": "https://linkedin.com/in/test", "is_reply": false, "user": { "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@email.com" }, "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "destination@example.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "sender": { "first_name": "Jane", "last_name": "Doe" } }, "sequence": { "id": "a3f8b29c7d15e4f6b8c9a2e5d7f1b3c8e6f9a4b2", "name": "The name of the sequence", "start_date": "2024-10-11T10:57:00Z", "end_date": "2024-10-12T10:57:00Z" }, "sequence_stage": { "index": 2, "type": "custom_task", "automatic": true }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ``` ```js Reply Sequence (email only) { "from": "noreply@amplemarket.com", "to": [ "destination@example.com" ], "cc": [ "noreply@amplemarket.com" ], "bcc": [ "noreply@amplemarket.com" ], "date": "2024-10-11T10:57:00Z", "subject": "The subject of the message", "body": "The email message body in plaintext.", "id": "d4927e92486a0ac8399ddb2d7c6105fe", "linkedin_url": "https://linkedin.com/in/test", "is_reply": false, "user": { "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@email.com" }, "dynamic_fields": { "first_name": "John", "last_name": "Doe", "company_name": "Amplemarket", "company_domain": "amplemarket.com", "company_email_domain": "amplemarket.com", "title": "Founder & CEO", "simplified_title": "CEO", "email": "destination@example.com", "city": "San Francisco", "state": "California", "country": "United States", "industry": "Computer Software", "linkedin_url": "https://www.linkedin.com/in/williamhgates", "sender": { "first_name": "Jane", "last_name": "Doe" } }, "reply_sequence": { "name": "The name of the reply sequence", "start_date": "2024-10-11T10:57:00Z", "end_date": "2024-10-12T10:57:00Z" }, "reply_sequence_stage": { "index": 1 }, "contact": { "id": "01234567-89ab-cdef-0123-456789abcdef" } } ```
# Workflows Source: https://docs.amplemarket.com/webhooks/events/workflow Notifications for "Send JSON" actions used in Workflows Available values are `interested`, `hard_no`, `introduction`, `not_interested`, `ooo`, `asked_to_circle_back_later`, `not_the_right_person`, `forwarded_to_the_right_person` In scenarios where the `not_the_right_person` tag is used please note that the third-party information sent refers to the details of the originally contacted person. Meanwhile, the lead details will now be updated to reflect the newly-referred person who is considered a more appropriate contact for the ongoing sales process. ```js Reply { "email_message": { "id": "47f5d8c2-aa96-42ac-a6f0-6507e78b8b9b", "from": "\"Sender\" ", "to": "\"Recipient 1\" ,\"Recipient 2\" , ", "cc": "\"Carbon Copy\" ", "bcc": "\"Blind Carbon Copy\" ", "subject": "The subject of the message", "snippet": "A short snippet of the email message.", "last_message": "A processed version of the message (without salutation and signature).", "body": "The original email message body.", "tag": [ "interested" ], "date": "2019-11-27T12:37:46+00:00" }, "sequence_stage": { "index": 3, "sending_date": "2019-11-27T07:37:46Z" }, "sequence": { "key": "b7ff348ea1a061e39cbe703880048d64171d8487", "name": "The name of the sequence", "start_date": "2019-11-24T12:37:46Z" }, "user": { "email": "test@amplemarket.com" } "lead": { "email": "noreply@amplemarket.com", "first_name": "John", "last_name": "Doe", "company_name": "Company", "company_domain": "company.com" } } ``` ```js Out of Office { "email_message": { "id": "47f5d8c2-aa96-42ac-a6f0-6507e78b8b9b", "from": "\"Sender\" ", "to": "\"Recipient 1\" ,\"Recipient 2\" , ", "cc": "\"Carbon Copy\" ", "bcc": "\"Blind Carbon Copy\" ", "subject": "The subject of the message", "snippet": "A short snippet of the email message.", "last_message": "A processed version of the message (without salutation and signature).", "body": "The original email message body.", "tag": [ "ooo" ], "date": "2019-11-27T12:37:46+00:00" }, "sequence_stage": { "index": 3, "sending_date": "2019-11-27T07:37:46Z" }, "sequence": { "key": "b7ff348ea1a061e39cbe703880048d64171d8487", "name": "The name of the sequence", "start_date": "2019-11-24T12:37:46Z" }, "user": { "email": "test@amplemarket.com" } "lead": { "email": "noreply@amplemarket.com", "first_name": "John", "last_name": "Doe", "company_name": "Company", "company_domain": "company.com" } "additional_info": { "return_date": "2023-01-01" } } ``` ```js Follow Up { "email_message": { "id": "47f5d8c2-aa96-42ac-a6f0-6507e78b8b9b", "from": "\"Sender\" ", "to": "\"Recipient 1\" ,\"Recipient 2\" , ", "cc": "\"Carbon Copy\" ", "bcc": "\"Blind Carbon Copy\" ", "subject": "The subject of the message", "snippet": "A short snippet of the email message.", "last_message": "A processed version of the message (without salutation and signature).", "body": "The original email message body.", "tag": [ "asked_to_circle_back_later" ], "date": "2019-11-27T12:37:46+00:00" }, "sequence_stage": { "index": 3, "sending_date": "2019-11-27T07:37:46Z" }, "sequence": { "key": "b7ff348ea1a061e39cbe703880048d64171d8487", "name": "The name of the sequence", "start_date": "2019-11-24T12:37:46Z" }, "user": { "email": "test@amplemarket.com" } "lead": { "email": "noreply@amplemarket.com", "first_name": "John", "last_name": "Doe", "company_name": "Company", "company_domain": "company.com" } "additional_info": { "follow_up_date": "2023-01-01" } } ``` ```js Not The Right Person { "email_message": { "id": "47f5d8c2-aa96-42ac-a6f0-6507e78b8b9b", "from": "\"Sender\" ", "to": "\"Recipient 1\" ,\"Recipient 2\" , ", "cc": "\"Carbon Copy\" ", "bcc": "\"Blind Carbon Copy\" ", "subject": "The subject of the message", "snippet": "A short snippet of the email message.", "last_message": "A processed version of the message (without salutation and signature).", "body": "The original email message body.", "tag": [ "not_the_right_person" ], "date": "2019-11-27T12:37:46+00:00" }, "sequence_stage": { "index": 3, "sending_date": "2019-11-27T07:37:46Z" }, "sequence": { "key": "b7ff348ea1a061e39cbe703880048d64171d8487", "name": "The name of the sequence", "start_date": "2019-11-24T12:37:46Z" }, "user": { "email": "test@amplemarket.com" } "lead": { "email": "noreply@amplemarket.com", "first_name": "Jane", "last_name": "Doe", "company_name": "Company", "company_domain": "company.com" } "additional_info": { "third_party_email": "noreply@amplemarket.com", "third_party_first_name": "John", "third_party_last_name": "Doe", "third_party_company_name": "Company", "third_party_company_domain": "company.com" } } ``` # Webhooks Source: https://docs.amplemarket.com/webhooks/introduction How to enable webhooks with Amplemarket [Webhooks](https://en.wikipedia.org/wiki/Webhook) are useful way to extend Amplemarket's functionality and integrating it with other systems you already use. Amplemarket supports multiple types of outbound webhook events to help you keep your external tools up to date. These webhooks deliver structured JSON payloads that notify your system of key events. Webhooks in Amplemarket offer multiple types of automations including: * [Reply webhooks](/guides/outbound-json-push#enable-json-data-integration): Triggered when a lead replies via email or LinkedIn * [Sequence stage webhooks](/guides/outbound-json-push#enable-json-data-integration): Triggered when a lead reaches a new stage in a sequence (e.g. an email is sent, a call is logged, or a task is scheduled). * [Send JSON Webhooks (via Workflows)](/guides/outbound-json-push#enable-json-push-from-workflows): Triggered by “Send JSON to endpoint” actions in reply-based Workflows. Typically used for replies labeled as Not the right person, OOO, or Interested. Amplemarket will then start sending JSON-encoded messages to the HTTP endpoints you specify. Check [our documented events](events) to see all available events. To know more about all available Smart Actions and how Amplemarket leverages Workflows, read our [knowledge base article](https://knowledge.amplemarket.com/hc/en-us/articles/360052097492-Hard-No-Smart-Actions).