Evaboot API
  • Documentation
  • API Reference
Information
LinkedIn Extraction
    Extract a Sales Navigator search or listpostExtract a single Sales Navigator profilepostExtract a list of Sales Navigator profilespostGet LinkedIn extraction job resultsgetList LinkedIn extraction jobsget
Email Finder
    Find an emailpostList Email Finder jobsgetFind emails in bulkpostGet Email Finder job resultsget
Email Verifier
    Verify an emailpostList email validation jobsgetVerify emails in bulkpostGet email validation job resultsget
Account
    Get user quota informationget
Search Builder
    Generate a Sales Navigator search URLpost
Schemas
powered by Zudoku
Evaboot Public API
Evaboot Public API

LinkedIn Extraction

Operations for extracting profiles from LinkedIn


Extract a Sales Navigator search or list

POST
https://api.evaboot.com
/v1/extractions/url/

Extract every lead or account behind a Sales Navigator search URL, saved search URL, or lead/account list URL.

The URL is checked against Sales Navigator while you wait, so an unusable search is rejected immediately rather than failing later. Everything after that runs in the background: the response returns an extraction_id straight away, and you either poll GET /v1/extractions/{extraction_id}/ until its status is EXECUTED or supply a webhook_url and be notified when the results are ready. Large searches take several minutes.

Cost: 1 credit per lead extracted, plus 1 credit per email found when enrich_email is set. A search's true size is unknown until it has been paged through, so the request only needs a positive balance to start; the credits are debited when the results are ready.

Extract a Sales Navigator search or list › Request Body

UrlExtractionCreateIn
linkedin_url
​string · required

The Sales Navigator URL to extract. Accepts a people or company search URL, a saved search URL, or a lead or account list URL. Copy it straight from your browser's address bar; it must be a linkedin.com/sales/... URL.

Example: https://www.linkedin.com/sales/search/people?query=(spellCorrectionEnabled%3Atrue%2CrecentSearchParam%3A(keywords%3ACEOs))
search_name
​string · maxLength: 255 · required

Your own name for this extraction. Shown in the Evaboot dashboard and returned by the list and detail endpoints, so use something you will recognize later.

Example: Tech Startup CEOs
​

Optional HTTPS URL to notify once the extraction finishes. It receives a POST carrying the same results as GET /v1/extractions/{extraction_id}/, so you do not have to poll. Leave it out to poll instead.

Example: https://myapp.com/webhook/extraction
enrich_email
​string · enum

Whether to also find and verify a professional email address for each extracted lead. none skips enrichment, matching enriches only the leads that match your search filters, all enriches every extracted lead. Enrichment costs 1 extra credit per email found.

Enum values:
none
matching
all
Example: matching
Default: none

Extract a Sales Navigator search or list › Responses

Accepted

ExtractionCreateOut
extraction_id
​string · required

Identifier of the new extraction. Poll GET /v1/extractions/{extraction_id}/ with it to follow progress and collect the results; it is the same value the list endpoint returns as search_id.

Example: ext-12345
success
​boolean

Always true when the extraction was accepted.

Example: true
Default: true
message
​string

Human-readable confirmation that the job was queued.

Example: Extraction job created and processing has begun
Default:
status
​string

Stage the job was in when it was accepted.

Example: Scraping initiated
Default:
count
​integer

Number of leads or accounts submitted, when known upfront. It is 0 for a search or list URL, whose real size is only known once Sales Navigator has been paged through.

Example: 3
Default: 0
POST/v1/extractions/url/
curl https://api.evaboot.com/v1/extractions/url \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "linkedin_url": "https://www.linkedin.com/sales/search/people?query=(spellCorrectionEnabled%3Atrue%2CrecentSearchParam%3A(keywords%3ACEOs))", "search_name": "Tech Startup CEOs", "webhook_url": "https://myapp.com/webhook/extraction", "enrich_email": "none" }'
Example Request Body
{ "linkedin_url": "https://www.linkedin.com/sales/search/people?query=(spellCorrectionEnabled%3Atrue%2CrecentSearchParam%3A(keywords%3ACEOs))", "search_name": "Tech Startup CEOs", "webhook_url": "https://myapp.com/webhook/extraction", "enrich_email": "none" }
json
Example Responses
{ "success": true, "extraction_id": "ext-12345", "message": "", "status": "", "count": 0 }
json
application/json

