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

# Search Companies

> Look up companies using one of four search methods. Exactly one parameter must be provided.

**Search types:**
- `name` — Fuzzy name search with relevance scoring
- `domain` — Company domain or full URL
- `linkedin` — LinkedIn company URL
- `crunchbase` — Crunchbase organization URL

Examples:
- `?linkedin=https://linkedin.com/company/stripe`
- `?crunchbase=https://crunchbase.com/organization/notion`




## OpenAPI

````yaml openapi/openapi-companies.yaml GET /company/search
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/search:
    get:
      summary: Search for a company by name, domain, LinkedIn, or Crunchbase
      description: >
        Look up companies using one of four search methods. Exactly one
        parameter must be provided.


        **Search types:**

        - `name` — Fuzzy name search with relevance scoring

        - `domain` — Company domain or full URL

        - `linkedin` — LinkedIn company URL

        - `crunchbase` — Crunchbase organization URL


        Examples:

        - `?linkedin=https://linkedin.com/company/stripe`

        - `?crunchbase=https://crunchbase.com/organization/notion`
      operationId: searchCompanies
      parameters:
        - name: name
          in: query
          description: Fuzzy search by company name
          required: false
          schema:
            type: string
          example: stripe
        - 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/notion
      responses:
        '200':
          description: Successful search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      companies:
                        type: array
                        items:
                          $ref: '#/components/schemas/CompanySearchResult'
                  meta:
                    type: object
                    properties:
                      total_count:
                        type: integer
                        description: Number of companies returned
                        example: 1
                      page:
                        type: integer
                        example: 0
                      page_size:
                        type: integer
                        example: 1
                      credits_used:
                        type: integer
                        description: Number of credits consumed by this request
                        example: 0
                      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 parameters)
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - MISSING_SEARCH_PARAMS
                          - MULTIPLE_SEARCH_PARAMS
                          - EMPTY_SEARCH_TERM
                          - INVALID_DOMAIN
                          - INVALID_LINKEDIN_URL
                          - INVALID_CRUNCHBASE_URL
                        example: MULTIPLE_SEARCH_PARAMS
                      message:
                        type: string
                        example: Only one search parameter is allowed at a time
                      details:
                        type: object
                        properties:
                          help:
                            type: string
                            example: >-
                              You provided: name, domain. Please use only one
                              of: name, domain, linkedin, or crunchbase
        '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'
        '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:
    CompanySearchResult:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the company
          example: 550e8400-e29b-41d4-a716-446655440000
        guru_permalink:
          type: string
          nullable: true
          description: Fundable permalink for the company
          example: acme-corporation
        name:
          type: string
          description: Company name
          example: Acme Corporation
        short_description:
          type: string
          nullable: true
          description: Brief description of the company
          example: AI-powered solutions for modern enterprises
        relevance_score:
          type: number
          description: Search relevance score (0-1)
          example: 0.95
        domain:
          type: string
          nullable: true
          description: Company website domain
          example: acme.com
        linkedin:
          type: string
          nullable: true
          description: LinkedIn profile URL
        crunchbase:
          type: string
          nullable: true
          description: Crunchbase profile URL
    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]`

````