> ## 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.

# Get Investor Deals

> Retrieve all deals for an investor using any supported identifier format.
The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the investor:
- `id` - Investor UUID
- `domain` - Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com")
- `linkedin` - LinkedIn company URL
- `crunchbase` - Crunchbase organization URL

The response includes the investor's deals with pagination. If the identifier matches multiple investors (e.g., a16z has multiple firms), deals from all matches are returned together.




## OpenAPI

````yaml openapi/openapi-investors.yaml GET /investor/deals
openapi: 3.0.3
info:
  title: Fundable Investors API
  description: >
    API for accessing investor data including search, detailed investor
    information, and filtered investor discovery.


    ## Authentication

    All API requests require authentication using an API key in the
    Authorization header.


    ## Rate Limits

    API usage is tracked and may be subject to monthly limits depending on your
    API key tier.


    ## Investor Identifiers

    Investors can be identified using query parameters with any of the following
    formats:

    - `id` - UUID format (e.g., "?id=550e8400-e29b-41d4-a716-446655440000")

    - `domain` - Domain or full URL (e.g., "?domain=sequoiacap.com" or
    "?domain=https://sequoiacap.com")

    - `linkedin` - LinkedIn company URL (e.g.,
    "?linkedin=https://linkedin.com/company/sequoia-capital")

    - `crunchbase` - Crunchbase organization URL (e.g.,
    "?crunchbase=https://crunchbase.com/organization/sequoia-capital")


    ## Parameter Validation (for /investors endpoint)

    The /investors endpoint (POST) enforces strict validation on the JSON
    request body:

    - **Unknown Fields**: Any field not in the allowed set will result in a `422
    UNKNOWN_PARAMETER` error

    - **Enum Values**: Fields like `financing_types`, `sort_by`,
    `employee_count`, and `ipo_status` only accept exact enum values

    - **Data Types**: Array fields must be arrays (not comma-separated strings),
    numeric fields must be numbers

    - **Array Fields**: Cannot be empty arrays; provide values or omit the field
    entirely

    - **Batch Limits**: Identifier batch lookups are limited to 100 items each


    ## Investor List Endpoint (/investors)

    The `/investors` endpoint accepts a POST request with a structured JSON body
    organized into three filter sections:


    ### `identifiers` — Investor lookup filters

    - `ids` — Investor UUIDs

    - `domains` — Investor domains (max 100)

    - `linkedin_urls` — Investor LinkedIn URLs (max 100)

    - `crunchbase_urls` — Investor Crunchbase URLs (max 100)


    ### `investor` — Entity-level filters

    - `locations` — Investor HQ location (permalinks)

    - `employee_count` — Investor firm employee count ranges


    ### `company_investments` — Portfolio filters

    - `search_query` — Semantic search; a flexible replacement for an industry
    tag. Targets a niche industry or specific product type by describing **what
    portfolio companies do** (product/technology/business model); not for other
    attributes like stage, location, or funding — use the dedicated fields
    below. Results ranked by portfolio relevance

    - `min_relevance` — Minimum relevance threshold (0–1) for the portfolio
    semantic search

    - `company_ids` — Specific portfolio companies (by UUID)

    - `industries`, `super_categories`, `locations` — Portfolio company
    attributes

    - `employee_count`, `ipo_status` — Portfolio company characteristics

    - `total_raised_min`, `total_raised_max` — Portfolio company total raised
    range

    - `financing_types`, `deal_size_min`, `deal_size_max`, `deal_start_date`,
    `deal_end_date` — Deal characteristics

    - `only_lead_deals` — Only count deals where investor was lead

    - `min_matching_deals` — Minimum deals matching above criteria


    When portfolio filters are active, each investor in the response includes
    `filtered_deal_count` and `filtered_lead_count`.
  version: 1.0.0
  contact:
    name: Fundable API Support
    url: 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: investors
    description: Investor data and search operations