Extract a single Sales Navigator profile

POST
https://api.evaboot.com
/v1/extractions/single/

Extract one Sales Navigator lead or account and get the full record back in the response.

This is the only extraction endpoint that is synchronous: there is nothing to poll and no webhook to wire up, so it suits enriching a single record inside a live workflow. Expect it to take a few seconds. Use POST /v1/extractions/profiles/ for more than one profile at a time.

The returned prospect object carries the identity, role, tenure and company fields Evaboot collects, plus the email address and its verification status when enrich_email is set.

Cost: 1 credit, plus 1 more if an email is found through enrichment.

Extract a single Sales Navigator profile › Request Body

SingleExtractionCreateIn
profile_id
​string · required

The lead or account to extract, as a Sales Navigator URL (linkedin.com/sales/lead/...) or as a bare Sales Navigator id. Public linkedin.com/in/... profile URLs are not accepted.

Example: ACwAAABcYZ8B
enrich_email
​string · enum

Whether to also find and verify a professional email address for the extracted lead. none skips enrichment, matching enriches only a lead that matches your search filters, all always enriches. Enrichment costs 1 extra credit when an email is found.

Enum values:
none
matching
all
Example: none
Default: none

Extract a single Sales Navigator profile › Responses

OK

SingleExtractionOut
extraction_id
​string · required

Identifier of the extraction that produced this record. Use it with GET /v1/extractions/{extraction_id}/ to fetch the same result again later.

Example: single-ext-12345
success
​boolean

Always true when the profile was extracted.

Example: true
Default: true
​object

The extracted record, as human-readable column names mapped to values: identity, role and tenure, company details, and the email address plus its verification status when enrichment was requested. Which columns are present depends on whether a lead or an account was extracted. Empty if nothing could be extracted.

Example: {"Company Name":"TechCorp Inc","Current Job":"Senior Software Engineer","Email":"alex.johnson@techcorp.com","Email Status":"safe","Full Name":"Alex Johnson"}
Default: {}
POST/v1/extractions/single/
curl https://api.evaboot.com/v1/extractions/single \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "profile_id": "ACwAAABcYZ8B", "enrich_email": "none" }'
Example Request Body
{ "profile_id": "ACwAAABcYZ8B", "enrich_email": "none" }
json
Example Responses
{ "success": true, "extraction_id": "single-ext-12345", "prospect": {} }
json
application/json

Extract a list of Sales Navigator profiles

POST
https://api.evaboot.com
/v1/extractions/profiles/

Extract a specific set of Sales Navigator leads or accounts, given their URLs or ids, without going through a search.

Use it when you already know exactly who you want: up to 2500 entries per request, all leads or all accounts, never a mix. Public linkedin.com/in/... profile URLs are rejected.

The work runs in the background: the response returns an extraction_id straight away, and you either poll GET /v1/extractions/{extraction_id}/ until its status is EXECUTED or supply a webhook_url and be notified when the results are ready.

Cost: 1 credit per profile submitted, plus 1 credit per email found when enrich_email is set. The whole batch is refused if your balance does not cover it.

Extract a list of Sales Navigator profiles › Request Body

ProfileExtractionCreateIn
profile_ids
​string[] · minItems: 1 · maxItems: 2500 · required

The Sales Navigator leads or accounts to extract, as full URLs or as bare Sales Navigator ids. One batch must be either all leads or all accounts, and public linkedin.com/in/... profile URLs are not accepted. Between 1 and 2500 entries.

Example: ["https://www.linkedin.com/sales/lead/ACwAAABcYZ8B","https://www.linkedin.com/sales/lead/ACwAAABdYZ9C","ACwAAABeYZ8D"]
search_name
​string · maxLength: 255 · required

