openapi: 3.0.3
info:
  title: Evaboot Public API
  version: 1.1.0
  description: >-

    Documentation for the Evaboot Public API


    # Authentication


    All API requests must include an **Authorization** header with Bearer
    authentication:


    `Authorization: Bearer xyz`


    Replace `xyz` with your API key from the Evaboot dashboard.

        
paths:
  /v1/extractions/url/:
    post:
      operationId: extractions_url_create
      description: >-
        Extract profiles from a LinkedIn Sales Navigator search or list URL.


        **Webhook Support:** This endpoint supports webhooks. Include a
        `webhook_url` in your request to receive a POST notification when the
        extraction completes. The webhook will receive the same data as the GET
        detail endpoint.


        Examples:

        -
        https://www.linkedin.com/sales/search/people?query=(spellCorrectionEnabled%3Atrue%2CrecentSearchParam%3A(keywords%3ALinkedin)

        - https://www.linkedin.com/sales/lists/people/729433720595773845
      summary: Extract a Sales Navigator search or list
      tags:
        - LinkedIn Extraction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/URLExtractionCreate'
            examples:
              URLExtractionCreate:
                value:
                  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: matching
                summary: Create LinkedIn URL extraction
                description: >-
                  Example request to extract profiles from LinkedIn Sales
                  Navigator search or list URL with email enrichment
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/URLExtractionCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/URLExtractionCreate'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '202':
          description: Extraction accepted and processing started
        '400':
          description: Invalid request data
        '401':
          description: Authentication error
        '402':
          description: Insufficient credits
        '403':
          description: Permission denied
        '429':
          description: Quota exceeded
  /v1/extractions/single/:
    post:
      operationId: extractions_single_create
      description: >-
        Extract comprehensive data from a single LinkedIn Sales Navigator
        profile or company page. This endpoint runs synchronously and returns
        the complete extracted data immediately.


        **Rich Data Extraction:**

        Returns 70+ data fields including personal information, company details,
        professional background, skills, education, financial metrics, and
        enhanced insights. The exact fields depend on the profile type (LEAD vs
        ACCOUNT) and enrichment settings.


        **Key Data Categories:**

        - **Profile Information**: Names, headlines, summaries, contact details

        - **Professional Data**: Current role, tenure, skills, education,
        certifications

        - **Company Intelligence**: Revenue, growth metrics, employee counts,
        technologies, funding stage

        - **Social Insights**: Connections, posting frequency, languages,
        volunteer work

        - **Contact Data**: Email addresses and validation (when enrichment
        enabled)


        **Webhook Support:** Include a `webhook_url` in your request to receive
        a POST notification when extraction completes.
      summary: Extract a single Sales Navigator profile
      tags:
        - LinkedIn Extraction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleProfileExtractionCreate'
            examples:
              SingleProfileExtractionCreate:
                value:
                  profile_id: https://www.linkedin.com/sales/lead/ACwAAABcYZ8B...
                  enrich_email: none
                summary: Create single LinkedIn profile extraction
                description: Example request to extract a single LinkedIn profile
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SingleProfileExtractionCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SingleProfileExtractionCreate'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          description: Profile extracted successfully with comprehensive prospect data
        '400':
          description: Extraction failed or invalid data
        '401':
          description: Authentication error
        '402':
          description: Insufficient credits
        '403':
          description: Permission denied
        '429':
          description: Quota exceeded
  /v1/extractions/profiles/:
    post:
      operationId: extractions_profiles_create
      description: >-
        Extract specific profiles by providing LinkedIn Sales Navigator profile
        or company URLs/IDs. Unlike search extractions, this allows you to
        target exact individuals or companies.


        **Webhook Support:** This endpoint supports webhooks. Include a
        `webhook_url` in your request to receive a POST notification when the
        extraction completes. The webhook will receive the same data as the GET
        detail endpoint.
      summary: Extract a list of Sales Navigator profiles
      tags:
        - LinkedIn Extraction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileExtractionCreate'
            examples:
              ProfileExtractionCreate:
                value:
                  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: all
                summary: Create LinkedIn profile list extraction
                description: >-
                  Example request to extract specific profiles by providing
                  LinkedIn profile URLs or IDs
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProfileExtractionCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProfileExtractionCreate'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '202':
          description: Extraction accepted and processing started
        '400':
          description: Invalid request data
        '401':
          description: Authentication error
        '402':
          description: Insufficient credits
        '403':
          description: Permission denied
        '429':
          description: Quota exceeded
  /v1/extractions/:
    get:
      operationId: extractions_list
      description: List all LinkedIn extractions for the authenticated user
      summary: List LinkedIn Extraction jobs
      tags:
        - LinkedIn Extraction
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExtractionList'
              examples:
                ExtractionList:
                  value:
                    - - search_id: ext-12345
                        search_name: Tech Startup CEOs
                        status: EXECUTED
                        extraction_type: search_url
                        total_prospects: 150
                        search_date_created: '2023-01-01T12:00:00Z'
                      - search_id: ext-67890
                        search_name: Marketing Managers - SaaS
                        status: EXECUTED
                        extraction_type: profile_list
                        total_prospects: 75
                        search_date_created: '2023-01-02T14:30:00Z'
                  summary: List of LinkedIn extractions
                  description: Example of successful extraction list response
          description: ''
        '403':
          description: Permission denied
  /v1/extractions/{id}/:
    get:
      operationId: extractions_retrieve
      description: >-
        Retrieve the complete results of a LinkedIn extraction with extensive
        prospect and company data.


        **Comprehensive Data Fields Available:**

        - **Personal Information**: Names, job titles, contact details,
        professional summaries

        - **LinkedIn Profile Data**: URLs, connections, premium status, profile
        metrics

        - **Company Information**: Name, domain, industry, employee counts,
        revenue ranges, growth metrics

        - **Professional Details**: Job descriptions, tenure information,
        position counts, skills, education

        - **Enhanced Insights**: Languages, volunteer experience, posting
        activity, technology stack

        - **Financial Data**: Revenue estimates, funding stages, growth
        percentages over multiple time periods

        - **Contact Information**: Email addresses and validation status (when
        email enrichment is enabled)


        **Dynamic Field Selection:**

        The response fields automatically adjust based on your extraction type:

        - **LEAD extractions**: Include personal fields like education, skills,
        and professional experience

        - **ACCOUNT extractions**: Focus on company-specific data and exclude
        personal information

        - **Enriched extractions**: Include verified email addresses and
        validation status

        - **Standard extractions**: Provide core LinkedIn profile and company
        data


        Fields are sourced from LinkedIn's Sales Navigator API and enhanced with
        additional data processing to provide the most comprehensive prospect
        intelligence available.
      summary: Get LinkedIn Extraction job results
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
      tags:
        - LinkedIn Extraction
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtractionDetail'
              examples:
                CompleteLEADExtractionWithProspects:
                  value:
                    search_id: ext-12345
                    search_name: Tech Startup CEOs
                    status: EXECUTED
                    extraction_type: search_url
                    total_prospects: 2
                    progress: 100
                    created_at: '2023-01-01T12:00:00Z'
                    completed_at: '2023-01-01T12:05:00Z'
                    prospects:
                      - Matches Filters: valid
                        No Match Reasons: ''
                        First Name: John
                        Last Name: Doe
                        Current Job: CEO & Founder
                        Email: john.doe@example.com
                        Email Status: safe
                        Linkedin URL Public: 'True'
                        Linkedin URL Unique ID: johndoe
                        Sales Navigator URL: https://linkedin.com/sales/lead/ACwAAABcYZ8B_example
                        Is Open Profile: 'False'
                        Company Name: Example Corp
                        Company Domain: example.com
                        Company Linkedin URL Unique ID: example-corp
                        Company Employee Exact Count: '150'
                        Company Employee Range: 51-200
                        Company Industry: Technology
                        Company Description: >-
                          Leading AI-powered technology solutions for enterprise
                          clients
                        Company Specialities: >-
                          Artificial Intelligence, Machine Learning, SaaS,
                          Enterprise Software
                        Company Profile Picture: https://media.licdn.com/dms/image/example.jpg
                        Company Website URL: https://example.com
                        Company Type: Privately Held
                        Company Location: San Francisco, California, United States
                        Company Year Founded: '2018'
                        Profile Headline: >-
                          CEO & Founder at Example Corp | Building the future of
                          AI
                        Profile Summary: >-
                          Passionate entrepreneur with 15+ years in AI and
                          machine learning. Previously led engineering teams at
                          major tech companies.
                        Job Description: >-
                          Leading company vision and strategy, overseeing
                          product development, and building strategic
                          partnerships.
                        Current Jobs Number: '1'
                        Connections: 500+
                        Is Open To Work: 'False'
                        Is Premium: 'True'
                        Location: San Francisco Bay Area
                        Profile Industry: Computer Software
                        Profile Picture: https://media.licdn.com/dms/image/profile-example.jpg
                        Full Name: John Doe
                        Years in Position: 3
                        Months in Position: 6
                        Years in Company: 5
                        Months in Company: 6
                        Company Revenue Min (Millions USD): '10'
                        Company Revenue Max (Millions USD): '50'
                        Company Employee Growth 6 Months (%): '15'
                        Company Employee Growth 1 Year (%): '45'
                        Company Employee Growth 2 Years (%): '120'
                        Education: MBA from Stanford University
                        Top Skills (with endorsements): >-
                          Artificial Intelligence (89), Machine Learning (76),
                          Product Strategy (54)
                        Company Headquarters (Full Address): >-
                          123 Innovation Way, San Francisco, CA 94107, United
                          States
                        Languages: English, Spanish, Mandarin
                        Volunteer Experience: >-
                          Mentor at TechStars, Board Member at AI for Good
                          Foundation
                        Total Positions Count: '4'
                        Education Fields of Study: Computer Science, Business Administration
                        Job Seeker Badge: None
                        Company Revenue Currency: USD
                        Company Funding Stage: Series B
                        Follower Count: '12500'
                        Company Technologies: Python, TensorFlow, AWS, Kubernetes, React, PostgreSQL
                        Posting Frequency: Medium
                        InMail Restriction Status: None
                        Has New Position: 'No'
                        Profile Timezone: America/Los_Angeles
                        Company Type (Detailed): Private Company
                      - Matches Filters: valid
                        No Match Reasons: ''
                        First Name: Sarah
                        Last Name: Chen
                        Current Job: VP of Engineering
                        Email: sarah.chen@techstart.io
                        Email Status: safe
                        Linkedin URL Public: 'True'
                        Linkedin URL Unique ID: sarahchen-tech
                        Sales Navigator URL: https://linkedin.com/sales/lead/ACwAAABdYZ9C_example
                        Is Open Profile: 'True'
                        Company Name: TechStart
                        Company Domain: techstart.io
                        Company Linkedin URL Unique ID: techstart-company
                        Company Employee Exact Count: '75'
                        Company Employee Range: 51-200
                        Company Industry: Computer Software
                        Company Description: >-
                          Next-generation development tools and platforms for
                          modern software teams
                        Company Specialities: >-
                          Developer Tools, Cloud Computing, DevOps, API
                          Management
                        Company Profile Picture: https://media.licdn.com/dms/image/techstart.jpg
                        Company Website URL: https://techstart.io
                        Company Type: Privately Held
                        Company Location: Austin, Texas, United States
                        Company Year Founded: '2020'
                        Profile Headline: >-
                          VP of Engineering at TechStart | Scaling developer
                          productivity
                        Profile Summary: >-
                          Engineering leader with expertise in distributed
                          systems and developer experience. Former Senior
                          Engineering Manager at Meta.
                        Job Description: >-
                          Leading engineering organization, architecting
                          scalable systems, and driving technical strategy for
                          developer productivity platform.
                        Current Jobs Number: '1'
                        Connections: 500+
                        Is Open To Work: 'False'
                        Is Premium: 'False'
                        Location: Austin, Texas Metropolitan Area
                        Profile Industry: Computer Software
                        Profile Picture: https://media.licdn.com/dms/image/sarah-profile.jpg
                        Full Name: Sarah Chen
                        Years in Position: 1
                        Months in Position: 8
                        Years in Company: 3
                        Months in Company: 2
                        Company Revenue Min (Millions USD): '5'
                        Company Revenue Max (Millions USD): '25'
                        Company Employee Growth 6 Months (%): '25'
                        Company Employee Growth 1 Year (%): '67'
                        Company Employee Growth 2 Years (%): '200'
                        Education: BS Computer Science from UC Berkeley
                        Top Skills (with endorsements): >-
                          Software Engineering (124), Distributed Systems (87),
                          Team Leadership (65)
                        Company Headquarters (Full Address): 456 Tech Boulevard, Austin, TX 78701, United States
                        Languages: English, Mandarin
                        Volunteer Experience: Coding mentor at Girls Who Code
                        Total Positions Count: '5'
                        Education Fields of Study: Computer Science, Mathematics
                        Job Seeker Badge: None
                        Company Revenue Currency: USD
                        Company Funding Stage: Series A
                        Follower Count: '8500'
                        Company Technologies: >-
                          JavaScript, Node.js, React, Docker, Kubernetes,
                          MongoDB, Redis
                        Posting Frequency: High
                        InMail Restriction Status: None
                        Has New Position: 'Yes'
                        Profile Timezone: America/Chicago
                        Company Type (Detailed): Private Company
                  summary: Complete LEAD extraction with comprehensive prospect data
                  description: >-
                    Example of a completed LEAD extraction showing the extensive
                    range of available fields. Fields shown depend on search
                    type (LEAD vs ACCOUNT), enrichment status, and extraction
                    type. This example shows a LEAD search with email enrichment
                    enabled.
                CompleteACCOUNTExtraction:
                  value:
                    search_id: ext-67890
                    search_name: SaaS Companies in Austin
                    status: EXECUTED
                    extraction_type: search_url
                    total_prospects: 1
                    progress: 100
                    created_at: '2023-01-01T14:00:00Z'
                    completed_at: '2023-01-01T14:03:00Z'
                    prospects:
                      - Matches Filters: valid
                        No Match Reasons: ''
                        Company Name: InnovateTech Solutions
                        Company Domain: innovatetech.com
                        Company Linkedin URL Unique ID: innovatetech-solutions
                        Company Employee Exact Count: '250'
                        Company Employee Range: 201-500
                        Company Industry: Information Technology and Services
                        Company Description: >-
                          Cloud-native solutions for enterprise digital
                          transformation
                        Company Specialities: >-
                          Cloud Computing, Digital Transformation, Enterprise
                          Software, Consulting
                        Company Profile Picture: https://media.licdn.com/dms/image/innovate.jpg
                        Company Website URL: https://innovatetech.com
                        Company Type: Privately Held
                        Company Location: Austin, Texas, United States
                        Company Year Founded: '2015'
                        Company Revenue Min (Millions USD): '25'
                        Company Revenue Max (Millions USD): '100'
                        Company Employee Growth 6 Months (%): '12'
                        Company Employee Growth 1 Year (%): '28'
                        Company Employee Growth 2 Years (%): '85'
                        Company Headquarters (Full Address): 789 Enterprise Drive, Austin, TX 78759, United States
                        Company Revenue Currency: USD
                        Company Funding Stage: Series C
                        Company Technologies: >-
                          AWS, Microsoft Azure, Salesforce, ServiceNow, Java,
                          Python
                        Company Type (Detailed): Private Company
                  summary: Complete ACCOUNT extraction with company-focused data
                  description: >-
                    Example of a completed ACCOUNT extraction showing
                    company-focused fields. Note that LEAD-specific fields (like
                    First Name, education, etc.) are excluded for ACCOUNT
                    searches.
          description: LinkedIn extraction results retrieved successfully
        '202':
          description: Extraction is still processing
        '403':
          description: Permission denied
        '404':
          description: Extraction not found
  /v1/email-finder/single/:
    post:
      operationId: email_finder_single_create
      description: >-
        Find and validate email for a single person by providing their first
        name, last name, and company information. This endpoint runs
        synchronously and returns the email result immediately.


        **Company Information**: Either company_name or company_domain must be
        provided to improve email finding accuracy.
      summary: Find an email
      tags:
        - Email Finder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleEmailFinderCreate'
            examples:
              SingleEmailFinderCreate:
                value:
                  first_name: John
                  last_name: Doe
                  company_name: Example Corp
                  company_domain: example.com
                summary: Find email for single person
                description: Example request to find email for a single person
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SingleEmailFinderCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SingleEmailFinderCreate'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          description: Email found successfully
        '400':
          description: Email finding failed or invalid data
        '401':
          description: Authentication error
        '402':
          description: Insufficient credits
  /v1/email-finder/:
    get:
      operationId: email_finder_list
      description: List all email finder jobs created by the authenticated user
      summary: List Email Finder jobs
      tags:
        - Email Finder
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EmailFinderJobList'
              examples:
                EmailFinderJobsList:
                  value:
                    - - id: dcbcdb01-42a8-4efb-91a7-ce6a9ba01afb
                        status: complete
                        created_at: '2023-01-01T12:00:00Z'
                        updated_at: '2023-01-01T12:05:00Z'
                        progress: 100
                        error_message: 1 prospect failed.
                        prospect_count: '3'
                        job_type: email_finder
                      - id: 550e8400-e29b-41d4-a716-446655440001
                        status: running
                        created_at: '2023-01-02T14:30:00Z'
                        updated_at: '2023-01-02T14:32:00Z'
                        progress: 45
                        error_message: null
                        prospect_count: '5'
                        job_type: email_finder
                  summary: List of email finder jobs
                  description: Example of successful email finder jobs list response
          description: ''
    post:
      operationId: email_finder_create
      description: >-
        Create a new job to find email addresses for the provided prospects.
        Each prospect requires first_name, last_name, and company_name. The
        company_domain field is optional and can help improve email finding
        accuracy if you know the company's web domain.


        **Webhook Support:** This endpoint supports webhooks. Include a
        `webhook_url` in your request to receive a POST notification when the
        job completes. The webhook will receive the same data as the GET detail
        endpoint.
      summary: Find emails in bulk
      tags:
        - Email Finder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailFinderJob'
            examples:
              EmailFinderJobCreate:
                value:
                  job_name: Tech Startup Email Hunt
                  webhook_url: https://myapp.com/webhook/email-finder
                  prospects:
                    - first_name: John
                      last_name: Doe
                      company_name: Example Corp
                      company_domain: example.com
                    - first_name: Jane
                      last_name: Smith
                      company_name: TechStart Inc
                summary: Create email finder job
                description: Example request to create a bulk email finder job
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmailFinderJob'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EmailFinderJob'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '202':
          description: Job accepted and processing started
        '400':
          description: Invalid request data
        '402':
          description: Insufficient credits
  /v1/email-finder/{id}/:
    get:
      operationId: email_finder_retrieve
      description: Retrieve the results of a specific email finder job
      summary: Get Email Finder job results
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
      tags:
        - Email Finder
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailFinderJobDetail'
              examples:
                CompleteEmailFinderJob:
                  value:
                    id: dcbcdb01-42a8-4efb-91a7-ce6a9ba01afb
                    status: complete
                    created_at: '2023-01-01T12:00:00Z'
                    updated_at: '2023-01-01T12:05:00Z'
                    progress: 100
                    error_message: 1 prospect failed.
                    prospects:
                      - id: 5371cd59-adc2-402f-af02-d40aee34f629
                        first_name: John
                        last_name: Doe
                        full_name: John Doe
                        company_name: Example Corp
                        company_domain: example.com
                        found_email: john.doe@example.com
                        email_validity: safe
                        status: complete
                        error_message: null
                      - id: 66a96f2a-085e-4f4f-992d-7eceac2efddd
                        first_name: Jane
                        last_name: Smith
                        full_name: Jane Smith
                        company_name: TechStart
                        company_domain: techstart.io
                        found_email: jane.smith@techstart.io
                        email_validity: riskier
                        status: complete
                        error_message: null
                      - id: 77b96f2a-085e-4f4f-992d-7eceac2efdde
                        first_name: Bob
                        last_name: Wilson
                        full_name: Bob Wilson
                        company_name: Unknown Company
                        company_domain: ''
                        found_email: null
                        email_validity: null
                        status: failed
                        error_message: 'Email not found: Email not found or unavailable'
                    job_type: email_finder
                  summary: Completed email finder job
                  description: >-
                    Example of a completed email finder job with prospect
                    results
          description: Email finder job results retrieved successfully
        '202':
          description: Job is still processing
        '404':
          description: Job not found
  /v1/email-validation/single/:
    post:
      operationId: email_validation_single_create
      description: |-
        Validate a single email address synchronously.
        Returns validation results immediately including deliverability status.
      summary: Verify an email
      tags:
        - Email Verifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleEmailValidationCreate'
            examples:
              SingleEmailValidationCreate:
                value:
                  email: john.doe@example.com
                summary: Validate single email
                description: Example request to validate a single email address
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SingleEmailValidationCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SingleEmailValidationCreate'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          description: Email validation completed successfully
        '400':
          description: Validation error or email validation failed
        '402':
          description: Insufficient credits
  /v1/email-validation/:
    get:
      operationId: email_validation_list
      description: List all email validation jobs created by the authenticated user
      summary: List email validation jobs
      tags:
        - Email Verifier
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EmailValidationJobList'
              examples:
                EmailValidationJobsList:
                  value:
                    - - id: 550e8400-e29b-41d4-a716-446655440000
                        status: complete
                        created_at: '2023-01-01T12:00:00Z'
                        updated_at: '2023-01-01T12:05:00Z'
                        progress: 100
                        error_message: null
                        prospect_count: '3'
                        job_type: email_validation
                      - id: 123e4567-e89b-12d3-a456-426614174000
                        status: running
                        created_at: '2023-01-02T14:30:00Z'
                        updated_at: '2023-01-02T14:32:00Z'
                        progress: 67
                        error_message: null
                        prospect_count: '10'
                        job_type: email_validation
                  summary: List of email validation jobs
                  description: Example of successful email validation jobs list response
          description: ''
    post:
      operationId: email_validation_create
      description: >-
        Create a new job to validate the provided email addresses.


        **Webhook Support:** This endpoint supports webhooks. Include a
        `webhook_url` in your request to receive a POST notification when the
        job completes. The webhook will receive the same data as the GET detail
        endpoint.
      summary: Create an email validation job
      tags:
        - Email Verifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailValidationJob'
            examples:
              EmailValidationJobCreate:
                value:
                  job_name: Email List Validation
                  webhook_url: https://myapp.com/webhook/email-validation
                  prospects:
                    - email: john.doe@example.com
                    - email: jane.smith@techstart.io
                    - email: contact@company.org
                summary: Create email validation job
                description: Example request to create a bulk email validation job
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmailValidationJob'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EmailValidationJob'
        required: true
      security:
        - BearerToken: []
        - Token: []
      responses:
        '202':
          description: Job accepted and processing started
        '400':
          description: Invalid request data
        '402':
          description: Insufficient credits
  /v1/email-validation/{id}/:
    get:
      operationId: email_validation_retrieve
      description: Retrieve the results of a specific email validation job
      summary: Get email validation job results
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
      tags:
        - Email Verifier
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailValidationJobDetail'
              examples:
                CompleteEmailValidationJob:
                  value:
                    id: 550e8400-e29b-41d4-a716-446655440000
                    status: complete
                    created_at: '2023-01-01T12:00:00Z'
                    updated_at: '2023-01-01T12:05:00Z'
                    progress: 100
                    error_message: null
                    prospects:
                      - id: 123e4567-e89b-12d3-a456-426614174000
                        email: john.doe@example.com
                        email_validity: safe
                        status: complete
                        error_message: null
                      - id: 234e5678-e89b-12d3-a456-426614174001
                        email: jane.smith@techstart.io
                        email_validity: riskier
                        status: complete
                        error_message: null
                      - id: 345e6789-e89b-12d3-a456-426614174002
                        email: invalid@nonexistentdomain12345.com
                        email_validity: null
                        status: failed
                        error_message: Invalid email domain
                    job_type: email_validation
                  summary: Completed email validation job
                  description: >-
                    Example of a completed email validation job with validation
                    results
          description: Email validation job results retrieved successfully
        '202':
          description: Job is still processing
        '404':
          description: Job not found
  /v1/quota/:
    get:
      operationId: quota_retrieve
      description: >-
        Retrieve information about the user's API usage quota: daily extraction
        limit, evaboot credits, sales navigator accounts available.
      summary: Get user quota information
      tags:
        - Account
      security:
        - BearerToken: []
        - Token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuotaResponse'
              examples:
                QuotaResponse:
                  value:
                    success: true
                    quota:
                      daily_limit: 2500
                      used_today: 250
                      remaining: 2250
                      credits: 1500
                      salesnavs:
                        - id: '123456789'
                          status: valid
                        - id: '987654321'
                          status: invalid
                  summary: Successful quota response
                  description: Example of successful quota API response
          description: User quota and credits information retrieved successfully
        '401':
          description: Authentication error
