Schemas
RecurringDestinationOut
idIntegration id.
typeIntegration type.
labelIntegration name.
RecurringExportCreateOut
idSchedule id. Pass it to get, update, and delete.
nameName copied onto each future run.
frequencydaily, weekly, or monthly.
pausedWhen true, the scheduler skips this schedule.
search_urlThe saved search on LinkedIn, without the new-since-last-run filter.
lead_searchtrue for a people search, false for a company search.
createdtrue when a new schedule was stored. false when this search was already recurring and only the cadence changed.
The extraction this schedule was started from, when it still exists. Same id GET /v1/extractions/{extraction_id}/ accepts.
When the schedule last launched a run. Null before the first automatic run.
When the next run is due. A paused schedule still reports the date it would have used.
runsExports this schedule has already produced.
leadsLeads collected across those runs.
Automatic integrations that receive each run: those sending all exports, all recurring exports, this recurring export, or the folder its runs are filed in. People-only integrations are left out of a company search.
RecurringExportCreateIn
frequencyHow often a new export of leads found since the previous run is launched.
Identifier of an existing extraction, as returned by POST /v1/extractions/url/ and by the list endpoint's search_id. People and company searches only. Lists and single profiles cannot recur. Pass this or url, not both.
A Sales Navigator people or company search URL. When it already contains savedSearchId, that saved search is scheduled and nothing is saved again. Any other people or company search is saved once on your Sales Navigator seat, then scheduled. A people search filtered on an account list stays that lead search. Pass this or extraction_id, not both.
RecurringExportOut
idSchedule id. Pass it to get, update, and delete.
nameName copied onto each future run.
frequencydaily, weekly, or monthly.
pausedWhen true, the scheduler skips this schedule.
search_urlThe saved search on LinkedIn, without the new-since-last-run filter.
lead_searchtrue for a people search, false for a company search.
The extraction this schedule was started from, when it still exists. Same id GET /v1/extractions/{extraction_id}/ accepts.
When the schedule last launched a run. Null before the first automatic run.
When the next run is due. A paused schedule still reports the date it would have used.
runsExports this schedule has already produced.
leadsLeads collected across those runs.
Automatic integrations that receive each run: those sending all exports, all recurring exports, this recurring export, or the folder its runs are filed in. People-only integrations are left out of a company search.
RecurringExportUpdateIn
Name of the schedule and of the template extraction. The next run is created with this name. Exports already produced keep theirs.
New cadence. The next run is recomputed from the last one, so it can move sooner.
true stops future runs and keeps the schedule. false resumes it. Resuming an overdue schedule waits one full interval instead of firing immediately.
RecurringExportDeleteOut
idThe schedule that was stopped.
deletedAlways true. The schedule cannot be restored.
ExtractionCreateOut
extraction_idIdentifier 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.
successAlways true when the extraction was accepted.
messageHuman-readable confirmation that the job was queued.
statusStage the job was in when it was accepted.
countNumber 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.
UrlExtractionCreateIn
linkedin_urlThe 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.
search_nameYour 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.
Optional list tab: changed_jobs selects leads who changed jobs in the past 90 days; posted_on_linkedin selects leads who posted on LinkedIn in the past 30 days; all selects the whole list. The two filtered categories are only supported on lead lists. Omit to preserve the URL filter. Conflicts are rejected.
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.
enrich_emailDeprecated and ignored: every lead extraction now finds and verifies a professional email for every lead, and each lead costs 1 credit with its email included. Still accepted so existing integrations keep working.
SingleExtractionOut
extraction_idIdentifier of the extraction that produced this record. Use it with GET /v1/extractions/{extraction_id}/ to fetch the same result again later.
successAlways true when the profile was extracted.
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.
SingleExtractionCreateIn
profile_idThe 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.
enrich_emailDeprecated and ignored: every lead extraction now finds and verifies a professional email for every lead, and each lead costs 1 credit with its email included. Still accepted so existing integrations keep working.
ProfileExtractionCreateIn
profile_idsThe 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.
search_nameYour own name for this extraction. Shown in the Evaboot dashboard and returned by the list and detail endpoints.
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.
enrich_emailDeprecated and ignored: every lead extraction now finds and verifies a professional email for every lead, and each lead costs 1 credit with its email included. Still accepted so existing integrations keep working.
ExtractionListItemOut
search_idIdentifier of the extraction. Pass it to GET /v1/extractions/{extraction_id}/ to fetch the results.
search_nameThe name you gave the extraction when you created it.
statusWhere the extraction stands: ACCEPTED (queued), SCHEDULED (waiting for its start date), EXECUTING (running), EXECUTED (finished, results available), PAUSED (waiting for credits) or FAILED.
extraction_typeHow the extraction was created: SEARCH (a search URL), LIST (a lead or account list URL), UPLOAD (a list of profiles) or SINGLE (one profile).
total_prospectsNumber 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.
When the extraction was created (UTC).
ExtractionDetailOut
search_idIdentifier of the extraction you requested.
search_nameThe name you gave the extraction when you created it.
statusWhere the extraction stands. On this response it is EXECUTED when the results are complete, or FAILED / PAUSED when they are not.
extraction_typeHow the extraction was created: SEARCH, LIST, UPLOAD or SINGLE.
total_prospectsNumber of leads or accounts Sales Navigator reported before scraping. An estimate; use total_count for the number of records actually extracted.
progressCompletion percentage, 0 to 100. 100 once the extraction has finished successfully.
When the extraction was created (UTC).
When the extraction finished (UTC). null if it never finished.
failure_reasonShort 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.
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.
startZero-based index of the first record returned.
Page size that was applied, echoing the limit you sent. null when you did not page and every record was returned.
returned_countNumber of records in prospects on this response.
total_countNumber of records this extraction produced in total, across all pages.
has_moreWhether records remain after this page. Request the next page with start = start + returned_count.
ExtractionInProgressOut
search_idIdentifier of the extraction you requested.
search_nameThe name you gave the extraction when you created it.
statusWhere the extraction stands: ACCEPTED (queued), SCHEDULED (waiting for its start date) or EXECUTING (running).
progressCompletion percentage, 0 to 100. Paging through Sales Navigator accounts for the first three quarters, fetching the individual profiles for the last quarter.
extraction_typeHow the extraction was created: SEARCH, LIST, UPLOAD or SINGLE.
When the extraction was created (UTC).
total_prospectsNumber of leads or accounts Sales Navigator reported for this search before scraping. An estimate.
EmailFinderJobAcceptedOut
job_idIdentifier of the queued job. Use it with GET /v1/email-finder/{job_id}/ to collect the results.
successAlways true; failures come back as an error response.
messageHuman-readable confirmation that the job was queued.
EmailFinderJobIn
job_nameYour own label for the job, so you can recognize it later. Optional.
webhook_urlOptional HTTPS URL to notify when the job finishes. We send a POST carrying the same payload as GET /v1/email-finder/{job_id}/, so you can skip polling.
The people to find emails for. Each entry needs a first and last name plus a company name or domain. Leave empty when sending source.
Read the prospects from a connected integration instead of sending them: every lead with a name, a company and no email yet, up to max_leads read. Cannot be combined with prospects.
write_backWrite each result back onto the record its prospect's source_ref points to, once the job is paid for. Fills empty fields only and never creates a record.
EmailFinderProspectIn
first_nameFirst name of the prospect.
last_nameLast name of the prospect.
company_nameName of the company the prospect works at. Supply this or company_domain for each prospect.
company_domainWeb domain of the prospect's company, without a scheme or path. Improves accuracy when you already know it.
source_refOptional. The source_ref of a lead read from a connected integration. With write_back on, the result is written back to that record.
LeadSourceIn
integration_idA connected integration, from GET /v1/integrations/.
source_idA source of that integration, from GET /v1/integrations/{id}/sources/.
max_leadsMost leads to read from the source. The job costs at most this many credits.
EmailFinderJobSummaryOut
idIdentifier of the job, as returned when you created it.
statusJob status: pending, running, complete or failed.
created_atWhen the job was created.
updated_atWhen the job last changed.
prospect_countNumber of prospects submitted.
progressPercentage of the job's prospects that have finished, from 0 to 100.
error_messageJob-level failure message. Empty when the job itself did not fail; a single prospect failing is reported on that prospect.
job_typeAlways email_finder for jobs created on this endpoint.
EmailFinderOut
The person you asked about, with the email and its verdict.
successtrue when the lookup ran, including when it ran and found nothing; false when the lookup itself errored.
job_idReference for this single lookup. There is nothing to poll: the result is already in prospect.
EmailFinderProspectOut
idIdentifier of this prospect within the job.
first_nameFirst name as submitted.
last_nameLast name as submitted.
full_nameFirst and last name joined, for convenience.
company_nameCompany name as submitted.
company_domainCompany domain as submitted.
The email address we found, or null when no address could be found for this prospect.
Deliverability verdict for found_email: safe (deliverable), riskier (accepts mail but less certain), suspect or invalid. null when no email was found.
statusOutcome for this prospect: pending (queued), processing (being looked up), complete (finished, see found_email) or failed (no email found, or the lookup errored).
Why this prospect failed, or null when it did not fail.
SingleEmailJobDeferredOut
job_idIdentifier of the lookup. Poll GET /v1/email-finder/{job_id}/ (or GET /v1/email-validation/{job_id}/ for a verification) until it returns 200.
successAlways true; failures come back as an error response.
statusrunning or pending: the lookup has not finished yet.
messageHuman-readable explanation of the 202.
EmailFinderIn
first_nameFirst name of the person whose email you are looking for.
last_nameLast name of the person whose email you are looking for.
company_nameName of the company the person works at. Supply this or company_domain — the lookup needs at least one of them, and sending both gives the best hit rate.
company_domainWeb domain of the company, without a scheme or path. The most accurate way to identify the company; supply this or company_name.
EmailFinderJobOut
idIdentifier of the job, as returned when you created it.
statusJob status: pending, running, complete or failed.
created_atWhen the job was created.
updated_atWhen the job last changed.
prospect_countNumber of prospects submitted.
One result per prospect submitted, in the order received.
progressPercentage of the job's prospects that have finished, from 0 to 100.
error_messageJob-level failure message. Empty when the job itself did not fail; a single prospect failing is reported on that prospect.
job_typeAlways email_finder for jobs created on this endpoint.
One entry per integration the results are written back to. Empty unless the job was created with write_back.
WriteBackCountsOut
updatedRecords that received the result.
Records left unchanged, by reason: has_email, has_status, email_changed, record_missing, no_email, email_status, duplicate.
failedRecords the integration refused.
WriteBackOut
integration_idThe integration written to.
delivery_idIdentifier of this write-back, for support.
statusrunning, completed or failed.
errorWhy it failed, when it did.
What happened to the records, once known.
EmailFinderJobInProgressOut
idIdentifier of the job.
statuspending while the job is queued, running once it started.
created_atWhen the job was created.
updated_atWhen the job last changed.
progressPercentage of the job's prospects that have finished, from 0 to 100.
EmailValidationJobAcceptedOut
job_idIdentifier of the new job. Pass it to the job-retrieval endpoint to poll for results.
successTrue when the job was accepted.
messageHuman-readable confirmation that the job started.
EmailValidationJobIn
job_nameYour own label for the job, so you can recognize it later in the Evaboot dashboard.
webhook_urlOptional HTTPS URL to notify when the job finishes. It receives a POST carrying the same payload as the job-retrieval endpoint. Leave empty to poll instead.
The addresses to verify, one entry per address. Leave empty when sending source.
Read the addresses from a connected integration instead: every lead with an email, up to max_leads read. Cannot be combined with prospects.
write_backWrite each result back onto the record its prospect's source_ref points to, once the job is paid for. Fills empty fields only and never creates a record.
EmailValidationProspectIn
emailThe email address to verify.
source_refOptional. The source_ref of a lead read from a connected integration. With write_back on, the result is written back to that record.
EmailValidationJobSummaryOut
idIdentifier of the job, as returned when you created it.
statusJob status: pending, running, complete or failed.
created_atWhen the job was created.
updated_atWhen the job last changed.
prospect_countNumber of addresses submitted.
progressPercentage of addresses processed, from 0 to 100.
error_messageWhy the job failed. Empty when it completed normally.
job_typeAlways email_validation for jobs created here.
EmailValidationOut
The verification result for the submitted address.
successTrue when a verdict was reached, false when verification failed.
job_idReference for this verification, useful when correlating it with your own logs. Nothing is queued, so there is no job to poll.
EmailValidationProspectOut
emailThe email address that was verified.
Deliverability verdict: safe (deliverable), riskier (deliverable but lower confidence), suspect (could not be confirmed) or invalid (undeliverable). Null when verification did not complete.
statusWhether verification ran: complete when a verdict was reached, failed when it could not be.
Why verification failed. Null when it succeeded.
EmailValidationJobOut
idIdentifier of the job.
statuscomplete when every address has been processed, failed when the job could not finish.
created_atWhen the job was created.
updated_atWhen the job last changed.
One verification result per submitted address.
progressPercentage of addresses processed, from 0 to 100.
error_messageWhy the job failed. Empty when it completed normally.
job_typeAlways email_validation for jobs created here.
One entry per integration the statuses are written back to. Empty unless the job was created with write_back.
EmailValidationJobProspectOut
idIdentifier of this address within the job.
emailThe email address that was submitted for verification.
Deliverability verdict: safe (deliverable), riskier (deliverable but lower confidence), suspect (could not be confirmed) or invalid (undeliverable). Null when verification did not complete.
statusPer-address progress: pending, processing, complete once a verdict was reached, or failed when verification could not run.
Why this address could not be verified. Null when it succeeded.
EmailValidationJobInProgressOut
idIdentifier of the job.
statuspending while the job is queued, running while addresses are being verified.
created_atWhen the job was created.
updated_atWhen the job last changed.
progressPercentage of addresses processed so far, from 0 to 100.
QuotaInfo
daily_limitTotal profiles you may extract per day, summed across your valid Sales Navigator accounts.
used_todayProfiles extracted in the last 24 hours, summed across your valid Sales Navigator accounts.
remainingProfiles you can still extract today, summed across your valid Sales Navigator accounts. A single extraction cannot exceed the remaining of one account, so check salesnavs before launching a large job.
has_valid_salesnavWhether at least one usable Sales Navigator account is connected. When false no extraction can be launched, whatever your credit balance. Sign in to this same Evaboot account, open a Sales Navigator search in Chrome with the Evaboot extension installed, and click Export with Evaboot. That writes the cookies.
creditsCredits available to spend on API operations. An extraction costs 1 credit per lead, its email included; Email Finder costs 1 credit per email found; email validation costs 1 credit per address checked.
Every Sales Navigator account connected to your Evaboot account, valid or not, with its own daily limit and usage.
QuotaOut
Your current daily extraction quota and credit balance.
successtrue when the quota was read successfully.
SalesNavInfo
idIdentifier of the connected Sales Navigator account.
statusWhether this Sales Navigator account can currently be used to extract: valid when its session is still good, invalid when its cookies are missing or no longer accepted. Refresh them in the Evaboot Chrome extension: sign in to this same Evaboot account, open a Sales Navigator search, and click Export with Evaboot. An invalid account contributes nothing to your daily limit.
daily_limitProfiles this Sales Navigator account may extract per day. 0 when the account is invalid.
used_todayProfiles already extracted on this Sales Navigator account in the last 24 hours.
remainingProfiles this Sales Navigator account can still extract in the next launch, before its daily limit is reached.
LinkedInSessionOut
linkedin_idSales Navigator member id the cookies belong to.
successtrue when the cookies were stored.
LinkedInSessionIn
li_aThe li_a cookie from the signed-in LinkedIn browser. Copy it from Chrome DevTools, Application, Cookies, https://www.linkedin.com.
li_atThe li_at cookie from the same browser, copied the same way.
SearchBuilderOut
urlThe generated Sales Navigator search URL. Open it in Sales Navigator to review the results, or send it to the URL extraction endpoint to extract the leads it matches.
Summary of the filters that were applied, so you can check the description was understood before running an extraction. Keyed by filter type, each value a list of the labels Sales Navigator shows; excluded values are prefixed with NOT , ANNUAL_REVENUE reads as a range such as 10M-50M USD, and a keywords key appears when free-text keywords were used.
successAlways true on a successful response. Failed requests return an error object instead.
SearchBuilderIn
descriptionPlain-language description of the leads or accounts you want to find. Mention everything that matters (job titles, seniority, industry, company size, location, revenue) and it is mapped onto the matching Sales Navigator filters. Between 10 and 2000 characters.
search_typeWhich Sales Navigator search to build: "LEAD" for a people search, "ACCOUNT" for a company search.