Your own name for this extraction. Shown in the Evaboot dashboard and returned by the list and detail endpoints.

Example: Target Executive Prospects
​

Optional HTTPS URL to notify once the extraction finishes. It receives a POST carrying the same results as GET /v1/extractions/{extraction_id}/, so you do not have to poll.

Example: https://myapp.com/webhook/extraction
enrich_email
​string · enum

Whether to also find and verify a professional email address for each extracted lead. none skips enrichment, matching enriches only the leads that match your search filters, all enriches every extracted lead. Enrichment costs 1 extra credit per email found.

Enum values:
none
matching
all
Example: all
Default: none

Extract a list of Sales Navigator profiles › Responses

Accepted

ExtractionCreateOut
extraction_id
​string · required

Identifier of the new extraction. Poll GET /v1/extractions/{extraction_id}/ with it to follow progress and collect the results; it is the same value the list endpoint returns as search_id.

Example: ext-12345
success
​boolean

Always true when the extraction was accepted.

Example: true
Default: true
message
​string

Human-readable confirmation that the job was queued.

Example: Extraction job created and processing has begun
Default:
status
​string

Stage the job was in when it was accepted.

Example: Scraping initiated
Default:
count
​integer

Number of leads or accounts submitted, when known upfront. It is 0 for a search or list URL, whose real size is only known once Sales Navigator has been paged through.

Example: 3
Default: 0
POST/v1/extractions/profiles/
curl https://api.evaboot.com/v1/extractions/profiles \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "profile_ids": [ "https://www.linkedin.com/sales/lead/ACwAAABcYZ8B", "https://www.linkedin.com/sales/lead/ACwAAABdYZ9C", "ACwAAABeYZ8D" ], "search_name": "Target Executive Prospects", "webhook_url": "https://myapp.com/webhook/extraction", "enrich_email": "none" }'
Example Request Body
{ "profile_ids": [ "https://www.linkedin.com/sales/lead/ACwAAABcYZ8B", "https://www.linkedin.com/sales/lead/ACwAAABdYZ9C", "ACwAAABeYZ8D" ], "search_name": "Target Executive Prospects", "webhook_url": "https://myapp.com/webhook/extraction", "enrich_email": "none" }
json
Example Responses
{ "success": true, "extraction_id": "ext-12345", "message": "", "status": "", "count": 0 }
json
application/json

Get LinkedIn extraction job results

GET
https://api.evaboot.com
/v1/extractions/{extraction_id}/

Fetch an extraction's status and, once it has finished, its extracted records. This is the endpoint you poll after creating an extraction, and it returns the same data a webhook_url would have delivered.

The status code tells you which of two payloads you get:

  • 202: still running. You get the status and a progress percentage, and should poll again shortly.
  • 200: finished. You get the full payload including prospects.

Each record maps human-readable column names to values: identity, role and tenure, company details, and the email address plus its verification status when the extraction was created with enrich_email. Which columns appear depends on whether leads or accounts were extracted.

For large extractions, page the records with the optional start and limit query parameters; total_count and has_more then describe the whole result set. Omit limit and every record is returned in one response.

Synchronous and free: reading results costs no credits.

Get LinkedIn extraction job results › path Parameters

extraction_id
​string · required

Get LinkedIn extraction job results › query Parameters

start
​integer
Default: 0
limit
​

Get LinkedIn extraction job results › Responses

OK

ExtractionDetailOut
search_id
​string · required

Identifier of the extraction you requested.

Example: ext-12345
search_name
​string

The name you gave the extraction when you created it.

Example: Tech Startup CEOs
Default:
status
​string

Where the extraction stands. On this response it is EXECUTED when the results are complete, or FAILED / PAUSED when they are not.

Example: EXECUTED
Default:
extraction_type
​string

How the extraction was created: SEARCH, LIST, UPLOAD or SINGLE.

Example: SEARCH
Default:
total_prospects
​integer

Number of leads or accounts Sales Navigator reported before scraping. An estimate; use total_count for the number of records actually extracted.

Example: 150
Default: 0
progress
​integer