components:
  schemas:
    EmailFinderJob:
      type: object
      description: |-
        Serializer for creating email finder jobs.

        Includes nested serialization of prospects.
      properties:
        job_name:
          type: string
          maxLength: 255
        webhook_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        prospects:
          type: array
          items:
            $ref: '#/components/schemas/EmailFinderProspect'
      required:
        - job_name
        - prospects
    EmailFinderJobDetail:
      type: object
      description: |-
        Serializer for retrieving email finder jobs with results.

        Includes the progress percentage and all prospect details.
      properties:
        id:
          type: string
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/Status15bEnum'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        progress:
          type: integer
          readOnly: true
        error_message:
          type: string
          readOnly: true
          nullable: true
        prospects:
          type: array
          items:
            $ref: '#/components/schemas/EmailFinderProspectDetail'
          readOnly: true
        job_type:
          allOf:
            - $ref: '#/components/schemas/JobTypeEnum'
          readOnly: true
      required:
        - created_at
        - error_message
        - id
        - job_type
        - progress
        - prospects
        - status
        - updated_at
    EmailFinderJobList:
      type: object
      description: >-
        Serializer for listing email finder jobs.


        Includes the progress percentage and prospect count instead of full
        prospect details.
      properties:
        id:
          type: string
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/Status15bEnum'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        progress:
          type: integer
          readOnly: true
        error_message:
          type: string
          readOnly: true
          nullable: true
        prospect_count:
          type: string
          readOnly: true
        job_type:
          allOf:
            - $ref: '#/components/schemas/JobTypeEnum'
          readOnly: true
      required:
        - created_at
        - error_message
        - id
        - job_type
        - progress
        - prospect_count
        - status
        - updated_at
    EmailFinderProspect:
      type: object
      description: |-
        Serializer for creating email finder prospects.

        Used for creating new prospects as part of an email finder job.
      properties:
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        company_name:
          type: string
          maxLength: 200
        company_domain:
          type: string
          maxLength: 200
      required:
        - first_name
        - last_name
    EmailFinderProspectDetail:
      type: object
      description: |-
        Serializer for retrieving email finder prospect details.

        Used in the detail view to show results.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        first_name:
          type: string
          readOnly: true
        last_name:
          type: string
          readOnly: true
        full_name:
          type: string
          readOnly: true
        company_name:
          type: string
          readOnly: true
        company_domain:
          type: string
          readOnly: true
        found_email:
          type: string
          readOnly: true
          nullable: true
        email_validity:
          type: string
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/StatusF2dEnum'
          readOnly: true
        error_message:
          type: string
          readOnly: true
          nullable: true
      required:
        - company_domain
        - company_name
        - email_validity
        - error_message
        - first_name
        - found_email
        - full_name
        - id
        - last_name
        - status
    EmailValidationJob:
      type: object
      description: |-
        Serializer for creating email validation jobs.

        Includes nested serialization of prospects.
      properties:
        job_name:
          type: string
          maxLength: 255
        webhook_url:
          type: string
          format: uri
          nullable: true
          maxLength: 500
        prospects:
          type: array
          items:
            $ref: '#/components/schemas/EmailValidationProspect'
      required:
        - job_name
        - prospects
    EmailValidationJobDetail:
      type: object
      description: |-
        Serializer for retrieving email validation jobs with results.

        Includes the progress percentage and all prospect details.
      properties:
        id:
          type: string
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/Status15bEnum'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        progress:
          type: integer
          readOnly: true
        error_message:
          type: string
          readOnly: true
          nullable: true
        prospects:
          type: array
          items:
            $ref: '#/components/schemas/EmailValidationProspectDetail'
          readOnly: true
        job_type:
          allOf:
            - $ref: '#/components/schemas/JobTypeEnum'
          readOnly: true
      required:
        - created_at
        - error_message
        - id
        - job_type
        - progress
        - prospects
        - status
        - updated_at
    EmailValidationJobList:
      type: object
      description: >-
        Serializer for listing email validation jobs.


        Includes the progress percentage and prospect count instead of full
        prospect details.
      properties:
        id:
          type: string
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/Status15bEnum'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        progress:
          type: integer
          readOnly: true
        error_message:
          type: string
          readOnly: true
          nullable: true
        prospect_count:
          type: string
          readOnly: true
        job_type:
          allOf:
            - $ref: '#/components/schemas/JobTypeEnum'
          readOnly: true
      required:
        - created_at
        - error_message
        - id
        - job_type
        - progress
        - prospect_count
        - status
        - updated_at
    EmailValidationProspect:
      type: object
      description: |-
        Serializer for creating email validation prospects.

        Used for creating new prospects as part of an email validation job.
      properties:
        email:
          type: string
          format: email
          nullable: true
          maxLength: 255
    EmailValidationProspectDetail:
      type: object
      description: |-
        Serializer for retrieving email validation prospect details.

        Used in the detail view to show results.
        Does not include name fields for email validation jobs.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          nullable: true
        email_validity:
          type: string
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/StatusF2dEnum'
          readOnly: true
        error_message:
          type: string
          readOnly: true
          nullable: true
      required:
        - email
        - email_validity
        - error_message
        - id
        - status
    EnrichEmailEnum:
      enum:
        - none
        - matching
        - all
      type: string
      description: |-
        * `none` - none
        * `matching` - matching
        * `all` - all
    ExtractionDetail:
      type: object
      description: |-
        Serializer for retrieving extraction details.

        Includes all prospects for completed extractions.
      properties:
        search_id:
          type: string
          maxLength: 255
        search_name:
          type: string
          maxLength: 255
        status:
          type: string
          readOnly: true
        extraction_type:
          type: string
          readOnly: true
        total_prospects:
          type: integer
          description: Get the total number of prospects in the search.
          readOnly: true
        progress:
          type: integer
          description: |-
            Calculate progress percentage for the extraction.

            Returns:
                int: Progress percentage (0-100)
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        completed_at:
          type: string
          format: date-time
          readOnly: true
        prospects:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: |-
            Get all prospects for the search.

            Only included for completed extractions.
          readOnly: true
      required:
        - completed_at
        - created_at
        - extraction_type
        - progress
        - prospects
        - search_id
        - status
        - total_prospects
    ExtractionList:
      type: object
      description: |-
        Serializer for listing LinkedIn extractions.

        Provides summary information about each extraction.
      properties:
        search_id:
          type: string
          maxLength: 255
        search_name:
          type: string
          maxLength: 255
        status:
          type: string
          readOnly: true
        extraction_type:
          type: string
          readOnly: true
        total_prospects:
          type: integer
          description: Get the total number of prospects in the search.
          readOnly: true
        search_date_created:
          type: string
          format: date-time
      required:
        - extraction_type
        - search_id
        - status
        - total_prospects
    JobTypeEnum:
      enum:
        - email_finder
        - email_validation
      type: string
      description: |-
        * `email_finder` - Email Finder
        * `email_validation` - Email Validation
    ProfileExtractionCreate:
      type: object
      description: |-
        Serializer for creating profile-based LinkedIn extractions.

        Fields:
        - profile_ids: List of profile URLs or IDs to extract
        - search_name: Name for the extraction
        - webhook_url: Optional URL for notification
        - enrich_email: Email enrichment option
      properties:
        profile_ids:
          type: array
          items:
            type: string
          description: List of LinkedIn profile URLs or IDs to extract
          minItems: 1
        search_name:
          type: string
          description: Name for the extraction, used for identification and display
          maxLength: 255
        webhook_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Optional URL to receive a webhook notification when extraction
            completes
        enrich_email:
          allOf:
            - $ref: '#/components/schemas/EnrichEmailEnum'
          default: none
          description: >-
            Email enrichment option: none (no enrichment), matching (only
            prospects matching filters), all (all prospects)


            * `none` - none

            * `matching` - matching

            * `all` - all
      required:
        - profile_ids
        - search_name
    Quota:
      type: object
      description: Serializer for displaying user quota information.
      properties:
        daily_limit:
          type: integer
          description: Total daily extraction limit
        used_today:
          type: integer
          description: Number of extractions used today
        remaining:
          type: integer
          description: Number of extractions remaining today
        credits:
          type: number
          format: double
          description: Available credits for API operations
        salesnavs:
          type: array
          items:
            $ref: '#/components/schemas/SalesNavInfo'
          description: List of SalesNav accounts associated with this user
      required:
        - credits
        - daily_limit
        - remaining
        - salesnavs
        - used_today
    QuotaResponse:
      type: object
      description: Wrapper serializer for quota API response.
      properties:
        success:
          type: boolean
          description: Indicates if the request was successful
        quota:
          allOf:
            - $ref: '#/components/schemas/Quota'
          description: User quota information
      required:
        - quota
        - success
    SalesNavInfo:
      type: object
      description: Serializer for individual SalesNav account information.
      properties:
        id:
          type: string
          description: SalesNav account ID
        status:
          type: string
          description: Status of the SalesNav account (valid or invalid)
      required:
        - id
        - status
    SingleEmailFinderCreate:
      type: object
      description: >-
        Serializer for creating single email finder jobs.


        Fields:

        - first_name: First name of the person

        - last_name: Last name of the person

        - company_name: Name of the company (optional if company_domain
        provided)

        - company_domain: Domain of the company (optional if company_name
        provided)
      properties:
        first_name:
          type: string
          description: First name of the person
          maxLength: 100
        last_name:
          type: string
          description: Last name of the person
          maxLength: 100
        company_name:
          type: string
          description: Name of the company (required if company_domain not provided)
          maxLength: 200
        company_domain:
          type: string
          description: Domain of the company (required if company_name not provided)
          maxLength: 200
      required:
        - first_name
        - last_name
    SingleEmailValidationCreate:
      type: object
      description: |-
        Serializer for creating single email validation jobs.

        Fields:
        - email: Email address to validate
      properties:
        email:
          type: string
          format: email
          description: Email address to validate
          maxLength: 255
      required:
        - email
    SingleProfileExtractionCreate:
      type: object
      description: |-
        Serializer for creating single profile LinkedIn extraction.

        Fields:
        - profile_id: Single profile URL or ID to extract
        - enrich_email: Email enrichment option

        The extraction name is auto-generated and cannot be customized.
      properties:
        profile_id:
          type: string
          description: Single LinkedIn profile URL or ID to extract
        enrich_email:
          allOf:
            - $ref: '#/components/schemas/EnrichEmailEnum'
          default: none
          description: >-
            Email enrichment option: none (no enrichment), matching (only
            prospects matching filters), all (all prospects)


            * `none` - none

            * `matching` - matching

            * `all` - all
      required:
        - profile_id
    Status15bEnum:
      enum:
        - pending
        - running
        - complete
        - failed
      type: string
      description: |-
        * `pending` - Pending
        * `running` - Running
        * `complete` - Complete
        * `failed` - Failed
    StatusF2dEnum:
      enum:
        - pending
        - processing
        - complete
        - failed
      type: string
      description: |-
        * `pending` - Pending
        * `processing` - Processing
        * `complete` - Complete
        * `failed` - Failed
    URLExtractionCreate:
      type: object
      description: |-
        Serializer for creating URL-based LinkedIn extractions.

        Fields:
        - linkedin_url: URL to scrape
        - search_name: Name for the extraction
        - webhook_url: Optional URL for notification
        - enrich_email: Email enrichment option
      properties:
        linkedin_url:
          type: string
          format: uri
          description: LinkedIn Sales Navigator URL to extract data from
        search_name:
          type: string
          description: Name for the extraction, used for identification and display
          maxLength: 255
        webhook_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Optional URL to receive a webhook notification when extraction
            completes
        enrich_email:
          allOf:
            - $ref: '#/components/schemas/EnrichEmailEnum'
          default: none
          description: >-
            Email enrichment option: none (no enrichment), matching (only
            prospects matching filters), all (all prospects)


            * `none` - none

            * `matching` - matching

            * `all` - all
      required:
        - linkedin_url
        - search_name
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer
      description: >-
        Enter your API key from the Evaboot dashboard. The key will be used as a
        Bearer token. For example, if your API key is xyz, enter `xyz` (without
        any prefix).
servers:
  - url: https://api.evaboot.com
    description: Production Server
tags:
  - name: LinkedIn Extraction
    description: Operations for extracting profiles from LinkedIn
  - name: Email Finder
    description: Operations for finding email addresses
  - name: Email Verifier
    description: Operations for verifying email addresses
  - name: Account
    description: Account and quota management operations
