> ## 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 Company Deals

> Retrieve all deals for a company 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 company:
- `id` - Company UUID
- `domain` - Company domain or full URL (e.g., "stripe.com" or "https://stripe.com")
- `linkedin` - LinkedIn company URL
- `crunchbase` - Crunchbase organization URL

The response includes the company's deals with pagination. If the identifier matches multiple companies, deals from all matches are returned.




## OpenAPI

````yaml openapi/openapi-companies.yaml GET /company/deals
openapi: 3.0.3
info:
  title: Fundable Companies API
  description: >
    API for accessing company data including search, detailed company
    information, and filtered company 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.


    ## Company Identifiers

    Companies 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=stripe.com" or
    "?domain=https://stripe.com")

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

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


    ## Parameter Validation (for /companies endpoint)

    The /companies 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**: Numeric fields must be valid numbers, dates must be valid
    ISO 8601 format

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


    ## Semantic Search

    The /companies endpoint supports AI-powered semantic search via
    `company.search_query`.

    Think of it as a flexible replacement for an industry tag: use it to
    pinpoint a **niche

    industry or specific product type** by describing what a company does — its
    product,

    technology, or business model (e.g. "AI-powered medical imaging diagnostics"
    or "vertical

    SaaS for dental practices"). It is best for product/category targeting that
    the fixed

    industry list can't capture. It is not a keyword filter: do not put other
    attributes like

    stage, location, funding, or employee count in `search_query` — apply those
    with the

    dedicated filter fields instead, and combine them with semantic search.
    Results come back

    with a `similarity` score (0-1) and are sorted by relevance.
  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: companies
    description: Company data, search, and discovery operations
paths:
  /company/deals:
    get:
      summary: Get deals for a company by identifier
      description: >
        Retrieve all deals for a company 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 company:

        - `id` - Company UUID

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

        - `linkedin` - LinkedIn company URL

        - `crunchbase` - Crunchbase organization URL


        The response includes the company's deals with pagination. If the
        identifier matches multiple companies, deals from all matches are
        returned.
      operationId: getCompanyDeals
      parameters:
        - name: id
          in: query
          description: Company UUID
          required: false
          schema:
            type: string
            format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        - name: domain
          in: query
          description: >-
            Company domain or full URL (e.g., "stripe.com" or
            "https://stripe.com") — URLs are automatically parsed to extract the
            domain
          required: false
          schema:
            type: string
          example: stripe.com
        - name: linkedin
          in: query
          description: LinkedIn company URL
          required: false
          schema:
            type: string
          example: https://linkedin.com/company/stripe
        - name: crunchbase
          in: query
          description: Crunchbase organization URL
          required: false
          schema:
            type: string
          example: https://crunchbase.com/organization/stripe
        - 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 company
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      deals:
                        type: array
                        items:
                          $ref: '#/components/schemas/CompanyDeal'
                  meta:
                    type: object
                    properties:
                      total_count:
                        type: integer
                        description: Total number of deals for this company
                        example: 11
                      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=stripe.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 company 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 company 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:
    CompanyDeal:
      type: object
      description: >-
        Deal returned by the /company/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]`

````