Completion percentage, 0 to 100. 100 once the extraction has finished successfully.

Example: 100
Default: 0
​

When the extraction was created (UTC).

Example: 2023-01-01 12:00:00+00:00
​

When the extraction finished (UTC). null if it never finished.

Example: 2023-01-01 12:04:31+00:00
failure_reason
​string

Short machine-readable reason the extraction did not complete, for example insufficient_credits, auth_error, quota_exceeded or invalid_urls. Empty string when the extraction succeeded.

Example: insufficient_credits
Default:
​object[]

The extracted records, each a mapping of human-readable column names to values: identity, role and tenure, company details, and the email address plus its verification status when enrichment was requested. Which columns are present depends on whether leads or accounts were extracted.

Example: [{"Company Name":"TechCorp Inc","Current Job":"Senior Software Engineer","Email":"alex.johnson@techcorp.com","Email Status":"safe","Full Name":"Alex Johnson"}]
Default: []
start
​integer

Zero-based index of the first record returned.

Example: 0
Default: 0
​

Page size that was applied, echoing the limit you sent. null when you did not page and every record was returned.

Example: 100
returned_count
​integer

Number of records in prospects on this response.

Example: 100
Default: 0
total_count
​integer

Number of records this extraction produced in total, across all pages.

Example: 143
Default: 0
has_more
​boolean

Whether records remain after this page. Request the next page with start = start + returned_count.

Example: true
Default: false
GET/v1/extractions/{extraction_id}/
curl https://api.evaboot.com/v1/extractions/:extraction_id \ --header 'Authorization: Bearer <token>'
Example Responses
{ "search_id": "ext-12345", "search_name": "", "status": "", "extraction_type": "", "total_prospects": 0, "progress": 0, "created_at": "2023-01-01 12:00:00+00:00", "completed_at": "2023-01-01 12:04:31+00:00", "failure_reason": "", "prospects": [], "start": 0, "limit": 100, "returned_count": 0, "total_count": 0, "has_more": false }
json
application/json

List LinkedIn extraction jobs

GET
https://api.evaboot.com
/v1/extractions/

List the extractions on your account, newest first.

Returns a summary of each one (name, status, type, estimated size, creation date) rather than the extracted records; fetch those from GET /v1/extractions/{extraction_id}/. Page with start and limit (25 per page by default).

status narrows the list. It takes the lowercase job states pending, scheduled, processing, completed, paused and failed. Note that these are not the uppercase values the responses report.

Synchronous and free: listing costs no credits.

List LinkedIn extraction jobs › query Parameters

start
​integer
Default: 0
limit
​integer
Default: 25
status
​

List LinkedIn extraction jobs › Responses

OK

​ExtractionListItemOut[]
ExtractionListItemOut
search_id
​string · required

Identifier of the extraction. Pass it to GET /v1/extractions/{extraction_id}/ to fetch the results.

Example: ext-12345
search_name
​string

The name you gave the extraction when you created it.

Example: Tech Startup CEOs
Default:
status
​string

Where the extraction stands: ACCEPTED (queued), SCHEDULED (waiting for its start date), EXECUTING (running), EXECUTED (finished, results available), PAUSED (waiting for credits) or FAILED.

Example: EXECUTED
Default:
extraction_type
​string

How the extraction was created: SEARCH (a search URL), LIST (a lead or account list URL), UPLOAD (a list of profiles) or SINGLE (one profile).

Example: SEARCH
Default:
total_prospects
​integer

Number of leads or accounts Sales Navigator reported for this search before scraping. An estimate, so it can differ from the number of records finally returned.

Example: 150
Default: 0
​

When the extraction was created (UTC).

Example: 2023-01-01 12:00:00+00:00
GET/v1/extractions/
curl https://api.evaboot.com/v1/extractions \ --header 'Authorization: Bearer <token>'
Example Responses
[ { "search_id": "ext-12345", "search_name": "", "status": "", "extraction_type": "", "total_prospects": 0, "search_date_created": "2023-01-01 12:00:00+00:00" } ]
json
application/json

Email Finder