> ## Documentation Index
> Fetch the complete documentation index at: https://www.datalegion.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Person Bulk Enrichment (Beta)

> Person Bulk Enrichment API endpoint: match and enrich up to 50 people in a single request, each item billed independently and returned in input order.

Enrich up to **50 people in a single request**. Each item is matched and billed exactly like a standalone [`/person/enrich`](/docs/api-reference/person-enrichment) call. Bulk is a throughput tool, not a discount or a latency shortcut.

## How it works

* **Per item**: send the identifiers you already have for each record. Every item accepts the full set of `/person/enrich` identifiers and options (see [Person Enrichment](/docs/api-reference/person-enrichment) for the minimum-requirement rules).
* **Defaults vs. overrides**: top-level flags (`multiple_results` and `limit`, an enterprise feature switched on per account, `min_confidence`, `include_fields`, `exclude_fields`, ...) apply to every item. Set the same flag on an individual item to override the default for that item.
* **Order preserved**: `results` are returned in the same order as `items`. Each slot independently reports its `matches`, or an `error` if that item didn't match. A per-item failure never fails the whole batch.
* **Synchronous**: all results come back in one response. There is no job ID or polling.

## Billing

Each item is billed exactly like a standalone `/person/enrich` call, following your account's existing billing model. Bulk is a throughput convenience and doesn't change your pricing. An upfront check verifies the maximum possible cost of the batch before processing.

## Identifiers and metadata

Each item carries the same identifiers as single enrichment, plus an optional `metadata` object (up to 10 keys) that is echoed back unchanged on that item's result so you can map results to your own records. Values must be primitive: string, number, or boolean. Nested objects and arrays are rejected.

```json theme={null}
{
  "items": [
    { "email": "jane.doe@example.com", "metadata": { "row": "1" } },
    { "phone": "+15551234567", "metadata": { "row": "2" } },
    { "first_name": "John", "last_name": "Doe", "company": "Acme Corp", "metadata": { "row": "3" } }
  ]
}
```

## Limits and rate limits

| Limit | Value |
| - | - |
| Max items per request | **50** |
| Default rate limit | **10 requests/min** (each up to 50 records) |
| Max payload size | 1 MB |

