Skip to main content

How Does The Evaboot API Works?

Small guide on how to use the Evaboot API

Updated this week

  1. Introduction

  2. Authentication

  3. Core Concepts

  4. API Endpoints Overview

  5. Email Finder Service

  6. Email Verification Service

  7. LinkedIn Extraction Service

  8. Account Management

  9. Working with Webhooks

  10. Common Patterns and Best Practices

Introduction


The Evaboot Public API is a RESTful API that provides three main services:

  • Email Finder: Find email addresses for people based on their name and company

  • Email Verification: Validate whether email addresses are deliverable

  • LinkedIn Extraction: Extract profile data from LinkedIn Sales Navigator

All operations are asynchronous (they run in the background) and return results when complete.

Authentication


Every API request must include an Authorization header with your API token:

Authorization: Token your_api_token_here

Example using cURL:

curl -H "Authorization: Token xyz123" <https://api.evaboot.com/v1/quota/>

Important: Never share your API token or commit it to version control. Store it in environment variables.

Core Concepts


1. Asynchronous Jobs

Most API operations create "jobs" that process in the background:

  • You submit a request and receive a job ID

  • The job processes asynchronously

  • You poll the job status or use webhooks to get results

2. Job Statuses

Jobs can have these statuses:

  • pending: Job created but not started

  • running/processing: Job is being processed

  • complete: Job finished successfully

  • failed: Job encountered an error

3. Credits and Quotas

  • Operations consume credits from your account

  • You have daily extraction limits

  • Check your quota using the /v1/quota/ endpoint

API Endpoints Overview


Service

Endpoint

Method

Purpose

Email Finder

/v1/email-finder/

POST

Create email finding job

Email Finder

/v1/email-finder/

GET

List all email finder jobs

Email Finder

/v1/email-finder/{id}/

GET

Get job results

Email Verification

/v1/email-validation/

POST

Create validation job

Email Verification

/v1/email-validation/

GET

List validation jobs

Email Verification

/v1/email-validation/{id}/

GET

Get validation results

LinkedIn Extraction

/v1/extractions/url/

POST

Extract from Sales Navigator URL

LinkedIn Extraction

/v1/extractions/profiles/

POST

Extract specific profiles

LinkedIn Extraction

/v1/extractions/

GET

List extractions

LinkedIn Extraction

/v1/extractions/{id}/

GET

Get extraction results

Account

/v1/quota/

GET

Check usage quota

Email Finder Service


Purpose

Find email addresses for people when you know their name and company.

Creating an Email Finder Job

Request:

POST /v1/email-finder/ { "job_name": "Find emails for sales prospects", "prospects": [ { "first_name": "John", "last_name": "Doe", "company_name": "Example Corp", "company_domain": "example.com" // Optional but improves accuracy }, { "first_name": "Jane", "last_name": "Smith", "company_name": "TechStart" // company_domain is optional } ], "webhook_url": "<https://yourapp.com/webhook>" // Optional }

Response (202 Accepted):

{ "id": "dcbcdb01-42a8-4efb-91a7-ce6a9ba01afb", "status": "pending" }

Checking Job Results

Request:

GET /v1/email-finder/dcbcdb01-42a8-4efb-91a7-ce6a9ba01afb/

Response when complete:

{ "id": "dcbcdb01-42a8-4efb-91a7-ce6a9ba01afb", "status": "complete", "progress": 100, "prospects": [ { "id": "5371cd59-adc2-402f-af02-d40aee34f629", "full_name": "John Doe", "company_name": "Example Corp", "found_email": "john.doe@example.com", "email_validity": "safe", "status": "complete" }, { "id": "66a96f2a-085e-4f4f-992d-7eceac2efddd", "full_name": "Jane Smith", "company_name": "TechStart", "found_email": "jane.smith@techstart.io", "email_validity": "riskier", "status": "complete" } ] }

Email Validity Levels

  • safe: High confidence the email is valid

  • riskier: Lower confidence, might bounce

  • null: Could not validate

Email Verification Service


Purpose

Verify if email addresses are valid and deliverable.

Creating a Validation Job

Request:

POST /v1/email-validation/ { "job_name": "Verify customer emails", "prospects": [ {"email": "john.doe@example.com"}, {"email": "jane.smith@techstart.io"}, {"email": "invalid@nonexistentdomain12345.com"} ] }

Getting Validation Results

Request:

GET /v1/email-validation/550e8400-e29b-41d4-a716-446655440000/

Response:

{ "id": "550e8400-e29b-41d4-a716-446655440000", "status": "complete", "prospects": [ { "email": "john.doe@example.com", "email_validity": "safe", "status": "complete" }, { "email": "jane.smith@techstart.io", "email_validity": "riskier", "status": "complete" }, { "email": "invalid@nonexistentdomain12345.com", "email_validity": null, "status": "failed", "error_message": "Invalid email domain" } ] }

LinkedIn Extraction Service


Purpose

Extract profile data from LinkedIn Sales Navigator searches or specific profiles.

Method 1: Extract from Sales Navigator URL

Request:

POST /v1/extractions/url/ { "linkedin_url": "<https://www.linkedin.com/sales/search/people?query=>...", "search_name": "Tech CEOs in San Francisco", "webhook_url": "<https://yourapp.com/webhook>" // Optional }

Method 2: Extract Specific Profiles

Request:

POST /v1/extractions/profiles/ { "profile_ids": [ "<https://linkedin.com/sales/lead/123>", "<https://linkedin.com/sales/lead/456>", "johndoe" // Can use profile ID instead of full URL ], "search_name": "Target accounts executives" }

Getting Extraction Results

Response includes detailed profile data:

{ "search_id": "ext-12345", "search_name": "Tech Startup CEOs", "status": "EXECUTED", "total_prospects": 2, "prospects": [ { "First Name": "John", "Last Name": "Doe", "Current Job": "CEO", "Email": "john.doe@example.com", "Email Status": "safe", "Company Name": "Example Corp", "Company Domain": "example.com", "Company Employee Range": "51-200", "Location": "San Francisco Bay Area", // ... many more fields } ] }

Account Management


Checking Your Quota

Request:

GET /v1/quota/

Response:

{ "success": true, "quota": { "daily_limit": 2500, "used_today": 250, "remaining": 2250, "credits": 1500.0, "salesnavs": [ {"id": "123456789", "status": "valid"}, {"id": "987654321", "status": "invalid"} ] } }

Did this answer your question?