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

# Person Email API

> Unlock a person's verified email by UUID, LinkedIn, Crunchbase, or Twitter identifier.



## OpenAPI

````yaml openapi.json GET /person/email
openapi: 3.0.3
info:
  title: Fundable API
  description: >-
    Canonical OpenAPI specification for the Fundable API. This file bundles the
    Deals, Companies, Investors, People, Alerts, Location, and Industry
    endpoints.
  version: 2.0.0
  contact:
    name: Fundable API Support
    url: mailto:jacob@tryfundable.ai
  license:
    name: Proprietary
    url: https://www.tryfundable.ai/terms/privacy/
servers:
  - url: https://www.tryfundable.ai/api/v1
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: deals
    description: Venture capital deals data
  - name: companies
    description: Company data, search, and discovery operations
  - name: investors
    description: Investor data and search operations
  - name: people
    description: People search and detail operations
  - name: alerts
    description: Saved alert configurations and deal data
  - name: locations
    description: Location search and utility operations
  - name: industries
    description: Industry and super category search operations
paths:
  /person/email:
    get:
      summary: Unlock a person's verified email by identifier
      description: >
        Return a verified email for a person identified by UUID, LinkedIn,
        Crunchbase,

        or Twitter/X. Provide one identifier. If multiple identifiers are
        supplied, the

        endpoint uses the first non-empty value in this order: `id`, `linkedin`,

        `crunchbase`, `twitter`.


        A newly created unlock costs 5 credits. Repeating the request for an
        email the

        same user already unlocked costs 0 credits. Unlock ownership persists
        across API

        keys belonging to that user. Provider attribution is internal and is not
        returned.


        Available on non-trial Pro+, Enterprise, and API plans.
      operationId: getPersonEmail
      parameters:
        - name: id
          in: query
          required: false
          description: Fundable person UUID
          schema:
            type: string
            format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        - name: linkedin
          in: query
          required: false
          description: LinkedIn person URL, slug, or supported normalized identifier
          schema:
            type: string
          example: https://www.linkedin.com/in/eladgil/
        - name: crunchbase
          in: query
          required: false
          description: Crunchbase person URL or supported normalized identifier
          schema:
            type: string
          example: https://www.crunchbase.com/person/jane-doe
        - name: twitter
          in: query
          required: false
          description: Twitter/X URL or handle
          schema:
            type: string
          example: https://x.com/janedoe
      responses:
        '200':
          description: Verified email returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonEmailResponse'
        '400':
          description: Missing or invalid person identifier
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonEmailError'
              example:
                success: false
                error:
                  code: MISSING_IDENTIFIER
                  message: Person identifier is required
                  details:
                    help: Provide id, linkedin, crunchbase, or twitter.
                statusCode: 400
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeopleAuthError'
        '402':
          description: Insufficient credits or monthly email-unlock allowance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonEmailError'
              example:
                success: false
                error:
                  code: INSUFFICIENT_CREDITS
                  message: Not enough credits to unlock this email
                  details:
                    credits_needed: 5
                    monthly_credits_remaining: 0
                    purchased_credits_remaining: 0
                statusCode: 402
        '403':
          description: Current subscription or trial status cannot unlock emails
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonEmailError'
              example:
                success: false
                error:
                  code: UPGRADE_REQUIRED
                  message: Email unlocks require a Pro+, Enterprise, or API plan.
                  details:
                    current_tier: Pro
                statusCode: 403
        '404':
          description: Person not found or no verified email available
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonEmailError'
              examples:
                person_not_found:
                  summary: Person not found
                  value:
                    success: false
                    error:
                      code: PERSON_NOT_FOUND
                      message: Person not found
                    statusCode: 404
                email_not_found:
                  summary: No verified email found
                  value:
                    success: false
                    error:
                      code: EMAIL_NOT_FOUND
                      message: No verified email was found for this person
                    statusCode: 404
        '429':
          description: Rate limit exceeded (per-minute)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeopleRateLimitError'
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                example: 60
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeopleServerError'
components:
  schemas:
    PersonEmailResponse:
      type: object
      required:
        - success
        - data
        - meta
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: object
          required:
            - person_id
            - email
            - already_unlocked
          properties:
            person_id:
              type: string
              format: uuid
              example: 550e8400-e29b-41d4-a716-446655440000
            email:
              type: string
              format: email
              example: jane@example.com
            already_unlocked:
              type: boolean
              description: True when this user previously unlocked the same email.
              example: false
        meta:
          type: object
          required:
            - page
            - page_size
            - credits_used
          properties:
            page:
              type: integer
              enum:
                - 0
            page_size:
              type: integer
              enum:
                - 1
            credits_used:
              type: integer
              enum:
                - 0
                - 5
              description: Five for a new unlock; zero when already unlocked.
            credit_source:
              type: string
              nullable: true
              enum:
                - monthly
                - purchased
              description: Omitted for API-tier keys.
            monthly_credits_remaining:
              type: integer
              nullable: true
              description: Omitted for API-tier keys.
            purchased_credits_remaining:
              type: integer
              nullable: true
              description: Omitted for API-tier keys.
    PersonEmailError:
      type: object
      required:
        - success
        - error
        - statusCode
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - MISSING_IDENTIFIER
                - INVALID_ID
                - INVALID_IDENTIFIER
                - INSUFFICIENT_CREDITS
                - UPGRADE_REQUIRED
                - PERSON_NOT_FOUND
                - EMAIL_NOT_FOUND
            message:
              type: string
            details:
              type: object
              additionalProperties: true
              properties:
                help:
                  type: string
                current_tier:
                  type: string
                credits_needed:
                  type: integer
                  nullable: true
                monthly_credits_remaining:
                  type: integer
                  nullable: true
                purchased_credits_remaining:
                  type: integer
                  nullable: true
                email_unlock_limit_exceeded:
                  type: boolean
                email_unlock_limit:
                  type: integer
                  nullable: true
                email_unlock_used:
                  type: integer
                  nullable: true
        statusCode:
          type: integer
          enum:
            - 400
            - 402
            - 403
            - 404
    PeopleAuthError:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - AUTH_ERROR
                - INVALID_API_KEY
                - INACTIVE_API_KEY
            message:
              type: string
            details:
              type: object
              properties:
                help:
                  type: string
    PeopleRateLimitError:
      type: object
      description: Per-minute API rate limit exceeded
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              example: RATE_LIMIT_EXCEEDED
            message:
              type: string
              example: Rate limit exceeded. Maximum 200 requests per minute.
            details:
              type: object
              properties:
                limit:
                  type: integer
                  example: 200
                window:
                  type: string
                  example: 60 seconds
                help:
                  type: string
      required:
        - error
    PeopleServerError:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              example: INTERNAL_SERVER_ERROR
            message:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key provided as a Bearer token

````