<Note>
  The default rate limit is intended for evaluation. Higher limits can be provisioned per API key or account-wide. [Contact us](https://www.datalegion.ai/get-started) with your peak concurrent rate.
</Note>

## Batch size guidance

* **Real-time** (interactive SLA): keep batches small (10–20 items).
* **Asynchronous backfill**: use full 50-item batches and fan out multiple requests concurrently.


## OpenAPI

````yaml api-reference/bulk-spec.json POST /person/enrich/bulk
openapi: 3.1.0
info:
  title: Data Legion API
  description: API for enriching, searching, and discovering person and company data
  version: 1.0.0
servers:
  - url: https://api.datalegion.ai
security:
  - APIKeyHeader: []
paths:
  /person/enrich/bulk:
    post:
      tags:
        - person
        - enrichment
      summary: Bulk enrich persons
      description: >-
        Enrich up to 50 persons in a single request. Each item is matched and
        billed independently, exactly like a standalone /person/enrich call.
        Top-level flags act as defaults; per-item flags override them. Results
        are returned in input order, and each item independently reports its
        matches or an error (a per-item failure does not fail the batch).
        Synchronous: all results are returned in one response (no polling).
        Default rate limit: 10 requests/min, each request up to 50 records.
      operationId: bulk_enrich_person_person_enrich_bulk_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPersonEnrichRequest'
      responses:
        '200':
          description: >-
            Per-item results, in input order (each item is a match set or an
            error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPersonEnrichResponse'
              example:
                results:
                  - matches:
                      - person:
                          legion_id: fdd85569-f0f0-53a9-bc60-089507193c28
                          full_name: jane marie doe
                          work_email: jane.doe@techcompany.com
                        match_metadata:
                          matched_on:
                            - email
                          match_type: exact
                          match_confidence: high
                    total: 1
                    metadata:
                      row: '1'
                  - error: No person found matching the provided parameters.
                    metadata:
                      row: '2'
        '400':
          description: >-
            Bad request - malformed batch (e.g. empty items or more than 50
            items)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Insufficient credits for the maximum possible cost of the batch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - API key not permitted for this endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '413':
          description: Payload too large - request body exceeds the 1 MB limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error - invalid field format or value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: >-
            Too many requests - rate limit exceeded (default 10 requests per
            minute)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: >-
            Service unavailable - database or service temporarily unavailable;
            retry after the seconds in the Retry-After header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    BulkPersonEnrichRequest:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 50
          title: Items
          description: List of enrichment requests (1-50 items).
          items:
            $ref: '#/components/schemas/BulkPersonItem'
        multiple_results:
          type: boolean
          title: Multiple Results
          description: >-
            Default for all items: if true, return multiple matches sorted by
            confidence. Enterprise only: enabled per account (ask your account
            manager or support@datalegion.ai); without it the request answers
            403 feature_not_available. Each match returned is billed.
          default: false
        limit:
          type: integer
          maximum: 10
          minimum: 1
          title: Limit
          description: >-
            Default for all items: maximum number of results per item when
            multiple_results=true (default: 2, max: 10).
          default: 2
        min_confidence:
          anyOf:
            - type: string
            - type: 'null'
          title: Min Confidence
          description: >-
            Default for all items: minimum match confidence level to include
            ('high', 'moderate', or 'low').
        titlecase:
          type: boolean
          title: Titlecase
          description: 'Default for all items: if true, format text fields in title case.'
          default: false
        required_fields:
          anyOf:
            - type: string
            - type: 'null'
          title: Required Fields
          description: >-
            Default for all items: comma-separated list of fields that must be
            present, else the match is filtered out.
        include_fields:
          anyOf:
            - type: string
            - type: 'null'
          title: Include Fields
          description: >-
            Default for all items: comma-separated list of fields to include in
            the response. If omitted, all fields are returned.
        exclude_fields:
          anyOf:
            - type: string
            - type: 'null'
          title: Exclude Fields
          description: >-
            Default for all items: comma-separated list of fields to exclude
            from the response. Applied after include_fields.
        pretty_print:
          type: boolean
          title: Pretty Print
          description: If true, pretty-print the JSON response with indentation.
          default: false
      title: BulkPersonEnrichRequest
      description: >-
        Bulk person enrichment request. Top-level flags act as defaults applied
        to every item; per-item flags override them.
      example:
        items:
          - email: jane.doe@example.com
            metadata:
              row: '1'
          - phone: '+15551234567'
            metadata:
              row: '2'
          - first_name: John
            last_name: Doe
            company: Acme Corp
            metadata:
              row: '3'
    BulkPersonEnrichResponse:
      type: object
      required:
        - results
      properties:
        results:
          type: array
          title: Results
          description: Per-item results, in the same order as the input items.
          items:
            $ref: '#/components/schemas/BulkPersonItemResult'
      title: BulkPersonEnrichResponse
      description: Bulk person enrichment response.
    ErrorResponse:
      properties:
        error:
          type: string
          title: Error
          description: Error type/code
        message:
          type: string
          title: Message
          description: Human-readable error message
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - items: {}
              type: array
            - type: 'null'
          title: Details
          description: Additional error details (for validation errors)
      type: object
      required:
        - error
        - message
      title: ErrorResponse
      description: Error response model for customer-facing API.
    BulkPersonItem:
      allOf:
        - $ref: '#/components/schemas/EnrichmentRequest'
        - type: object
          properties:
            metadata:
              anyOf:
                - additionalProperties: true
                  type: object
                - type: 'null'
              title: Metadata
              description: >-
                Optional key-value object (max 10 keys) echoed back unchanged on
                this item's result, for correlating results to your records.
                Values must be primitive (string, number, or boolean); nested
                objects and arrays are rejected.
      title: BulkPersonItem
      description: >-
        A single person enrichment request within a bulk call. Accepts every
        /person/enrich identifier and option, plus optional metadata. Per-item
        flags override the top-level defaults.
    BulkPersonItemResult:
      type: object
      properties:
        matches:
          type: array
          title: Matches
          description: >-
            Matches for this item (present on success), capped at the item's
            limit.
          items:
            $ref: '#/components/schemas/PersonMatchResponse'
        total:
          type: integer
          title: Total
          description: Number of matches found for this item.
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: >-
            Error message when this item could not be matched (e.g. no match or
            invalid input). Per-item failures are isolated; other items still
            succeed.
        metadata:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Metadata
          description: The metadata you supplied for this item, echoed back unchanged.
      title: BulkPersonItemResult
      description: >-
        Result for one item in a bulk person request. Each slot independently
        reports matches or an error, with your metadata echoed back.
    EnrichmentRequest:
      properties:
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Email
          description: Email address (will be normalized)
        email_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Email Hash
          description: >-
            SHA-256 (64 chars), SHA-1 (40 chars), or MD5 (32 chars) hash of
            normalized email address (for privacy)
        phone:
          anyOf:
            - type: string
            - type: 'null'
          title: Phone
          description: Phone number (will be normalized to E.164)
        linkedin_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Linkedin Id
          description: LinkedIn numeric ID
        social_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Social Url
          description: >-
            Social profile URL (LinkedIn, Twitter/X, GitHub, Facebook - will be
            normalized and detected)
        legion_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Legion Id
          description: Legion ID (exact match)
        full_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Full Name
          description: Full name (will be normalized)
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
          description: First name (will be normalized)
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
          description: Last name (will be normalized)
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
          description: >-
            Full address string (will be parsed to extract city, state,
            postal_code, and country)
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
          description: City name
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
          description: State name or code
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
          description: Country name or code
        postal_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Postal Code
          description: Postal/ZIP code
        job_title:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Title
          description: Job title
        company:
          anyOf:
            - type: string
            - type: 'null'
          title: Company
          description: Company name, website, or social URL
        school:
          anyOf:
            - type: string
            - type: 'null'
          title: School
          description: School name, website, or social URL
        birth_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Date
          description: >-
            Birth date for matching or narrowing name-based results (YYYY-MM-DD,
            YYYY-MM, or YYYY). Can be used as name + birth_date lookup or as a
            qualifier on other name-based combos.
        multiple_results:
          type: boolean
          title: Multiple Results
          description: >-
            If true, return multiple matches sorted by confidence. Enterprise
            only: enabled per account (ask your account manager or
            support@datalegion.ai); without it the request answers 403
            feature_not_available. Each match returned is billed.
          default: false
        limit:
          type: integer
          maximum: 10
          minimum: 1
          title: Limit
          description: >-
            Maximum number of results to return when multiple_results=true
            (default: 2, max: 10)
          default: 2
        min_confidence:
          anyOf:
            - type: string
            - type: 'null'
          title: Min Confidence
          description: >-
            Minimum match confidence level to include in results: 'high',
            'moderate', or 'low'. Matches below this threshold will be filtered
            out.
        titlecase:
          type: boolean
          title: Titlecase
          description: >-
            If true, format text fields in title case (names, job titles,
            company names, locations, skills, headlines). Raw fields, IDs, URLs,
            codes, and confidence fields are excluded.
          default: false
        required_fields:
          anyOf:
            - type: string
            - type: 'null'
          title: Required Fields
          description: >-
            Comma-separated list of fields that must be present, else the match
            is filtered out. Supports top-level fields ('work_email,phones'), a
            non-empty list subfield ('emails.type'), or a subfield equal to a
            value ('emails.type:personal', 'phones.type:mobile',
            'socials.network:linkedin'). Unknown field names or out-of-range
            enum values return HTTP 400.
        include_fields:
          anyOf:
            - type: string
            - type: 'null'
          title: Include Fields
          description: >-
            Comma-separated list of fields to include in response. If omitted,
            all fields are returned.
        exclude_fields:
          anyOf:
            - type: string
            - type: 'null'
          title: Exclude Fields
          description: >-
            Comma-separated list of fields to exclude from response. Applied
            after include_fields filter.
        pretty_print:
          type: boolean
          title: Pretty Print
          description: If true, pretty-print JSON response with indentation.
          default: false
      type: object
      title: EnrichmentRequest
      description: >-
        Request model for person enrichment. Requires a primary identifier
        (email, phone, social_url, linkedin_id, legion_id, email_hash) OR name +
        context (location, company, school, job_title, birth_date).
      example:
        city: San Francisco
        company: Acme Corp
        email: john.doe@example.com
        first_name: John
        last_name: Doe
        state: CA
    PersonMatchResponse:
      properties:
        person:
          $ref: '#/components/schemas/PersonResponse'
        match_metadata:
          anyOf:
            - $ref: '#/components/schemas/MatchMetadata'
            - type: 'null'
      type: object
      required:
        - person
      title: PersonMatchResponse
      description: Person response with optional match metadata.
    PersonResponse:
      properties:
        legion_id:
          type: string
          title: Legion Id
        full_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Full Name
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
        middle_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Middle Name
        middle_initial:
          anyOf:
            - type: string
            - type: 'null'
          title: Middle Initial
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
        last_initial:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Initial
        suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Suffix
        prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Prefix
        sex:
          anyOf:
            - type: string
            - type: 'null'
          title: Sex
        birth_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Birth Date
        birth_year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Birth Year
        birth_month:
          anyOf:
            - type: integer
            - type: 'null'
          title: Birth Month
        birth_day:
          anyOf:
            - type: integer
            - type: 'null'
          title: Birth Day
        age:
          anyOf:
            - type: integer
            - type: 'null'
          title: Age
        work_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Work Email
        mobile_phone:
          anyOf:
            - type: string
            - type: 'null'
          title: Mobile Phone
        linkedin_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Linkedin Url
        linkedin_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Linkedin Id
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
        state_code:
          anyOf:
            - type: string
            - type: 'null'
          title: State Code
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
        country_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Code
        job_title:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Title
        company_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Name
        company_domain:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Domain
        company_industry:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Industry
        company_size:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Size
        company_legion_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Legion Id
        company_linkedin_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Linkedin Url
        company_linkedin_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Linkedin Id
        seniority_level:
          anyOf:
            - type: string
            - type: 'null'
          title: Seniority Level
        job_function:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Function
        expense_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Expense Category
        is_decision_maker:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Decision Maker
        is_platform_worker:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Platform Worker
        years_of_experience:
          anyOf:
            - type: integer
            - type: 'null'
          title: Years Of Experience
        avg_tenure_months:
          anyOf:
            - type: number
            - type: 'null'
          title: Avg Tenure Months
        highest_degree_level:
          anyOf:
            - type: string
            - type: 'null'
          title: Highest Degree Level
        current_jobs_last_confirmed:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Jobs Last Confirmed
        current_jobs_last_updated:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Jobs Last Updated
        current_location_last_confirmed:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Location Last Confirmed
        current_location_last_updated:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Location Last Updated
        linkedin_followers:
          anyOf:
            - type: integer
            - type: 'null'
          title: Linkedin Followers
        linkedin_connections:
          anyOf:
            - type: integer
            - type: 'null'
          title: Linkedin Connections
        headline:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        summary:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        num_sources:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Sources
        last_seen:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Seen
        build_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Build Version
        phones:
          items:
            $ref: '#/components/schemas/PhoneResponse'
          type: array
          title: Phones
          default: []
        emails:
          items:
            $ref: '#/components/schemas/EmailResponse'
          type: array
          title: Emails
          default: []
        locations:
          items:
            $ref: '#/components/schemas/LocationResponse'
          type: array
          title: Locations
          default: []
        experience:
          items:
            $ref: '#/components/schemas/ExperienceResponse'
          type: array
          title: Experience
          default: []
        education:
          items:
            $ref: '#/components/schemas/EducationResponse'
          type: array
          title: Education
          default: []
        certifications:
          items:
            $ref: '#/components/schemas/CertificationResponse'
          type: array
          title: Certifications
          default: []
        socials:
          items:
            $ref: '#/components/schemas/SocialResponse'
          type: array
          title: Socials
          default: []
        skills:
          items:
            $ref: '#/components/schemas/SkillResponse'
          type: array
          title: Skills
          default: []
        languages:
          items:
            $ref: '#/components/schemas/LanguageResponse'
          type: array
          title: Languages
          default: []
      type: object
      required:
        - legion_id
      title: PersonResponse
      description: Complete person enrichment response.
    MatchMetadata:
      properties:
        matched_on:
          items:
            type: string
          type: array
          title: Matched On
          description: Fields that matched between request and person
        match_type:
          type: string
          title: Match Type
          description: 'Type of match: exact, fuzzy, or partial'
        match_confidence:
          type: string
          title: Match Confidence
          description: 'Match confidence level: high, moderate, or low'
      type: object
      required:
        - match_type
        - match_confidence
      title: MatchMetadata
      description: Metadata about the match.
    CleanedRawResponse:
      properties:
        cleaned:
          anyOf:
            - type: string
            - type: 'null'
          title: Cleaned
        raw:
          items:
            type: string
          type: array
          title: Raw
          default: []
      type: object
      title: CleanedRawResponse
      description: >-
        Generic {cleaned, raw[]} structure used for titles, degrees, headlines,
        summaries, skills, languages, and certification names/institutions.
    PhoneResponse:
      properties:
        type:
          anyOf:
            - type: string
            - type: 'null'
          title: Type
        number:
          anyOf:
            - type: string
            - type: 'null'
          title: Number
        current:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Current
        confidence:
          anyOf:
            - type: string
            - type: 'null'
          title: Confidence
        last_seen:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Seen
        num_sources:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Sources
      type: object
      title: PhoneResponse
      description: Phone number response.
    EmailResponse:
      properties:
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
        type:
          anyOf:
            - type: string
            - type: 'null'
          title: Type
        current:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Current
        validated:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Validated
        confidence:
          anyOf:
            - type: string
            - type: 'null'
          title: Confidence
        last_seen:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Seen
        num_sources:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Sources
        validation_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Validation Status
        hash_sha256:
          anyOf:
            - type: string
            - type: 'null'
          title: Hash Sha256
        hash_sha1:
          anyOf:
            - type: string
            - type: 'null'
          title: Hash Sha1
        hash_md5:
          anyOf:
            - type: string
            - type: 'null'
          title: Hash Md5
      type: object
      title: EmailResponse
      description: Email response.
    LocationResponse:
      properties:
        street_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Street Address
        address_line_2:
          anyOf:
            - type: string
            - type: 'null'
          title: Address Line 2
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
        state_code:
          anyOf:
            - type: string
            - type: 'null'
          title: State Code
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
        country_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Code
        continent:
          anyOf:
            - type: string
            - type: 'null'
          title: Continent
        continent_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Continent Code
        postal_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Postal Code
        postal_code_4:
          anyOf:
            - type: string
            - type: 'null'
          title: Postal Code 4
        geo:
          anyOf:
            - type: string
            - type: 'null'
          title: Geo
        raw:
          items:
            type: string
          type: array
          title: Raw
          default: []
        current:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Current
        num_sources:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Sources
        confidence:
          anyOf:
            - type: string
            - type: 'null'
          title: Confidence
        last_seen:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Seen
      type: object
      title: LocationResponse
      description: Location response.
    ExperienceResponse:
      properties:
        title:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        seniority_level:
          anyOf:
            - type: string
            - type: 'null'
          title: Seniority Level
        job_function:
          anyOf:
            - type: string
            - type: 'null'
          title: Job Function
        expense_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Expense Category
        is_decision_maker:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Decision Maker
        is_platform_worker:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Platform Worker
        organization:
          anyOf:
            - $ref: '#/components/schemas/ExperienceOrganizationResponse'
            - type: 'null'
        start_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Date
        end_date:
          anyOf:
            - type: string
            - type: 'null'
          title: End Date
        current:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Current
        tenure_months:
          anyOf:
            - type: integer
            - type: 'null'
          title: Tenure Months
        description:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
      type: object
      title: ExperienceResponse
      description: Experience entry response.
    EducationResponse:
      properties:
        organization:
          anyOf:
            - $ref: '#/components/schemas/EducationOrganizationResponse'
            - type: 'null'
        degree:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        degree_level:
          anyOf:
            - type: string
            - type: 'null'
          title: Degree Level
        field_of_study:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        start_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Date
        end_date:
          anyOf:
            - type: string
            - type: 'null'
          title: End Date
        current:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Current
      type: object
      title: EducationResponse
      description: Education entry response.
    CertificationResponse:
      properties:
        name:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        institution:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        credential_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Credential Id
        issue_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Issue Date
        expiration_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Expiration Date
      type: object
      title: CertificationResponse
      description: Certification entry response.
    SocialResponse:
      properties:
        network:
          anyOf:
            - type: string
            - type: 'null'
          title: Network
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        username:
          anyOf:
            - type: string
            - type: 'null'
          title: Username
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        current:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Current
        num_sources:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Sources
        confidence:
          anyOf:
            - type: string
            - type: 'null'
          title: Confidence
        last_seen:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Seen
      type: object
      title: SocialResponse
      description: Social response.
    SkillResponse:
      properties:
        cleaned:
          anyOf:
            - type: string
            - type: 'null'
          title: Cleaned
        raw:
          items:
            type: string
          type: array
          title: Raw
          default: []
      type: object
      title: SkillResponse
      description: Skill response.
    LanguageResponse:
      properties:
        cleaned:
          anyOf:
            - type: string
            - type: 'null'
          title: Cleaned
        raw:
          items:
            type: string
          type: array
          title: Raw
          default: []
        proficiency:
          anyOf:
            - type: string
            - type: 'null'
          title: Proficiency
      type: object
      title: LanguageResponse
      description: Language response.
    ExperienceOrganizationResponse:
      properties:
        name:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        website:
          anyOf:
            - type: string
            - type: 'null'
          title: Website
        linkedin_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Linkedin Url
        linkedin_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Linkedin Id
        industry:
          anyOf:
            - type: string
            - type: 'null'
          title: Industry
        size:
          anyOf:
            - type: string
            - type: 'null'
          title: Size
        legion_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Legion Id
      type: object
      title: ExperienceOrganizationResponse
      description: Organization within an experience entry.
    EducationOrganizationResponse:
      properties:
        name:
          anyOf:
            - $ref: '#/components/schemas/CleanedRawResponse'
            - type: 'null'
        website:
          anyOf:
            - type: string
            - type: 'null'
          title: Website
        linkedin_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Linkedin Url
      type: object
      title: EducationOrganizationResponse
      description: Organization within an education entry.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: API-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.