paths:
  /investor/deals:
    get:
      summary: Get deals for an investor by identifier
      description: >
        Retrieve all deals for an investor using any supported identifier
        format.

        The API intelligently detects the identifier type and queries
        accordingly.


        Provide ONE of the following query parameters to identify the investor:

        - `id` - Investor UUID

        - `domain` - Investor domain or full URL (e.g., "sequoiacap.com" or
        "https://sequoiacap.com")

        - `linkedin` - LinkedIn company URL

        - `crunchbase` - Crunchbase organization URL


        The response includes the investor's deals with pagination. If the
        identifier matches multiple investors (e.g., a16z has multiple firms),
        deals from all matches are returned together.
      operationId: getInvestorDeals
      parameters:
        - name: id
          in: query
          description: Investor UUID
          required: false
          schema:
            type: string
            format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        - name: domain
          in: query
          description: >-
            Investor domain or full URL (e.g., "sequoiacap.com" or
            "https://sequoiacap.com") — URLs are automatically parsed to extract
            the domain
          required: false
          schema:
            type: string
          example: sequoiacap.com
        - name: linkedin
          in: query
          description: LinkedIn company URL
          required: false
          schema:
            type: string
          example: https://linkedin.com/company/sequoia-capital
        - name: crunchbase
          in: query
          description: Crunchbase organization URL
          required: false
          schema:
            type: string
          example: https://crunchbase.com/organization/sequoia-capital
        - name: page
          in: query
          description: Page number (0-based)
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
          example: 0
        - name: page_size
          in: query
          description: Number of results per page (1-500)
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 10
          example: 10
      responses:
        '200':
          description: Successful response with deals for the investor
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      deals:
                        type: array
                        items:
                          $ref: '#/components/schemas/InvestorDeal'
                  meta:
                    type: object
                    properties:
                      total_count:
                        type: integer
                        description: Total number of deals for this investor
                        example: 247
                      page:
                        type: integer
                        example: 0
                      page_size:
                        type: integer
                        example: 10
                      credits_used:
                        type: integer
                        description: Number of credits consumed by this request
                        example: 10
                      credit_source:
                        type: string
                        nullable: true
                        enum:
                          - monthly
                          - purchased
                        description: >-
                          Source of credits used (only included for non-API tier
                          keys)
                        example: monthly
                      monthly_credits_remaining:
                        type: integer
                        nullable: true
                        description: >-
                          Remaining monthly credits (only included for non-API
                          tier keys)
                        example: 990
                      purchased_credits_remaining:
                        type: integer
                        nullable: true
                        description: >-
                          Remaining purchased credits (only included for non-API
                          tier keys)
                        example: 500
                required:
                  - success
                  - data
                  - meta
        '400':
          description: Validation error (missing, multiple, or invalid identifier)
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - MISSING_IDENTIFIER
                          - MULTIPLE_IDENTIFIERS
                          - INVALID_PARAMETER
                          - INVALID_DOMAIN
                          - INVALID_LINKEDIN_URL
                          - INVALID_CRUNCHBASE_URL
                          - INVALID_PAGE
                          - INVALID_PAGE_SIZE
                        example: MISSING_IDENTIFIER
                      message:
                        type: string
                        example: An identifier parameter is required
                      details:
                        type: object
                        properties:
                          help:
                            type: string
                            example: >-
                              Provide one of: domain, linkedin, or crunchbase.
                              Example: ?domain=sequoiacap.com
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
        '402':
          description: Insufficient credits to complete request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsufficientCreditsError'
        '404':
          description: No investor found matching the provided identifier
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - NOT_FOUND
                        example: NOT_FOUND
                      message:
                        type: string
                        example: No investor found matching the provided identifier
                      details:
                        type: object
                        properties:
                          identifier_type:
                            type: string
                            example: domain
                          identifier_value:
                            type: string
                            example: nonexistent.com
        '429':
          description: Rate limit exceeded (per-minute)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying
              schema:
                type: integer
                example: 60
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
components:
  schemas:
    InvestorDeal:
      type: object
      description: >-
        Deal returned by the /investor/deals endpoint. Same shape as the Deal
        schema in the Deals API.
      properties:
        id:
          type: string
          format: uuid
        round_type:
          type: string
          nullable: true
        extension:
          type: boolean
          nullable: true
        intermediate:
          type: string
          nullable: true
        pre:
          type: boolean
          nullable: true
        date:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
          nullable: true
        total_round_raised:
          type: number
          nullable: true
        deal_descriptions:
          type: object
          nullable: true
          properties:
            short_description:
              type: string
              nullable: true
            long_description:
              type: string
              nullable: true
        company_id:
          type: string
          format: uuid
        investor_ids:
          type: array
          description: >-
            UUIDs of firm investors participating in this deal. Angels are
            surfaced separately in `angel_investor_ids`.
          items:
            type: string
            format: uuid
        angel_investor_ids:
          type: array
          description: >-
            UUIDs of angel investors (people) on this deal. Resolve via
            `/people/{id}`. Empty array when no angels.
          items:
            type: string
            format: uuid
        financings:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              type:
                type: string
              size_usd:
                type: number
                nullable: true
              size_native:
                type: number
                nullable: true
              currency:
                type: string
                nullable: true
        valuation:
          type: object
          nullable: true
          properties:
            valuation_currency:
              type: string
              nullable: true
            valuation_usd:
              type: number
              nullable: true
            valuation_native:
              type: number
              nullable: true
            type:
              type: string
      required:
        - id
        - company_id
        - investor_ids
        - angel_investor_ids
        - financings
    AuthError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - AUTH_ERROR
                - INVALID_API_KEY
                - INACTIVE_API_KEY
              example: AUTH_ERROR
            message:
              type: string
              example: API key not provided
            details:
              type: object
              properties:
                help:
                  type: string
                  example: Please provide your API key in the Authorization header
                format:
                  type: string
                  example: Bearer vg_your_api_key_here
      required:
        - error
    InsufficientCreditsError:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              example: INSUFFICIENT_CREDITS
            message:
              type: string
              example: >-
                Not enough credits to complete this request. Visit
                https://www.tryfundable.ai/api-access to purchase more.
            details:
              type: object
              properties:
                credits_needed:
                  type: integer
                  nullable: true
                  description: >-
                    Number of credits required (included when known
                    post-execution)
                  example: 25
                monthly_credits_remaining:
                  type: integer
                  description: Remaining monthly credits
                  example: 0
                purchased_credits_remaining:
                  type: integer
                  description: Remaining purchased credits
                  example: 0
                help:
                  type: string
                  example: >-
                    Purchase additional credits at
                    https://www.tryfundable.ai/api-access or upgrade your plan.
      required:
        - error
    RateLimitError:
      type: object
      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
                  description: Maximum requests allowed per window
                  example: 200
                window:
                  type: string
                  description: Rate limit window duration
                  example: 60 seconds
                help:
                  type: string
                  example: Please reduce your request frequency and try again.
      required:
        - error
    ServerError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: INTERNAL_SERVER_ERROR
            message:
              type: string
              example: An unexpected error occurred
            details:
              type: string
              nullable: true
              description: Error details (only in development mode)
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: |
        API key authentication using Bearer token format.
        Format: `Authorization: Bearer vg_your_api_key_here`

        API keys follow the pattern: `vg_[12_hex_chars]_[32_base64url_chars]`

````