{
  "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": []
    }
  ],
  "paths": {
    "/deals": {
      "post": {
        "summary": "Search and filter funding rounds by company, investor, and round details",
        "description": "Retrieve venture capital deals with advanced filtering, pagination, and sorting.\n\n## Request Body Structure\nSend a JSON body with up to 4 filter sections plus pagination/sort at the top level:\n- `identifiers` - Look up specific deals by UUID\n- `deal` - Filter by deal attributes (financing type, size, date)\n- `company` - Filter by company attributes (location, industry, size)\n- `investors` - Filter by investor participation (firms or people, by UUID)\n",
        "operationId": "searchDeals",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "example": {
                  "page_size": 10
                },
                "properties": {
                  "identifiers": {
                    "type": "object",
                    "description": "Look up specific deals by identifier",
                    "properties": {
                      "deal_ids": {
                        "type": "array",
                        "description": "Deal UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "550e8400-e29b-41d4-a716-446655440000"
                        ]
                      }
                    }
                  },
                  "deal": {
                    "type": "object",
                    "description": "Deal attribute filters",
                    "properties": {
                      "financing_types": {
                        "type": "array",
                        "description": "Financing types with optional modifiers (pre, extension)",
                        "items": {
                          "type": "object",
                          "required": [
                            "type"
                          ],
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "SERIES_A",
                                "SERIES_B",
                                "SERIES_C",
                                "SERIES_D",
                                "SERIES_E",
                                "SERIES_F",
                                "SERIES_G",
                                "SERIES_H",
                                "SERIES_I",
                                "SERIES_J",
                                "SERIES_K",
                                "SERIES_L",
                                "SERIES_M",
                                "SEED",
                                "SAFE",
                                "CONVERTIBLE_NOTE",
                                "EQUITY",
                                "PREFERRED",
                                "SECONDARY_MARKET",
                                "DEBT_FINANCING",
                                "GRANT",
                                "NON_EQUITY_ASSISTANCE",
                                "CROWDFUNDING",
                                "INITIAL_COIN_OFFERING",
                                "FUNDING_ROUND"
                              ]
                            },
                            "pre": {
                              "type": "boolean",
                              "default": false,
                              "description": "Pre-round modifier (e.g., Pre-Seed, Pre-Series A)"
                            },
                            "extension": {
                              "type": "boolean",
                              "default": false,
                              "description": "Extension round modifier"
                            }
                          }
                        },
                        "example": [
                          {
                            "type": "SEED",
                            "pre": true
                          },
                          {
                            "type": "SERIES_A"
                          }
                        ]
                      },
                      "size_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum deal size (USD)",
                        "example": 1000000
                      },
                      "size_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum deal size (USD)",
                        "example": 100000000
                      },
                      "date_start": {
                        "type": "string",
                        "format": "date",
                        "description": "Filter deals announced after this date (ISO 8601)",
                        "example": "2024-01-01"
                      },
                      "date_end": {
                        "type": "string",
                        "format": "date",
                        "description": "Filter deals announced before this date (ISO 8601)",
                        "example": "2024-12-31"
                      },
                      "created_start": {
                        "type": "string",
                        "format": "date",
                        "description": "Filter deals added to the system after this date (ISO 8601)",
                        "example": "2024-01-01"
                      },
                      "created_end": {
                        "type": "string",
                        "format": "date",
                        "description": "Filter deals added to the system before this date (ISO 8601)",
                        "example": "2024-12-31"
                      }
                    }
                  },
                  "company": {
                    "type": "object",
                    "description": "Company attribute filters",
                    "properties": {
                      "company_ids": {
                        "type": "array",
                        "description": "Company UUIDs - filter deals by specific companies",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "550e8400-e29b-41d4-a716-446655440001"
                        ]
                      },
                      "locations": {
                        "type": "array",
                        "description": "Location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "san-francisco-california",
                          "california"
                        ]
                      },
                      "industries": {
                        "type": "array",
                        "description": "Industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "artificial-intelligence",
                          "fintech-e067"
                        ]
                      },
                      "super_categories": {
                        "type": "array",
                        "description": "Super category permalinks (automatically includes related industries). Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "artificial-intelligence-e551"
                        ]
                      },
                      "employee_count": {
                        "type": "array",
                        "description": "Employee count ranges. Valid: 1-10, 11-50, 51-100, 101-250, 251-500, 501-1000, 1001-5000, 5001-10000, 10001+",
                        "items": {
                          "type": "string",
                          "enum": [
                            "1-10",
                            "11-50",
                            "51-100",
                            "101-250",
                            "251-500",
                            "501-1000",
                            "1001-5000",
                            "5001-10000",
                            "10001+"
                          ]
                        },
                        "example": [
                          "1-10",
                          "11-50"
                        ]
                      },
                      "ipo_status": {
                        "type": "array",
                        "description": "IPO status filter. Valid: public, private",
                        "items": {
                          "type": "string",
                          "enum": [
                            "public",
                            "private"
                          ]
                        },
                        "example": [
                          "private"
                        ]
                      },
                      "total_raised_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum total raised (USD)",
                        "example": 10000000
                      },
                      "total_raised_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum total raised (USD)",
                        "example": 500000000
                      }
                    }
                  },
                  "investors": {
                    "type": "object",
                    "description": "Filter by investor participation (firms or people)",
                    "properties": {
                      "investor_ids": {
                        "type": "array",
                        "description": "Investor UUIDs (firms)",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
                        ]
                      },
                      "people_ids": {
                        "type": "array",
                        "description": "Person UUIDs \u2014 matches deals where any of these people participated as an\n**angel investor** OR as a **lead partner** of an investing firm.\nResolve via `/people/{id}`.\n",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "b3e9c7d1-2f4a-4d5e-9c1b-7a8f3e2d1c6a"
                        ]
                      }
                    }
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 0,
                    "default": 0,
                    "description": "Page number (0-based)"
                  },
                  "page_size": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "default": 10,
                    "description": "Number of results per page"
                  },
                  "sort_by": {
                    "type": "string",
                    "enum": [
                      "most_recent_deal",
                      "oldest_deal",
                      "largest_raise",
                      "smallest_raise"
                    ],
                    "default": "most_recent_deal",
                    "description": "Sort order for results"
                  }
                }
              },
              "examples": {
                "empty": {
                  "summary": "Empty request (no filters)",
                  "value": {
                    "page_size": 5
                  }
                },
                "filter_by_financing": {
                  "summary": "Filter by financing type",
                  "value": {
                    "deal": {
                      "financing_types": [
                        {
                          "type": "SERIES_A"
                        },
                        {
                          "type": "SERIES_B"
                        }
                      ]
                    },
                    "page_size": 10
                  }
                },
                "filter_pre_seed": {
                  "summary": "Filter for pre-seed deals",
                  "value": {
                    "deal": {
                      "financing_types": [
                        {
                          "type": "SEED",
                          "pre": true
                        }
                      ]
                    },
                    "page_size": 10
                  }
                },
                "filter_by_company": {
                  "summary": "Filter by company attributes",
                  "value": {
                    "company": {
                      "industries": [
                        "artificial-intelligence"
                      ],
                      "ipo_status": [
                        "private"
                      ]
                    },
                    "deal": {
                      "size_min": 5000000,
                      "size_max": 100000000
                    },
                    "page_size": 10
                  }
                },
                "lookup_by_ids": {
                  "summary": "Look up specific deals",
                  "value": {
                    "identifiers": {
                      "deal_ids": [
                        "550e8400-e29b-41d4-a716-446655440000"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response with deals data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deals": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Deal"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Total number of deals matching the filter criteria",
                          "example": 1547
                        },
                        "page": {
                          "type": "integer",
                          "description": "Current page number (0-based)",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "description": "Number of results per page",
                          "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": "Bad Request - Invalid parameter types or malformed JSON",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Parameter validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/deals/{id}": {
      "get": {
        "summary": "Get a specific deal by ID",
        "description": "Retrieve detailed information about a single venture capital deal by its unique identifier",
        "operationId": "getDealById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique identifier for the deal (UUID format)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4b20cafe-c22b-441a-8378-53436e1d9edf"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with deal data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deal": {
                          "$ref": "#/components/schemas/Deal"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 1
                        },
                        "credits_used": {
                          "type": "integer",
                          "description": "Number of credits consumed by this request",
                          "example": 1
                        },
                        "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": "Bad Request - Invalid deal ID format or unsupported query parameters",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "success": {
                          "type": "boolean",
                          "example": false
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "INVALID_DEAL_ID"
                            },
                            "message": {
                              "type": "string",
                              "example": "Deal ID must be a valid UUID"
                            },
                            "details": {
                              "type": "object",
                              "properties": {
                                "help": {
                                  "type": "string",
                                  "example": "Please provide a valid UUID format for the deal ID"
                                }
                              }
                            }
                          }
                        },
                        "statusCode": {
                          "type": "integer",
                          "example": 400
                        }
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "success": {
                          "type": "boolean",
                          "example": false
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "INVALID_PARAMETERS"
                            },
                            "message": {
                              "type": "string",
                              "example": "Query parameters are not supported for this endpoint"
                            },
                            "details": {
                              "type": "object",
                              "properties": {
                                "providedParameters": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "example": [
                                    "page",
                                    "sort_by"
                                  ]
                                },
                                "help": {
                                  "type": "string",
                                  "example": "This endpoint only accepts a deal ID in the path. Remove all query parameters."
                                }
                              }
                            }
                          }
                        },
                        "statusCode": {
                          "type": "integer",
                          "example": 400
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "404": {
            "description": "Deal not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "DEAL_NOT_FOUND"
                        },
                        "message": {
                          "type": "string",
                          "example": "Deal not found"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "help": {
                              "type": "string",
                              "example": "Please check the deal ID and try again"
                            }
                          }
                        }
                      }
                    },
                    "statusCode": {
                      "type": "integer",
                      "example": 404
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/deals/{id}/investors": {
      "get": {
        "summary": "Get investors for a specific deal",
        "description": "Retrieve detailed investor information for a single deal, including lead status, personnel, and investor profile links.",
        "operationId": "getDealInvestors",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique identifier for the deal (UUID format)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4b20cafe-c22b-441a-8378-53436e1d9edf"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with deal investors",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "investors": {
                          "type": "array",
                          "description": "Firm investors on this deal. Angels are surfaced separately in `angel_investors`.",
                          "items": {
                            "$ref": "#/components/schemas/DealInvestor"
                          }
                        },
                        "angel_investors": {
                          "type": "array",
                          "description": "Angel investors (individuals) on this deal. Empty array when no angels.",
                          "items": {
                            "$ref": "#/components/schemas/AngelInvestor"
                          }
                        }
                      },
                      "required": [
                        "investors",
                        "angel_investors"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 1
                        },
                        "credits_used": {
                          "type": "integer",
                          "description": "Number of credits consumed by this request",
                          "example": 1
                        },
                        "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": "Bad Request - Invalid deal ID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "404": {
            "description": "Deal not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "DEAL_NOT_FOUND"
                        },
                        "message": {
                          "type": "string",
                          "example": "Deal not found"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/company": {
      "get": {
        "summary": "Get company details and recent funding by identifier",
        "description": "Retrieve detailed company information using any supported identifier format.\nThe API intelligently detects the identifier type and queries accordingly.\n\nProvide ONE of the following query parameters to identify the company:\n- `id` - Company UUID\n- `domain` - Company domain or full URL (e.g., \"stripe.com\" or \"https://stripe.com\")\n- `linkedin` - LinkedIn company URL\n- `crunchbase` - Crunchbase organization URL\n\nThe response includes the company's latest funding round details with participating investors.\n",
        "operationId": "getCompany",
        "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\") \u2014 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"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with company data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "company": {
                          "$ref": "#/components/schemas/CompanyDetails"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 1
                        },
                        "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": "Bad request - missing identifier or invalid format",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Missing identifier error",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "MISSING_IDENTIFIER"
                        },
                        "message": {
                          "type": "string",
                          "example": "Company identifier is required"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "help": {
                              "type": "string",
                              "example": "Provide an identifier using one of the query parameters: id, domain, linkedin, or crunchbase"
                            },
                            "examples": {
                              "type": "object",
                              "properties": {
                                "byDomain": {
                                  "type": "string",
                                  "example": "/api/v1/company?domain=stripe.com"
                                },
                                "byLinkedIn": {
                                  "type": "string",
                                  "example": "/api/v1/company?linkedin=https://linkedin.com/company/stripe"
                                },
                                "byCrunchbase": {
                                  "type": "string",
                                  "example": "/api/v1/company?crunchbase=https://crunchbase.com/organization/stripe"
                                },
                                "byId": {
                                  "type": "string",
                                  "example": "/api/v1/company?id=550e8400-e29b-41d4-a716-446655440000"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "404": {
            "description": "Company not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/company/deals": {
      "get": {
        "summary": "Get deals for a company by identifier",
        "description": "Retrieve all deals for a company using any supported identifier format.\nThe API intelligently detects the identifier type and queries accordingly.\n\nProvide ONE of the following query parameters to identify the company:\n- `id` - Company UUID\n- `domain` - Company domain or full URL (e.g., \"stripe.com\" or \"https://stripe.com\")\n- `linkedin` - LinkedIn company URL\n- `crunchbase` - Crunchbase organization URL\n\nThe response includes the company's deals with pagination. If the identifier matches multiple companies, deals from all matches are returned.\n",
        "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\") \u2014 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"
                }
              }
            }
          },
          "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"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/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.\n\n**Search types:**\n- `name` \u2014 Fuzzy name search with relevance scoring\n- `domain` \u2014 Company domain or full URL\n- `linkedin` \u2014 LinkedIn company URL\n- `crunchbase` \u2014 Crunchbase organization URL\n\nExamples:\n- `?linkedin=https://linkedin.com/company/stripe`\n- `?crunchbase=https://crunchbase.com/organization/notion`\n",
        "operationId": "searchCompany",
        "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\") \u2014 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"
                }
              }
            }
          }
        }
      }
    },
    "/companies": {
      "post": {
        "summary": "Search and filter companies with recent funding details",
        "description": "Retrieve companies with advanced filtering, pagination, sorting, and optional AI-powered semantic search.\n\n## Request Body Structure\nSend a JSON body with up to 4 filter sections plus pagination/sort at the top level:\n- `identifiers` - Look up specific companies by UUID, domain, LinkedIn, or Crunchbase\n- `company` - Filter by company attributes (search, location, industry, size, etc.)\n- `latest_deal` - Filter by latest funding round attributes (type, size, date, investors)\n- `investors` - Filter by investors (firms or people) across all rounds\n",
        "operationId": "searchCompanies",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "example": {
                  "page_size": 10
                },
                "properties": {
                  "identifiers": {
                    "type": "object",
                    "description": "Look up specific companies by identifier",
                    "properties": {
                      "ids": {
                        "type": "array",
                        "description": "Company UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "97ae048e-77bc-471b-821a-f9decb373689"
                        ]
                      },
                      "domains": {
                        "type": "array",
                        "description": "Company domains (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "stripe.com",
                          "airbnb.com"
                        ]
                      },
                      "linkedin_urls": {
                        "type": "array",
                        "description": "LinkedIn company URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://linkedin.com/company/stripe",
                          "https://linkedin.com/company/airbnb"
                        ]
                      },
                      "crunchbase_urls": {
                        "type": "array",
                        "description": "Crunchbase organization URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://crunchbase.com/organization/stripe",
                          "https://crunchbase.com/organization/airbnb"
                        ]
                      }
                    }
                  },
                  "company": {
                    "type": "object",
                    "description": "Company attribute filters",
                    "properties": {
                      "search_query": {
                        "type": "string",
                        "description": "AI-powered semantic search \u2014 a flexible replacement for an industry tag. Use it to target a niche industry or specific product type by describing what the company does \u2014 its product, technology, or business model (e.g. \"AI-powered medical imaging diagnostics\" or \"vertical SaaS for dental practices\"). Best for product/category targeting the fixed industry list can't capture. Do NOT use it for other attributes like stage, location, funding, or employee count \u2014 apply those with the dedicated filter fields instead. Results include a similarity score and are sorted by relevance.",
                        "example": "AI-powered medical imaging diagnostics software"
                      },
                      "min_relevance": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Minimum similarity threshold (0-1). Only applies with search_query.",
                        "example": 0.5
                      },
                      "locations": {
                        "type": "array",
                        "description": "Location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "san-francisco-california",
                          "california"
                        ]
                      },
                      "industries": {
                        "type": "array",
                        "description": "Industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "artificial-intelligence",
                          "fintech-e067"
                        ]
                      },
                      "super_categories": {
                        "type": "array",
                        "description": "Super category permalinks (automatically includes related industries). Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "artificial-intelligence-e551"
                        ]
                      },
                      "employee_count": {
                        "type": "array",
                        "description": "Employee count ranges. Valid: 1-10, 11-50, 51-100, 101-250, 251-500, 501-1000, 1001-5000, 5001-10000, 10001+",
                        "items": {
                          "type": "string",
                          "enum": [
                            "1-10",
                            "11-50",
                            "51-100",
                            "101-250",
                            "251-500",
                            "501-1000",
                            "1001-5000",
                            "5001-10000",
                            "10001+"
                          ]
                        },
                        "example": [
                          "1-10",
                          "11-50"
                        ]
                      },
                      "ipo_status": {
                        "type": "array",
                        "description": "IPO status filter. Valid: public, private",
                        "items": {
                          "type": "string",
                          "enum": [
                            "public",
                            "private"
                          ]
                        },
                        "example": [
                          "private"
                        ]
                      },
                      "total_raised_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum total raised (USD)",
                        "example": 10000000
                      },
                      "total_raised_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum total raised (USD)",
                        "example": 500000000
                      }
                    }
                  },
                  "latest_deal": {
                    "type": "object",
                    "description": "Latest funding round filters",
                    "properties": {
                      "financing_types": {
                        "type": "array",
                        "description": "Financing types with optional modifiers (pre, extension)",
                        "items": {
                          "type": "object",
                          "required": [
                            "type"
                          ],
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "SERIES_A",
                                "SERIES_B",
                                "SERIES_C",
                                "SERIES_D",
                                "SERIES_E",
                                "SERIES_F",
                                "SERIES_G",
                                "SERIES_H",
                                "SERIES_I",
                                "SERIES_J",
                                "SERIES_K",
                                "SERIES_L",
                                "SERIES_M",
                                "SEED",
                                "SAFE",
                                "CONVERTIBLE_NOTE",
                                "EQUITY",
                                "PREFERRED",
                                "SECONDARY_MARKET",
                                "DEBT_FINANCING",
                                "GRANT",
                                "NON_EQUITY_ASSISTANCE",
                                "CROWDFUNDING",
                                "INITIAL_COIN_OFFERING",
                                "FUNDING_ROUND"
                              ]
                            },
                            "pre": {
                              "type": "boolean",
                              "default": false,
                              "description": "Pre-round modifier (e.g., Pre-Seed, Pre-Series A)"
                            },
                            "extension": {
                              "type": "boolean",
                              "default": false,
                              "description": "Extension round modifier"
                            }
                          }
                        },
                        "example": [
                          {
                            "type": "SEED",
                            "pre": true
                          },
                          {
                            "type": "SERIES_A"
                          }
                        ]
                      },
                      "size_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum deal size (USD)",
                        "example": 1000000
                      },
                      "size_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum deal size (USD)",
                        "example": 100000000
                      },
                      "date_start": {
                        "type": "string",
                        "format": "date",
                        "description": "Latest deal after this date (ISO 8601)",
                        "example": "2024-01-01"
                      },
                      "date_end": {
                        "type": "string",
                        "format": "date",
                        "description": "Latest deal before this date (ISO 8601)",
                        "example": "2024-12-31"
                      },
                      "created_start": {
                        "type": "string",
                        "format": "date",
                        "description": "Latest deal record added to the system on or after this date (ISO 8601). Filters by ingestion date (`created_at`), not the announcement date \u2014 useful for finding rounds newly added to Fundable.",
                        "example": "2024-01-01"
                      },
                      "created_end": {
                        "type": "string",
                        "format": "date",
                        "description": "Latest deal record added to the system on or before this date (ISO 8601). Filters by ingestion date (`created_at`), not the announcement date.",
                        "example": "2024-12-31"
                      },
                      "investor_ids": {
                        "type": "array",
                        "description": "Filter by investors who participated in the latest deal only",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
                        ]
                      }
                    }
                  },
                  "investors": {
                    "type": "object",
                    "description": "Filter by investors (firms or people) across all funding rounds",
                    "properties": {
                      "investor_ids": {
                        "type": "array",
                        "description": "Investor UUIDs \u2014 matches companies where these investors participated in any round ever",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
                        ]
                      },
                      "people_ids": {
                        "type": "array",
                        "description": "Person UUIDs \u2014 matches companies where any of these people participated in any round\nas an **angel investor** OR as a **lead partner** of an investing firm.\nResolve via `/people/{id}`.\n",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "b3e9c7d1-2f4a-4d5e-9c1b-7a8f3e2d1c6a"
                        ]
                      }
                    }
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 0,
                    "default": 0,
                    "description": "Page number (0-based)"
                  },
                  "page_size": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "default": 10,
                    "description": "Number of results per page"
                  },
                  "sort_by": {
                    "type": "string",
                    "enum": [
                      "most_recent_raise",
                      "oldest_raise",
                      "most_recent_founded",
                      "oldest_founded",
                      "largest_valuation",
                      "smallest_valuation",
                      "largest_total_raise",
                      "smallest_total_raise",
                      "most_funding_rounds",
                      "most_investors"
                    ],
                    "default": "most_recent_raise",
                    "description": "Sort order. Ignored when search_query is provided (sorted by relevance)."
                  }
                }
              },
              "examples": {
                "empty": {
                  "summary": "Empty request (no filters)",
                  "value": {
                    "page_size": 5
                  }
                },
                "filter_only": {
                  "summary": "Filter by IPO status and industry",
                  "value": {
                    "company": {
                      "ipo_status": [
                        "private"
                      ],
                      "industries": [
                        "artificial-intelligence"
                      ]
                    },
                    "latest_deal": {
                      "financing_types": [
                        {
                          "type": "SERIES_A"
                        },
                        {
                          "type": "SERIES_B"
                        }
                      ]
                    },
                    "page_size": 10
                  }
                },
                "semantic_search": {
                  "summary": "AI-powered semantic search",
                  "value": {
                    "company": {
                      "search_query": "AI healthcare diagnostics startups"
                    },
                    "page_size": 5
                  }
                },
                "batch_lookup": {
                  "summary": "Look up specific companies by domain",
                  "value": {
                    "identifiers": {
                      "domains": [
                        "stripe.com",
                        "airbnb.com",
                        "notion.so"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response with companies data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "companies": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CompanyListItem"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Total number of companies matching the filter criteria",
                          "example": 1547
                        },
                        "page": {
                          "type": "integer",
                          "description": "Current page number (0-based)",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "description": "Number of results per page",
                          "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": "Bad Request - Invalid parameter types",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompaniesValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Unknown parameter provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompaniesValidationError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/investors": {
      "post": {
        "summary": "List and filter investors",
        "description": "Retrieve a paginated list of investors with optional filtering.\n\n## Request Body Structure\nSend a JSON body with up to 3 filter sections plus pagination/sort at the top level:\n- `identifiers` - Look up specific investors by UUID, domain, LinkedIn, or Crunchbase\n- `investor` - Filter by investor entity attributes (location, employee count)\n- `company_investments` - Filter by portfolio (industries, deal characteristics, etc.). Supports semantic search via `search_query` + `min_relevance`.\n\nWhen `company_investments` filters are active, each investor in the response includes `filtered_deal_count` and `filtered_lead_count`.\n",
        "operationId": "listInvestors",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "example": {
                  "page_size": 10
                },
                "properties": {
                  "identifiers": {
                    "type": "object",
                    "description": "Investor lookup filters (OR'd together)",
                    "properties": {
                      "ids": {
                        "type": "array",
                        "description": "Investor UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
                        ]
                      },
                      "domains": {
                        "type": "array",
                        "description": "Investor domains (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "sequoiacap.com",
                          "a16z.com"
                        ]
                      },
                      "linkedin_urls": {
                        "type": "array",
                        "description": "Investor LinkedIn URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://linkedin.com/company/sequoia-capital",
                          "https://linkedin.com/company/andreessen-horowitz"
                        ]
                      },
                      "crunchbase_urls": {
                        "type": "array",
                        "description": "Investor Crunchbase URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://crunchbase.com/organization/sequoia-capital",
                          "https://crunchbase.com/organization/andreessen-horowitz"
                        ]
                      }
                    }
                  },
                  "investor": {
                    "type": "object",
                    "description": "Investor entity-level filters",
                    "properties": {
                      "locations": {
                        "type": "array",
                        "description": "Investor HQ location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "san-francisco-california",
                          "menlo-park-california"
                        ]
                      },
                      "employee_count": {
                        "type": "array",
                        "description": "Investor firm employee count ranges",
                        "items": {
                          "type": "string",
                          "enum": [
                            "1-10",
                            "11-50",
                            "51-100",
                            "101-250",
                            "251-500",
                            "501-1000",
                            "1001-5000",
                            "5001-10000",
                            "10001+"
                          ]
                        },
                        "example": [
                          "11-50",
                          "51-100"
                        ]
                      }
                    }
                  },
                  "company_investments": {
                    "type": "object",
                    "description": "Portfolio filters (filter by companies the investor has invested in)",
                    "properties": {
                      "company_ids": {
                        "type": "array",
                        "description": "Portfolio company UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "97ae048e-77bc-471b-821a-f9decb373689"
                        ]
                      },
                      "search_query": {
                        "type": "string",
                        "description": "AI-powered semantic search matched against each investor's\nportfolio companies \u2014 a flexible replacement for an industry tag.\nUse it to target a niche industry or specific product type by\ndescribing what those companies do \u2014 their product, technology, or\nbusiness model (e.g. \"climate-focused carbon capture hardware\"). Do\nNOT use it for other attributes like stage, location, or funding \u2014\napply those with the dedicated `company_investments` and `investor`\nfilter fields instead. When provided, results are ranked by how\nclosely an investor's portfolio matches the query rather than the\ndefault sort.\n",
                        "example": "climate-focused carbon capture hardware"
                      },
                      "min_relevance": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Minimum relevance score threshold (0\u20131) for the portfolio-based\nsemantic search. Only applies when `search_query` is provided.\nInvestors whose portfolio match score falls below this threshold\nare excluded. Defaults to 0 (return all results).\n",
                        "example": 0.5
                      },
                      "locations": {
                        "type": "array",
                        "description": "Portfolio company location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "san-francisco-california"
                        ]
                      },
                      "industries": {
                        "type": "array",
                        "description": "Portfolio company industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "artificial-intelligence",
                          "fintech-e067"
                        ]
                      },
                      "super_categories": {
                        "type": "array",
                        "description": "Broad industry super-category permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "financial-services-d7b6"
                        ]
                      },
                      "employee_count": {
                        "type": "array",
                        "description": "Portfolio company employee count ranges",
                        "items": {
                          "type": "string",
                          "enum": [
                            "1-10",
                            "11-50",
                            "51-100",
                            "101-250",
                            "251-500",
                            "501-1000",
                            "1001-5000",
                            "5001-10000",
                            "10001+"
                          ]
                        },
                        "example": [
                          "11-50",
                          "51-100"
                        ]
                      },
                      "ipo_status": {
                        "type": "array",
                        "description": "Portfolio company IPO status",
                        "items": {
                          "type": "string",
                          "enum": [
                            "public",
                            "private"
                          ]
                        },
                        "example": [
                          "private"
                        ]
                      },
                      "total_raised_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum total raised by portfolio companies (USD)",
                        "example": 10000000
                      },
                      "total_raised_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum total raised by portfolio companies (USD)",
                        "example": 500000000
                      },
                      "financing_types": {
                        "type": "array",
                        "description": "Financing types with optional modifiers (pre, extension)",
                        "items": {
                          "type": "object",
                          "required": [
                            "type"
                          ],
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "SERIES_A",
                                "SERIES_B",
                                "SERIES_C",
                                "SERIES_D",
                                "SERIES_E",
                                "SERIES_F",
                                "SERIES_G",
                                "SERIES_H",
                                "SERIES_I",
                                "SERIES_J",
                                "SERIES_K",
                                "SERIES_L",
                                "SERIES_M",
                                "SEED",
                                "SAFE",
                                "CONVERTIBLE_NOTE",
                                "EQUITY",
                                "PREFERRED",
                                "SECONDARY_MARKET",
                                "DEBT_FINANCING",
                                "GRANT",
                                "NON_EQUITY_ASSISTANCE",
                                "CROWDFUNDING",
                                "INITIAL_COIN_OFFERING",
                                "FUNDING_ROUND"
                              ]
                            },
                            "pre": {
                              "type": "boolean",
                              "default": false,
                              "description": "Pre-round modifier (e.g., Pre-Seed, Pre-Series A)"
                            },
                            "extension": {
                              "type": "boolean",
                              "default": false,
                              "description": "Extension round modifier"
                            }
                          }
                        },
                        "example": [
                          {
                            "type": "SERIES_A"
                          },
                          {
                            "type": "SERIES_B"
                          }
                        ]
                      },
                      "deal_size_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum deal size (USD)",
                        "example": 1000000
                      },
                      "deal_size_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum deal size (USD)",
                        "example": 100000000
                      },
                      "deal_start_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Filter deals on or after this date (ISO 8601)",
                        "example": "2023-01-01"
                      },
                      "deal_end_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Filter deals on or before this date (ISO 8601)",
                        "example": "2024-12-31"
                      },
                      "only_lead_deals": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, only count deals where investor was lead"
                      },
                      "min_matching_deals": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Minimum number of deals matching the portfolio filters",
                        "example": 3
                      }
                    }
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 0,
                    "default": 0,
                    "description": "Page number (0-based)"
                  },
                  "page_size": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "default": 10,
                    "description": "Number of results per page (max 500)"
                  },
                  "sort_by": {
                    "type": "string",
                    "enum": [
                      "most_recent_deal",
                      "recent_deals",
                      "deals_led_ltm",
                      "total_deals",
                      "matching_deals"
                    ],
                    "default": "most_recent_deal",
                    "description": "Sort order for results.\n- **most_recent_deal** \u2014 Date of most recent investment (newest first)\n- **recent_deals** \u2014 Deals in last 12 months (highest first)\n- **deals_led_ltm** \u2014 Lead deals in last 12 months (highest first)\n- **total_deals** \u2014 All-time deal count (highest first)\n- **matching_deals** \u2014 Deals matching portfolio filters (highest first)\n"
                  }
                }
              },
              "examples": {
                "empty": {
                  "summary": "Empty request (no filters)",
                  "value": {
                    "page_size": 5
                  }
                },
                "filter_only": {
                  "summary": "Investors in SF investing in AI Series A/B rounds",
                  "value": {
                    "investor": {
                      "locations": [
                        "san-francisco-california"
                      ]
                    },
                    "company_investments": {
                      "industries": [
                        "artificial-intelligence"
                      ],
                      "financing_types": [
                        {
                          "type": "SERIES_A"
                        },
                        {
                          "type": "SERIES_B"
                        }
                      ],
                      "deal_start_date": "2023-01-01"
                    },
                    "page": 0,
                    "page_size": 25,
                    "sort_by": "most_recent_deal"
                  }
                },
                "batch_lookup": {
                  "summary": "Look up specific investors by domain",
                  "value": {
                    "identifiers": {
                      "domains": [
                        "sequoiacap.com",
                        "a16z.com"
                      ]
                    }
                  }
                },
                "semantic_search": {
                  "summary": "Semantic search for climate-focused investors with AI portfolio",
                  "value": {
                    "company_investments": {
                      "search_query": "climate-focused deep tech startups"
                    },
                    "page": 0,
                    "page_size": 25
                  }
                },
                "lead_investors_recent": {
                  "summary": "Active lead investors with at least 3 matching deals",
                  "value": {
                    "company_investments": {
                      "industries": [
                        "fintech"
                      ],
                      "only_lead_deals": true,
                      "min_matching_deals": 3,
                      "deal_start_date": "2024-01-01"
                    },
                    "sort_by": "deals_led_ltm",
                    "page_size": 50
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response with paginated investor list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "investors": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/InvestorListItem"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Total number of investors matching filters",
                          "example": 142
                        },
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 25
                        },
                        "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 (invalid values)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParameterValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "422": {
            "description": "Unknown parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParameterValidationError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/investor": {
      "get": {
        "summary": "Get investor details and statistics by identifier",
        "description": "Retrieve detailed investor information using any supported identifier format.\nThe API intelligently detects the identifier type and queries accordingly.\n\nProvide ONE of the following query parameters to identify the investor:\n- `id` - Investor UUID\n- `domain` - Investor domain or full URL (e.g., \"sequoiacap.com\" or \"https://sequoiacap.com\")\n- `linkedin` - LinkedIn company URL\n- `crunchbase` - Crunchbase organization URL\n\nThe response includes the investor's statistics, portfolio summary, and profile links.\n",
        "operationId": "getInvestorByIdentifier",
        "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\") \u2014 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"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with investor data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "investor": {
                          "$ref": "#/components/schemas/Investor"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 1
                        },
                        "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 or invalid identifier)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParameterValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "404": {
            "description": "Investor not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestorsNotFoundError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/investor/deals": {
      "get": {
        "summary": "Get deals for an investor by identifier",
        "description": "Retrieve all deals for an investor using any supported identifier format.\nThe API intelligently detects the identifier type and queries accordingly.\n\nProvide ONE of the following query parameters to identify the investor:\n- `id` - Investor UUID\n- `domain` - Investor domain or full URL (e.g., \"sequoiacap.com\" or \"https://sequoiacap.com\")\n- `linkedin` - LinkedIn company URL\n- `crunchbase` - Crunchbase organization URL\n\nThe 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.\n",
        "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\") \u2014 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"
                }
              }
            }
          },
          "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"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/investor/search": {
      "get": {
        "summary": "Search investors by name, domain, LinkedIn, or Crunchbase",
        "description": "Look up investors using one of four search methods. Exactly one parameter must be provided.\n\n**Search types:**\n- `name` \u2014 Fuzzy name search with relevance scoring\n- `domain` \u2014 Investor domain or full URL\n- `linkedin` \u2014 LinkedIn company URL\n- `crunchbase` \u2014 Crunchbase organization URL\n\nIdentifier lookups (`domain`, `linkedin`, `crunchbase`) return `relevance_score: 1`.\nExamples:\n- `?linkedin=https://linkedin.com/company/sequoia-capital`\n- `?crunchbase=https://crunchbase.com/organization/sequoia-capital`\n",
        "operationId": "searchInvestors",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Investor name (fuzzy search with relevance scoring)",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "sequoia"
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Investor domain or full URL (e.g., \"sequoiacap.com\" or \"https://sequoiacap.com\") \u2014 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"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "investors": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/InvestorSearchResult"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Number of investors returned",
                          "example": 8
                        },
                        "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"
                  ]
                },
                "example": {
                  "success": true,
                  "data": {
                    "investors": [
                      {
                        "id": "770e8400-e29b-41d4-a716-446655440000",
                        "guru_permalink": "acme-ventures",
                        "name": "Acme Ventures",
                        "description": "Early-stage venture capital firm focused on AI startups",
                        "image": "https://example.com/acme-ventures-logo.png",
                        "relevance_score": 0.92,
                        "domain": "acmeventures.com",
                        "website": "https://acmeventures.com"
                      },
                      {
                        "id": "880e8400-e29b-41d4-a716-446655440001",
                        "guru_permalink": "acme-capital",
                        "name": "Acme Capital",
                        "description": "Growth-stage investment firm",
                        "image": "https://example.com/acme-capital-logo.png",
                        "relevance_score": 0.85,
                        "domain": "acmecap.com",
                        "website": "https://acmecap.com"
                      }
                    ]
                  },
                  "meta": {
                    "total_count": 2,
                    "page": 0,
                    "page_size": 1,
                    "credits_used": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "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": "MISSING_SEARCH_PARAMS"
                        },
                        "message": {
                          "type": "string",
                          "example": "At least one search parameter is required"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "help": {
                              "type": "string",
                              "example": "Provide one of: name, domain, linkedin, or crunchbase. Example: ?name=sequoia or ?domain=sequoiacap.com"
                            },
                            "provided": {
                              "type": "string",
                              "nullable": true
                            },
                            "examples": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "valid": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "invalid": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/people": {
      "post": {
        "summary": "Search people with cross-type filters and optional semantic search",
        "description": "Retrieve people with advanced filtering, pagination, sorting, and optional AI-powered semantic search.\n\n## Request Body Structure\nSend a JSON body with up to 4 filter sections plus pagination/sort at the top level:\n- `identifiers` - Look up specific people by UUID, LinkedIn, Crunchbase, or Twitter\n- `person` - Filter by person attributes (role, contact info, job title, education, prior employers)\n- `company` - Filter by current employer attributes (industry, location, funding, IPO status, etc.)\n- `investor` - Filter by investor activity (firm, deal characteristics, portfolio companies)\n",
        "operationId": "searchPeople",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "example": {
                  "page_size": 10
                },
                "properties": {
                  "person_type": {
                    "type": "string",
                    "enum": [
                      "company",
                      "investor",
                      "any"
                    ],
                    "default": "any",
                    "description": "Restrict results to one population. `company` returns only people with a\ncurrent employer (founders, executives, employees). `investor` returns only\npeople who invest. `any` (default) returns the union \u2014 anyone matching the\nother filter blocks regardless of population.\n",
                    "example": "company"
                  },
                  "identifiers": {
                    "type": "object",
                    "description": "Look up specific people by identifier",
                    "properties": {
                      "ids": {
                        "type": "array",
                        "description": "Person UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "550e8400-e29b-41d4-a716-446655440000"
                        ]
                      },
                      "linkedin_urls": {
                        "type": "array",
                        "description": "LinkedIn person URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://linkedin.com/in/jane-doe-12345",
                          "https://linkedin.com/in/john-smith"
                        ]
                      },
                      "crunchbase_urls": {
                        "type": "array",
                        "description": "Crunchbase person URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://crunchbase.com/person/jane-doe",
                          "https://www.crunchbase.com/person/john-smith"
                        ]
                      },
                      "twitter_urls": {
                        "type": "array",
                        "description": "Twitter/X URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://x.com/janedoe",
                          "https://x.com/johnsmith"
                        ]
                      }
                    }
                  },
                  "person": {
                    "type": "object",
                    "description": "Person attribute filters",
                    "properties": {
                      "roles": {
                        "type": "array",
                        "description": "Person's role at their current employer",
                        "items": {
                          "type": "string",
                          "enum": [
                            "founder",
                            "ceo",
                            "key_person"
                          ]
                        },
                        "example": [
                          "founder",
                          "ceo"
                        ]
                      },
                      "contact_types": {
                        "type": "array",
                        "description": "Available contact info on the person",
                        "items": {
                          "type": "string",
                          "enum": [
                            "linkedin",
                            "email",
                            "phone",
                            "twitter"
                          ]
                        },
                        "example": [
                          "email",
                          "linkedin"
                        ]
                      },
                      "job_titles": {
                        "type": "array",
                        "description": "Normalized job-title keys",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "ceo",
                          "cto",
                          "vp-engineering"
                        ]
                      },
                      "education_schools": {
                        "type": "array",
                        "description": "Education institution IDs",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "stanford-university",
                          "mit"
                        ]
                      },
                      "linkedin_companies": {
                        "type": "array",
                        "description": "Filter by previous/current employer LinkedIn company IDs",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "google",
                          "meta"
                        ]
                      }
                    }
                  },
                  "company": {
                    "type": "object",
                    "description": "Current-employer attribute filters. Setting any field implicitly requires the person to have a current employer.",
                    "properties": {
                      "search_query": {
                        "type": "string",
                        "description": "AI-powered semantic search against the person's current employer \u2014 a flexible replacement for an industry tag. Use it to target a niche industry or specific product type by describing what that company does \u2014 its product, technology, or business model (e.g. \"climate tech carbon accounting software\"). Do NOT use it for other attributes like stage, location, or funding \u2014 apply those with the dedicated filter fields instead. Overrides explicit sort_by \u2014 results are ordered by relevance.",
                        "example": "climate tech carbon accounting software"
                      },
                      "min_relevance": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Minimum similarity threshold (0-1). Only applies with search_query.",
                        "example": 0.5
                      },
                      "ids": {
                        "type": "array",
                        "description": "Filter by current-employer UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "660e8400-e29b-41d4-a716-446655440000"
                        ]
                      },
                      "locations": {
                        "type": "array",
                        "description": "Location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "san-francisco-california",
                          "new-york-new-york"
                        ]
                      },
                      "industries": {
                        "type": "array",
                        "description": "Industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "artificial-intelligence",
                          "fintech-e067"
                        ]
                      },
                      "super_categories": {
                        "type": "array",
                        "description": "Super category permalinks (auto-includes related industries). Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "financial-services-d7b6"
                        ]
                      },
                      "employee_count": {
                        "type": "array",
                        "description": "Current-employer headcount ranges",
                        "items": {
                          "type": "string",
                          "enum": [
                            "1-10",
                            "11-50",
                            "51-100",
                            "101-250",
                            "251-500",
                            "501-1000",
                            "1001-5000",
                            "5001-10000",
                            "10001+"
                          ]
                        },
                        "example": [
                          "11-50",
                          "51-100"
                        ]
                      },
                      "ipo_status": {
                        "type": "array",
                        "description": "Current-employer IPO status",
                        "items": {
                          "type": "string",
                          "enum": [
                            "public",
                            "private",
                            "acquired",
                            "delisted"
                          ]
                        },
                        "example": [
                          "private"
                        ]
                      },
                      "total_raised_min": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Minimum total raised by current employer (USD)",
                        "example": 1000000
                      },
                      "total_raised_max": {
                        "type": "number",
                        "minimum": 0,
                        "description": "Maximum total raised by current employer (USD)",
                        "example": 100000000
                      },
                      "investor_people_ids": {
                        "type": "array",
                        "description": "Person UUIDs \u2014 filter to people whose current employer has ever raised\nfrom any of these people as an **angel investor** OR as a **lead partner**\nof an investing firm. Resolve via `/people/{id}`.\n",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "b3e9c7d1-2f4a-4d5e-9c1b-7a8f3e2d1c6a"
                        ]
                      },
                      "latest_deal": {
                        "type": "object",
                        "description": "Nested. Filters on the current employer's most recent funding round.",
                        "properties": {
                          "financing_types": {
                            "type": "array",
                            "description": "Financing types with optional modifiers (pre, extension)",
                            "items": {
                              "type": "object",
                              "required": [
                                "type"
                              ],
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "SERIES_A",
                                    "SERIES_B",
                                    "SERIES_C",
                                    "SERIES_D",
                                    "SERIES_E",
                                    "SERIES_F",
                                    "SERIES_G",
                                    "SERIES_H",
                                    "SERIES_I",
                                    "SERIES_J",
                                    "SERIES_K",
                                    "SERIES_L",
                                    "SERIES_M",
                                    "SEED",
                                    "SAFE",
                                    "CONVERTIBLE_NOTE",
                                    "EQUITY",
                                    "PREFERRED",
                                    "SECONDARY_MARKET",
                                    "DEBT_FINANCING",
                                    "GRANT",
                                    "NON_EQUITY_ASSISTANCE",
                                    "CROWDFUNDING",
                                    "INITIAL_COIN_OFFERING",
                                    "FUNDING_ROUND"
                                  ]
                                },
                                "pre": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "extension": {
                                  "type": "boolean",
                                  "default": false
                                }
                              }
                            },
                            "example": [
                              {
                                "type": "SEED",
                                "pre": true
                              },
                              {
                                "type": "SERIES_A"
                              }
                            ]
                          },
                          "size_min": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Minimum latest-deal size (USD)",
                            "example": 1000000
                          },
                          "size_max": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Maximum latest-deal size (USD)",
                            "example": 50000000
                          },
                          "date_start": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-01-01"
                          },
                          "date_end": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-12-31"
                          },
                          "investor_ids": {
                            "type": "array",
                            "description": "Filter to deals where these investor UUIDs participated",
                            "items": {
                              "type": "string",
                              "format": "uuid"
                            },
                            "example": [
                              "770e8400-e29b-41d4-a716-446655440000"
                            ]
                          },
                          "investor_locations": {
                            "type": "array",
                            "description": "Filter to deals with investors HQ'd in these locations",
                            "items": {
                              "type": "string"
                            },
                            "example": [
                              "san-francisco-california"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "investor": {
                    "type": "object",
                    "description": "Filters on the investor entity (firm) and on the person's deal activity.\nSetting any field (including any nested `deals.*` field) implicitly requires\nthe person to be an investor.\n",
                    "properties": {
                      "ids": {
                        "type": "array",
                        "description": "Firm (parent investor) UUIDs",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "example": [
                          "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
                        ]
                      },
                      "domains": {
                        "type": "array",
                        "description": "Firm domains (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "sequoiacap.com",
                          "a16z.com"
                        ]
                      },
                      "linkedin_urls": {
                        "type": "array",
                        "description": "Firm LinkedIn URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://linkedin.com/company/sequoia-capital"
                        ]
                      },
                      "crunchbase_urls": {
                        "type": "array",
                        "description": "Firm Crunchbase URLs (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "https://crunchbase.com/organization/sequoia-capital"
                        ]
                      },
                      "permalinks": {
                        "type": "array",
                        "description": "Fundable firm permalinks (max 100)",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "sequoia-capital",
                          "andreessen-horowitz"
                        ]
                      },
                      "locations": {
                        "type": "array",
                        "description": "Firm HQ location permalinks",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "menlo-park-california"
                        ]
                      },
                      "employee_count": {
                        "type": "array",
                        "description": "Firm headcount ranges",
                        "items": {
                          "type": "string",
                          "enum": [
                            "1-10",
                            "11-50",
                            "51-100",
                            "101-250",
                            "251-500",
                            "501-1000",
                            "1001-5000",
                            "5001-10000",
                            "10001+"
                          ]
                        }
                      },
                      "deals": {
                        "type": "object",
                        "description": "Nested. Combined deal-activity and portfolio-company filters. Includes:\ndeal-level controls (`investment_type`, `min_matching_deals`, `only_lead_deals`),\nround-level filters (`financing_types`, `size_min/max`, `date_start/end`), and\nportfolio-company attributes (`industries`, `super_categories`,\n`portfolio_locations`, `portfolio_employee_count`, `ipo_status`,\n`total_raised_min/max`, plus semantic `search_query` / `min_relevance`).\n",
                        "properties": {
                          "search_query": {
                            "type": "string",
                            "description": "AI-powered semantic search against the person's portfolio companies \u2014 a flexible replacement for an industry tag. Use it to target a niche industry or specific product type by describing what those companies do \u2014 their product, technology, or business model (e.g. \"AI infrastructure for model training\"). Do NOT use it for other attributes like stage, location, or funding \u2014 apply those with the dedicated filter fields instead. Overrides explicit sort_by \u2014 results are ordered by relevance.",
                            "example": "AI infrastructure for model training"
                          },
                          "min_relevance": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1,
                            "description": "Minimum similarity threshold (0-1). Only applies with search_query.",
                            "example": 0.5
                          },
                          "investment_type": {
                            "type": "string",
                            "enum": [
                              "all",
                              "angel",
                              "institutional"
                            ],
                            "default": "all",
                            "description": "Filter by whether the person invests as an angel, under a firm, or both",
                            "example": "angel"
                          },
                          "only_lead_deals": {
                            "type": "boolean",
                            "default": false,
                            "description": "Only count deals where the person/firm was a lead investor"
                          },
                          "min_matching_deals": {
                            "type": "integer",
                            "minimum": 1,
                            "description": "Require at least this many deals to match the deal filters",
                            "example": 3
                          },
                          "financing_types": {
                            "type": "array",
                            "description": "Financing types for the person's investment activity",
                            "items": {
                              "type": "object",
                              "required": [
                                "type"
                              ],
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "SERIES_A",
                                    "SERIES_B",
                                    "SERIES_C",
                                    "SERIES_D",
                                    "SERIES_E",
                                    "SERIES_F",
                                    "SERIES_G",
                                    "SERIES_H",
                                    "SERIES_I",
                                    "SERIES_J",
                                    "SERIES_K",
                                    "SERIES_L",
                                    "SERIES_M",
                                    "SEED",
                                    "SAFE",
                                    "CONVERTIBLE_NOTE",
                                    "EQUITY",
                                    "PREFERRED",
                                    "SECONDARY_MARKET",
                                    "DEBT_FINANCING",
                                    "GRANT",
                                    "NON_EQUITY_ASSISTANCE",
                                    "CROWDFUNDING",
                                    "INITIAL_COIN_OFFERING",
                                    "FUNDING_ROUND"
                                  ]
                                },
                                "pre": {
                                  "type": "boolean",
                                  "default": false
                                },
                                "extension": {
                                  "type": "boolean",
                                  "default": false
                                }
                              }
                            }
                          },
                          "size_min": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Minimum deal size (USD) for the person's deal activity",
                            "example": 500000
                          },
                          "size_max": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Maximum deal size (USD) for the person's deal activity",
                            "example": 10000000
                          },
                          "date_start": {
                            "type": "string",
                            "format": "date",
                            "example": "2023-01-01"
                          },
                          "date_end": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-12-31"
                          },
                          "industries": {
                            "type": "array",
                            "description": "Portfolio company industry permalinks",
                            "items": {
                              "type": "string"
                            },
                            "example": [
                              "artificial-intelligence"
                            ]
                          },
                          "super_categories": {
                            "type": "array",
                            "description": "Portfolio company super-category permalinks",
                            "items": {
                              "type": "string"
                            }
                          },
                          "portfolio_locations": {
                            "type": "array",
                            "description": "Portfolio company location permalinks",
                            "items": {
                              "type": "string"
                            }
                          },
                          "portfolio_employee_count": {
                            "type": "array",
                            "description": "Portfolio company headcount ranges",
                            "items": {
                              "type": "string",
                              "enum": [
                                "1-10",
                                "11-50",
                                "51-100",
                                "101-250",
                                "251-500",
                                "501-1000",
                                "1001-5000",
                                "5001-10000",
                                "10001+"
                              ]
                            }
                          },
                          "ipo_status": {
                            "type": "array",
                            "description": "Portfolio company IPO status",
                            "items": {
                              "type": "string",
                              "enum": [
                                "public",
                                "private"
                              ]
                            }
                          },
                          "total_raised_min": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Minimum total raised by the portfolio company (USD)",
                            "example": 1000000
                          },
                          "total_raised_max": {
                            "type": "number",
                            "minimum": 0,
                            "description": "Maximum total raised by the portfolio company (USD)"
                          }
                        }
                      }
                    }
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 0,
                    "default": 0,
                    "description": "Page number (0-based)"
                  },
                  "page_size": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "default": 10,
                    "description": "Number of results per page (max 500)"
                  },
                  "sort_by": {
                    "type": "string",
                    "enum": [
                      "most_recent_deal_date",
                      "total_raised",
                      "latest_deal_size",
                      "name",
                      "total_deal_count",
                      "deal_count_last_12_months",
                      "lead_deal_count",
                      "lead_deal_count_last_12_months",
                      "filtered_deal_count"
                    ],
                    "default": "most_recent_deal_date",
                    "description": "Sort order. All values are universally accepted \u2014 non-applicable values (e.g. `lead_deal_count`\nwhen no investor filter is set) resolve to 0 / null via COALESCE and naturally sort to the bottom (DESC).\nIgnored when `company.search_query` or `investor.deals.search_query` is set (results are then\nordered by semantic relevance).\n"
                  }
                }
              },
              "examples": {
                "empty": {
                  "summary": "Empty request (no filters)",
                  "value": {
                    "page_size": 5
                  }
                },
                "filter_only": {
                  "summary": "Founders at private financial-services companies",
                  "value": {
                    "person": {
                      "roles": [
                        "founder"
                      ]
                    },
                    "company": {
                      "ipo_status": [
                        "private"
                      ],
                      "super_categories": [
                        "financial-services-d7b6"
                      ]
                    },
                    "page_size": 25
                  }
                },
                "batch_lookup": {
                  "summary": "Look up specific people by LinkedIn URL",
                  "value": {
                    "identifiers": {
                      "linkedin_urls": [
                        "https://www.linkedin.com/in/joshua-kushner-711b45230/",
                        "https://www.linkedin.com/in/eladgil/"
                      ]
                    }
                  }
                },
                "angel_investors_active_2024": {
                  "summary": "People who made at least 3 angel investments in 2024",
                  "value": {
                    "investor": {
                      "deals": {
                        "investment_type": "angel",
                        "min_matching_deals": 3,
                        "date_start": "2024-01-01",
                        "date_end": "2024-12-31"
                      }
                    },
                    "sort_by": "lead_deal_count",
                    "page_size": 50
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "message": {
                      "type": "string",
                      "description": "Optional friendly message (e.g. \"No people found matching your filters\" when empty)"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "people": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/PersonSearchResult"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Total number of people matching the filter criteria",
                          "example": 1250
                        },
                        "page": {
                          "type": "integer",
                          "description": "Current page number (0-based)",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "description": "Number of results per page",
                          "example": 25
                        },
                        "credits_used": {
                          "type": "integer",
                          "description": "Number of credits consumed by this request",
                          "example": 25
                        },
                        "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 (invalid types, dates, enums, or empty `search_query`)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleValidationError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleAuthError"
                }
              }
            }
          },
          "402": {
            "description": "Insufficient credits to complete request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleInsufficientCreditsError"
                }
              }
            }
          },
          "422": {
            "description": "Unknown parameter (per-block whitelist enforced)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnknownParamError"
                }
              }
            }
          },
          "429": {
            "description": "Two distinct cases share this status:\n- `RATE_LIMIT_EXCEEDED` \u2014 per-minute API rate limit\n- `USAGE_LIMIT_EXCEEDED` \u2014 semantic-search monthly usage limit (only when `company.search_query` or `investor.deals.search_query` was set)\n",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PeopleRateLimitError"
                    },
                    {
                      "$ref": "#/components/schemas/SemanticUsageLimitError"
                    }
                  ]
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying (sent for `RATE_LIMIT_EXCEEDED` only)",
                "schema": {
                  "type": "integer",
                  "example": 60
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleServerError"
                }
              }
            }
          },
          "504": {
            "description": "Semantic search timed out (only when `company.search_query` or `investor.deals.search_query` was set)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SemanticTimeoutError"
                }
              }
            }
          }
        }
      }
    },
    "/person": {
      "get": {
        "summary": "Get person details by identifier",
        "description": "Retrieve detailed person information using any supported identifier format.\nThe API intelligently detects the identifier type and queries accordingly.\n\nProvide ONE of the following query parameters to identify the person:\n- `id` - Person UUID\n- `linkedin` - LinkedIn person URL\n- `crunchbase` - Crunchbase person URL\n- `twitter` - Twitter/X URL\n\nReturns the same constant unified shape as the list endpoint, with **full**\nemployment and education history (no per-section limit).\n",
        "operationId": "getPerson",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": false,
            "description": "Person UUID",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          {
            "name": "linkedin",
            "in": "query",
            "required": false,
            "description": "LinkedIn person URL",
            "schema": {
              "type": "string"
            },
            "example": "https://www.linkedin.com/in/eladgil/"
          },
          {
            "name": "crunchbase",
            "in": "query",
            "required": false,
            "description": "Crunchbase person URL",
            "schema": {
              "type": "string"
            },
            "example": "https://crunchbase.com/person/jane-doe"
          },
          {
            "name": "twitter",
            "in": "query",
            "required": false,
            "description": "Twitter/X URL",
            "schema": {
              "type": "string"
            },
            "example": "https://x.com/janedoe"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with person data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "person"
                      ],
                      "properties": {
                        "person": {
                          "$ref": "#/components/schemas/PersonDetail"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 1
                        },
                        "credits_used": {
                          "type": "integer",
                          "example": 1
                        },
                        "credit_source": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "monthly",
                            "purchased"
                          ]
                        },
                        "monthly_credits_remaining": {
                          "type": "integer",
                          "nullable": true
                        },
                        "purchased_credits_remaining": {
                          "type": "integer",
                          "nullable": true
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid identifier (no query param provided, or invalid UUID / URL)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidIdentifierError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleAuthError"
                }
              }
            }
          },
          "402": {
            "description": "Insufficient credits to complete request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleInsufficientCreditsError"
                }
              }
            }
          },
          "404": {
            "description": "Person not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleNotFoundError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (per-minute)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleRateLimitError"
                }
              }
            },
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer",
                  "example": 60
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleServerError"
                }
              }
            }
          }
        }
      }
    },
    "/person/deals": {
      "get": {
        "summary": "Get deals a person participated in (as an investor) by identifier",
        "description": "Retrieve all deals a person has participated in as an investor (angel deals + lead/firm deals)\nusing any supported identifier format. The API intelligently detects the identifier type and queries accordingly.\n\nProvide ONE of the following query parameters to identify the person:\n- `id` - Person UUID\n- `linkedin` - LinkedIn person URL\n- `crunchbase` - Crunchbase person URL\n- `twitter` - Twitter/X URL\n\nThe response includes the person's investment deals with pagination.\n",
        "operationId": "getPersonDeals",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Person UUID",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          {
            "name": "linkedin",
            "in": "query",
            "description": "LinkedIn person URL",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "https://www.linkedin.com/in/eladgil/"
          },
          {
            "name": "crunchbase",
            "in": "query",
            "description": "Crunchbase person URL",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "https://crunchbase.com/person/jane-doe"
          },
          {
            "name": "twitter",
            "in": "query",
            "description": "Twitter/X URL",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "https://x.com/janedoe"
          },
          {
            "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 the person's deals",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deals": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "description": "Deal record (same shape as deals returned by `/api/v1/company/deals`)"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "example": 11
                        },
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 10
                        }
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Validation error (missing 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",
                            "INVALID_ID"
                          ],
                          "example": "MISSING_IDENTIFIER"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleAuthError"
                }
              }
            }
          },
          "404": {
            "description": "No person 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": [
                            "PERSON_NOT_FOUND"
                          ],
                          "example": "PERSON_NOT_FOUND"
                        },
                        "message": {
                          "type": "string",
                          "example": "Person not found"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Insufficient credits to complete request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleInsufficientCreditsError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (per-minute)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleRateLimitError"
                }
              }
            },
            "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/PeopleServerError"
                }
              }
            }
          }
        }
      }
    },
    "/person/search": {
      "get": {
        "summary": "Search for a person by name or identifier",
        "description": "Look up people using one of five search methods. Exactly one parameter must be provided.\n\n**Search types:**\n- `name` \u2014 Fuzzy name search across both investors AND non-investor people (founders, employees). Returns up to 10 results.\n- `id` \u2014 Person UUID lookup (returns 0 or 1)\n- `linkedin` \u2014 LinkedIn person URL or slug\n- `crunchbase` \u2014 Crunchbase person URL or slug\n- `twitter` \u2014 Twitter/X URL or handle\n\n`person_type` on each result indicates which pool the row came from\n(`investor` wins when a person is in both). For full person detail, use `/person`.\n",
        "operationId": "searchPerson",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Fuzzy search by person name",
            "schema": {
              "type": "string"
            },
            "example": "jane doe"
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "description": "Person UUID",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          {
            "name": "linkedin",
            "in": "query",
            "required": false,
            "description": "LinkedIn person URL",
            "schema": {
              "type": "string"
            },
            "example": "https://www.linkedin.com/in/eladgil/"
          },
          {
            "name": "crunchbase",
            "in": "query",
            "required": false,
            "description": "Crunchbase person URL",
            "schema": {
              "type": "string"
            },
            "example": "https://crunchbase.com/person/jane-doe"
          },
          {
            "name": "twitter",
            "in": "query",
            "required": false,
            "description": "Twitter/X URL",
            "schema": {
              "type": "string"
            },
            "example": "https://x.com/janedoe"
          },
          {
            "name": "person_type",
            "in": "query",
            "required": false,
            "description": "Optional filter restricting results to one pool. `investor` keeps only\npeople tracked as investors/angels; `company` keeps only non-investor\npeople (founders, CEOs, employees). Omit to search both. Applies to\nboth name and identifier modes \u2014 identifier lookups return empty if\nthe resolved person doesn't match the requested type.\n",
            "schema": {
              "type": "string",
              "enum": [
                "investor",
                "company"
              ]
            },
            "example": "investor"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "people": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "name": {
                                "type": "string"
                              },
                              "linkedin_url": {
                                "type": "string",
                                "nullable": true,
                                "format": "uri"
                              },
                              "crunchbase_url": {
                                "type": "string",
                                "nullable": true,
                                "format": "uri"
                              },
                              "twitter_url": {
                                "type": "string",
                                "nullable": true,
                                "format": "uri"
                              },
                              "person_type": {
                                "type": "string",
                                "enum": [
                                  "investor",
                                  "company"
                                ],
                                "description": "Which pool the result came from. Mirrors the request-body discriminator on POST /people."
                              }
                            }
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "example": 7
                        }
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Validation error (missing or multiple 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",
                            "INVALID_ID"
                          ],
                          "example": "MISSING_SEARCH_PARAMS"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleAuthError"
                }
              }
            }
          },
          "402": {
            "description": "Insufficient credits to complete request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleInsufficientCreditsError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded (per-minute)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleRateLimitError"
                }
              }
            },
            "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/PeopleServerError"
                }
              }
            }
          }
        }
      }
    },
    "/alerts": {
      "get": {
        "summary": "Get alert data with deals",
        "description": "Retrieve saved alert data including all deals that matched the alert criteria within the specified date range.\nResults include a flattened array of deals sorted by date (newest first) with duplicates removed.\n\n**Multiple Alerts Support:**\n- Query multiple alerts in a single request (up to 10)\n- Each alert returns its own flattened deals array\n- Different alerts can have different frequencies (e.g., one daily, one weekly)\n- Total deal count across all alerts determines rate limit usage\n\n**Important Notes:**\n- All alert_ids must belong to alerts you have access to\n- Deals are flattened from all time periods and sorted by date DESC (newest first)\n- Duplicate deals are automatically removed\n- Each deal includes AI-generated reasoning for why it matched the alert criteria\n- Deal structure is simplified with flattened company information for easier integration\n",
        "operationId": "getAlerts",
        "tags": [
          "alerts"
        ],
        "parameters": [
          {
            "name": "alert_ids",
            "in": "query",
            "description": "Comma-separated list of alert UUIDs (up to 10 alerts per request).\nAll alerts must be associated with your API key's account.\nExample: \"uuid1,uuid2,uuid3\"\n",
            "required": true,
            "schema": {
              "type": "string",
              "example": "550e8400-e29b-41d4-a716-446655440000,660e8400-e29b-41d4-a716-446655440001"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Start date for the alert data range (ISO 8601 format).\nResults will include deals from this date onwards.\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-01T00:00:00.000Z"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End date for the alert data range (ISO 8601 format).\nResults will include deals up to and including this date.\n\n**Note:** All dates are processed in UTC timezone. Deals are grouped into time periods based on UTC date boundaries.\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-12-31T23:59:59.999Z"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with alert data organized by time periods",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "alerts": {
                          "type": "array",
                          "description": "Array of alert configurations with their timeline data",
                          "items": {
                            "$ref": "#/components/schemas/Alert"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Total number of deals across all alerts and periods",
                          "example": 47
                        },
                        "page": {
                          "type": "integer",
                          "description": "Current page number (always 0 for alerts endpoint)",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "description": "Number of alerts queried in this request",
                          "example": 2
                        },
                        "credits_used": {
                          "type": "integer",
                          "description": "Number of credits consumed by this request",
                          "example": 47
                        },
                        "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": 953
                        },
                        "purchased_credits_remaining": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Remaining purchased credits (only included for non-API tier keys)",
                          "example": 500
                        }
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data",
                    "meta"
                  ]
                },
                "examples": {
                  "multipleAlerts": {
                    "summary": "Multiple alerts with different frequencies",
                    "value": {
                      "success": true,
                      "data": {
                        "alerts": [
                          {
                            "alertId": "550e8400-e29b-41d4-a716-446655440000",
                            "alertName": "Weekly AI Funding Deals",
                            "alertFrequency": "WEEKLY",
                            "totalDealCount": 25,
                            "deals": [
                              {
                                "id": "deal1",
                                "company_id": "comp1",
                                "company_name": "Acme AI Corp",
                                "company_guru_permalink": "acme-ai-corp",
                                "round_type": "SERIES_A",
                                "total_round_raised": 25,
                                "date": "2024-01-15T00:00:00.000Z",
                                "company_website": "acme.com",
                                "company_linkedin": "https://linkedin.com/company/acme",
                                "location": {
                                  "city": "San Francisco",
                                  "state": "California",
                                  "country": "United States",
                                  "region": "North America"
                                },
                                "deal_short_description": "Series A funding round",
                                "deal_long_description": "Acme AI Corp raised $25M in Series A funding",
                                "reasoning": "Matches AI startups criteria with focus on artificial intelligence",
                                "articles": [
                                  {
                                    "link": "https://techcrunch.com/article1",
                                    "is_primary": true,
                                    "publishedDate": "2024-01-15T00:00:00.000Z"
                                  }
                                ]
                              },
                              {
                                "id": "deal3",
                                "company_id": "comp3",
                                "company_name": "ML Solutions Inc",
                                "company_guru_permalink": "ml-solutions-inc",
                                "round_type": "SERIES_B",
                                "total_round_raised": 40,
                                "date": "2024-01-10T00:00:00.000Z",
                                "company_website": "mlsolutions.com",
                                "company_linkedin": null,
                                "location": {
                                  "city": "London",
                                  "state": null,
                                  "country": "United Kingdom",
                                  "region": "Europe"
                                },
                                "deal_short_description": "Series B funding",
                                "deal_long_description": "ML Solutions raised $40M in Series B",
                                "reasoning": "Machine learning focus aligns with your alert criteria",
                                "articles": []
                              }
                            ]
                          },
                          {
                            "alertId": "660e8400-e29b-41d4-a716-446655440001",
                            "alertName": "Monthly Healthcare Seed Deals",
                            "alertFrequency": "MONTHLY",
                            "totalDealCount": 22,
                            "deals": [
                              {
                                "id": "deal2",
                                "company_id": "comp2",
                                "company_name": "HealthTech Startup",
                                "company_guru_permalink": "healthtech-startup",
                                "round_type": "SEED",
                                "total_round_raised": 5,
                                "date": "2024-01-10T00:00:00.000Z",
                                "company_website": "healthtech.io",
                                "company_linkedin": "https://linkedin.com/company/healthtech",
                                "location": {
                                  "city": "Boston",
                                  "state": "Massachusetts",
                                  "country": "United States",
                                  "region": "North America"
                                },
                                "deal_short_description": "Seed funding round",
                                "deal_long_description": "HealthTech Startup raised $5M in seed funding",
                                "reasoning": "Healthcare focus matches your seed round criteria",
                                "articles": [
                                  {
                                    "link": "https://healthcarevc.com/article",
                                    "is_primary": true,
                                    "publishedDate": "2024-01-10T00:00:00.000Z"
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "meta": {
                        "total_count": 47,
                        "page": 0,
                        "page_size": 2,
                        "credits_used": 47
                      }
                    }
                  },
                  "noDealsFound": {
                    "summary": "Valid alert IDs but no deals in date range",
                    "value": {
                      "success": true,
                      "data": {
                        "alerts": []
                      },
                      "meta": {
                        "total_count": 0,
                        "page": 0,
                        "page_size": 1,
                        "credits_used": 0
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Invalid parameters or validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/AlertsValidationError"
                    },
                    {
                      "$ref": "#/components/schemas/MissingParametersError"
                    }
                  ]
                },
                "examples": {
                  "missingParameters": {
                    "summary": "Missing required parameters",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "MISSING_PARAMETERS",
                        "message": "Missing required parameters",
                        "details": {
                          "missingParams": [
                            "alert_ids",
                            "start_date"
                          ],
                          "help": "Please provide all required parameters: alert_ids, start_date, end_date"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "invalidAlertId": {
                    "summary": "Invalid alert ID format",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "INVALID_ALERT_ID",
                        "message": "Invalid alert ID(s): not-a-uuid, invalid-id. All alert IDs must be valid UUIDs.",
                        "details": {
                          "provided": "not-a-uuid,invalid-id",
                          "help": "Please provide valid UUID format for all alert IDs"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "invalidDateFormat": {
                    "summary": "Invalid date format",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "INVALID_DATE_FORMAT",
                        "message": "Invalid date format",
                        "details": {
                          "field": "start_date",
                          "provided": "2024-01-01",
                          "expected": "ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)",
                          "help": "Please provide dates in ISO 8601 format, e.g., 2024-01-01T00:00:00.000Z"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "dateRangeTooLarge": {
                    "summary": "Date range exceeds maximum allowed",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "DATE_RANGE_TOO_LARGE",
                        "message": "Date range cannot exceed 1 year",
                        "details": {
                          "providedRange": "400 days",
                          "maxRange": "365 days",
                          "help": "Please reduce the date range to 1 year or less"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "futureStartDate": {
                    "summary": "Start date in the future",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "FUTURE_DATE",
                        "message": "Start date cannot be in the future",
                        "details": {
                          "field": "start_date",
                          "provided": "2025-12-01T00:00:00.000Z",
                          "help": "Please provide a start date that is not in the future"
                        }
                      },
                      "statusCode": 400
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "404": {
            "description": "Alert ID not found or access denied.\n\n**Note:** If alert IDs are valid but have no deals in the date range, the endpoint returns 200 with an empty `alerts` array.\n404 is only returned when the alert IDs don't exist or you lack permission to access them.\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "ALERT_NOT_FOUND"
                        },
                        "message": {
                          "type": "string",
                          "example": "Alert(s) not found or you do not have permission to access them"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "help": {
                              "type": "string",
                              "example": "Please verify the alert IDs belong to your account"
                            }
                          }
                        }
                      }
                    },
                    "statusCode": {
                      "type": "integer",
                      "example": 404
                    }
                  }
                },
                "examples": {
                  "alertNotFound": {
                    "summary": "Alert ID(s) not found or access denied",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "ALERT_NOT_FOUND",
                        "message": "Alert(s) not found or you do not have permission to access them",
                        "details": {
                          "help": "Please verify the alert IDs exist and belong to your account. If IDs are valid but have no deals, you'll receive a 200 response with empty alerts array."
                        }
                      },
                      "statusCode": 404
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity - Parameter validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertsValidationError"
                },
                "examples": {
                  "unknownParameter": {
                    "summary": "Unknown parameter provided",
                    "value": {
                      "success": false,
                      "error": {
                        "code": "UNKNOWN_PARAMETER",
                        "message": "Invalid request parameters",
                        "details": {
                          "errors": [
                            {
                              "field": "invalidParam",
                              "value": "someValue",
                              "message": "Unknown parameter: invalidParam. Allowed parameters: alert_ids, start_date, end_date",
                              "code": "UNKNOWN_PARAMETER",
                              "validOptions": [
                                "alert_ids",
                                "start_date",
                                "end_date"
                              ]
                            }
                          ],
                          "help": "Please check your request parameters and ensure they meet the required format and constraints."
                        }
                      },
                      "statusCode": 422
                    }
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/alerts/configurations": {
      "get": {
        "summary": "Get alert configurations for authenticated user",
        "description": "Retrieve all alert configurations for the authenticated user (identified by API key).\nReturns configuration metadata including filters, frequency, and descriptions.\n\n**Important Notes:**\n- This endpoint does NOT consume usage credits (actualUsageCount: 0)\n- Returns only configuration metadata, not deal data\n- Does not require any query parameters - user is identified by API key\n- All configurations for the authenticated user are returned (no pagination)\n\n**Authentication:**\n- User identity is automatically determined from the API key\n- No email or user_id parameter needed\n\n**Use Cases:**\n- Look up what alerts are configured for the authenticated user\n- Retrieve alert filter settings for external integrations\n- Audit alert configurations programmatically\n",
        "operationId": "getAlertConfigurations",
        "tags": [
          "alerts"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response with alert configurations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "configurations": {
                          "type": "array",
                          "description": "Array of alert configurations for this email",
                          "items": {
                            "$ref": "#/components/schemas/AlertConfiguration"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer",
                          "description": "Current page number (always 0 for this endpoint)",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "description": "Number of configurations returned",
                          "example": 3
                        },
                        "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": 1000
                        },
                        "purchased_credits_remaining": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Remaining purchased credits (only included for non-API tier keys)",
                          "example": 500
                        }
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data",
                    "meta"
                  ]
                },
                "examples": {
                  "withConfigurations": {
                    "summary": "User with multiple alert configurations",
                    "value": {
                      "success": true,
                      "data": {
                        "configurations": [
                          {
                            "configuration_id": "550e8400-e29b-41d4-a716-446655440000",
                            "configuration_name": "AI Startups Series A",
                            "frequency": "WEEKLY",
                            "description": "Track AI and ML startups raising Series A funding",
                            "filters": {
                              "industries": [
                                "artificial-intelligence",
                                "machine-learning"
                              ],
                              "financing_types": [
                                "Series A"
                              ],
                              "deal_size_min": 1000000,
                              "deal_size_max": 10000000,
                              "locations": [
                                "san-francisco-bay-area",
                                "new-york-new-york"
                              ],
                              "investors": [],
                              "companies": []
                            }
                          },
                          {
                            "configuration_id": "660e8400-e29b-41d4-a716-446655440001",
                            "configuration_name": "Healthcare Seed Rounds",
                            "frequency": "DAILY",
                            "description": "Daily alerts for healthcare seed funding",
                            "filters": {
                              "industries": [
                                "health-care"
                              ],
                              "super_categories": [
                                "biotechnology"
                              ],
                              "financing_types": [
                                "Seed"
                              ],
                              "deal_size_min": 500000,
                              "deal_size_max": 5000000,
                              "num_employees": [
                                "1-10",
                                "11-50"
                              ],
                              "investors": [
                                {
                                  "id": "sequoia-capital",
                                  "name": "Sequoia Capital"
                                }
                              ],
                              "companies": []
                            }
                          },
                          {
                            "configuration_id": "770e8400-e29b-41d4-a716-446655440002",
                            "configuration_name": "Fintech Tracker",
                            "frequency": "MONTHLY",
                            "description": "Monthly roundup of fintech funding activity",
                            "filters": {
                              "industries": [
                                "financial-services",
                                "fintech"
                              ],
                              "financing_types": [
                                "Series A",
                                "Series B",
                                "Series C"
                              ],
                              "locations": [
                                "united-states"
                              ],
                              "companies": [
                                {
                                  "id": "stripe",
                                  "name": "Stripe"
                                },
                                {
                                  "id": "plaid",
                                  "name": "Plaid"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "meta": {
                        "page": 0,
                        "page_size": 3,
                        "credits_used": 0
                      }
                    }
                  },
                  "noConfigurations": {
                    "summary": "User with no configurations",
                    "value": {
                      "success": true,
                      "data": {
                        "configurations": []
                      },
                      "meta": {
                        "page": 0,
                        "page_size": 0,
                        "credits_used": 0
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/location/search": {
      "get": {
        "summary": "Search locations by name and optionally filter by type",
        "description": "Look up locations (cities, states, countries, regions) by name with fuzzy matching. The `name` parameter is required; `type` is optional.\n\n**Search types:**\n- `name` \u2014 Fuzzy name search with relevance scoring (required)\n- `type` \u2014 Optional filter by location type: `CITY`, `STATE`, `REGION`, or `COUNTRY`\n- `location_type` \u2014 Alias for `type`\n\nExamples:\n- `?name=san francisco`\n- `?name=california&type=STATE`\n",
        "operationId": "searchLocations",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Location name to search for",
            "required": true,
            "schema": {
              "type": "string",
              "example": "san francisco"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by specific location type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CITY",
                "STATE",
                "REGION",
                "COUNTRY"
              ],
              "example": "CITY"
            }
          },
          {
            "name": "location_type",
            "in": "query",
            "description": "Alias for 'type' parameter",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CITY",
                "STATE",
                "REGION",
                "COUNTRY"
              ],
              "example": "CITY"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "locations": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/LocationSearchResult"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Number of locations returned",
                          "example": 3
                        },
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 3
                        },
                        "credits_used": {
                          "type": "integer",
                          "description": "Number of credits consumed by this request (always 0 for search endpoints)",
                          "example": 0
                        }
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data",
                    "meta"
                  ]
                },
                "examples": {
                  "all_types": {
                    "summary": "Search without type filter",
                    "description": "Returns all location types matching the search term",
                    "value": {
                      "success": true,
                      "data": {
                        "locations": [
                          {
                            "permalink": "san-francisco-california",
                            "name": "San Francisco",
                            "location_type": "CITY"
                          },
                          {
                            "permalink": "san-francisco-bay-area",
                            "name": "San Francisco Bay Area",
                            "location_type": "REGION"
                          },
                          {
                            "permalink": "california",
                            "name": "California",
                            "location_type": "STATE"
                          }
                        ]
                      },
                      "meta": {
                        "total_count": 3
                      }
                    }
                  },
                  "cities_only": {
                    "summary": "Search filtered by CITY type",
                    "description": "Returns only cities matching the search term",
                    "value": {
                      "success": true,
                      "data": {
                        "locations": [
                          {
                            "permalink": "san-francisco-california",
                            "name": "San Francisco",
                            "location_type": "CITY"
                          },
                          {
                            "permalink": "san-jose-california",
                            "name": "San Jose",
                            "location_type": "CITY"
                          }
                        ]
                      },
                      "meta": {
                        "total_count": 2
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Search parameter validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "enum": [
                            "MISSING_SEARCH_PARAMS",
                            "INVALID_LOCATION_TYPE",
                            "MULTIPLE_LOCATION_TYPE_PARAMS"
                          ],
                          "example": "MISSING_SEARCH_PARAMS"
                        },
                        "message": {
                          "type": "string",
                          "example": "The \"name\" search parameter is required"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "help": {
                              "type": "string",
                              "example": "Provide a name parameter. Example: ?name=san+francisco"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "missing_params": {
                    "value": {
                      "success": false,
                      "error": {
                        "code": "MISSING_SEARCH_PARAMS",
                        "message": "The \"name\" search parameter is required",
                        "details": {
                          "help": "Provide a name parameter. Example: ?name=san+francisco"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "invalid_location_type": {
                    "value": {
                      "success": false,
                      "error": {
                        "code": "INVALID_LOCATION_TYPE",
                        "message": "Invalid location type. Must be one of: CITY, STATE, REGION, COUNTRY",
                        "details": {
                          "help": "Provided type: 'INVALID'. Valid types are: CITY, STATE, REGION, COUNTRY"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "multiple_location_type_params": {
                    "value": {
                      "success": false,
                      "error": {
                        "code": "MULTIPLE_LOCATION_TYPE_PARAMS",
                        "message": "Cannot specify both type and location_type parameters",
                        "details": {
                          "help": "Use either type or location_type parameter, not both"
                        }
                      },
                      "statusCode": 400
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtherAuthError"
                }
              }
            }
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/industry/search": {
      "get": {
        "summary": "Search industries and super categories by name",
        "description": "Look up industries and super categories by name with fuzzy matching. The `name` parameter is required; `type` is optional.\n\n**Search types:**\n- `name` \u2014 Fuzzy name search with relevance scoring (required)\n- `type` \u2014 Optional filter by industry type: `INDUSTRY` or `SUPER_CATEGORY`\n- `industry_type` \u2014 Alias for `type`\n\nExamples:\n- `?name=artificial intelligence`\n- `?name=fintech&type=INDUSTRY`\n",
        "operationId": "searchIndustries",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Industry name to search for",
            "required": true,
            "schema": {
              "type": "string",
              "example": "artificial intelligence"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by specific industry type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "INDUSTRY",
                "SUPER_CATEGORY"
              ],
              "example": "INDUSTRY"
            }
          },
          {
            "name": "industry_type",
            "in": "query",
            "description": "Alias for 'type' parameter",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "INDUSTRY",
                "SUPER_CATEGORY"
              ],
              "example": "INDUSTRY"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "industries": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/IndustrySearchResult"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "description": "Number of industries returned",
                          "example": 3
                        },
                        "page": {
                          "type": "integer",
                          "example": 0
                        },
                        "page_size": {
                          "type": "integer",
                          "example": 3
                        },
                        "credits_used": {
                          "type": "integer",
                          "description": "Number of credits consumed by this request (always 0 for search endpoints)",
                          "example": 0
                        }
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data",
                    "meta"
                  ]
                },
                "examples": {
                  "all_types": {
                    "summary": "Search without type filter",
                    "description": "Returns both industries and super categories matching the search term",
                    "value": {
                      "success": true,
                      "data": {
                        "industries": [
                          {
                            "permalink": "artificial-intelligence",
                            "name": "Artificial Intelligence",
                            "industry_type": "INDUSTRY"
                          },
                          {
                            "permalink": "machine-learning",
                            "name": "Machine Learning",
                            "industry_type": "INDUSTRY"
                          }
                        ]
                      },
                      "meta": {
                        "total_count": 2
                      }
                    }
                  },
                  "industries_only": {
                    "summary": "Search filtered by INDUSTRY type",
                    "description": "Returns only industries matching the search term",
                    "value": {
                      "success": true,
                      "data": {
                        "industries": [
                          {
                            "permalink": "fintech-e067",
                            "name": "FinTech",
                            "industry_type": "INDUSTRY"
                          }
                        ]
                      },
                      "meta": {
                        "total_count": 1
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Search parameter validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "enum": [
                            "MISSING_SEARCH_PARAMS",
                            "INVALID_INDUSTRY_TYPE",
                            "MULTIPLE_INDUSTRY_TYPE_PARAMS"
                          ],
                          "example": "MISSING_SEARCH_PARAMS"
                        },
                        "message": {
                          "type": "string",
                          "example": "The \"name\" search parameter is required"
                        },
                        "details": {
                          "type": "object",
                          "properties": {
                            "help": {
                              "type": "string",
                              "example": "Provide a name parameter. Example: ?name=artificial+intelligence"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "missing_params": {
                    "value": {
                      "success": false,
                      "error": {
                        "code": "MISSING_SEARCH_PARAMS",
                        "message": "The \"name\" search parameter is required",
                        "details": {
                          "help": "Provide a name parameter. Example: ?name=artificial+intelligence"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "invalid_industry_type": {
                    "value": {
                      "success": false,
                      "error": {
                        "code": "INVALID_INDUSTRY_TYPE",
                        "message": "Invalid industry type. Must be one of: INDUSTRY, SUPER_CATEGORY",
                        "details": {
                          "help": "Provided type: 'INVALID'. Valid types are: INDUSTRY, SUPER_CATEGORY"
                        }
                      },
                      "statusCode": 400
                    }
                  },
                  "multiple_industry_type_params": {
                    "value": {
                      "success": false,
                      "error": {
                        "code": "MULTIPLE_INDUSTRY_TYPE_PARAMS",
                        "message": "Cannot specify both type and industry_type parameters",
                        "details": {
                          "help": "Use either type or industry_type parameter, not both"
                        }
                      },
                      "statusCode": 400
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtherAuthError"
                }
              }
            }
          },
          "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": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API Key",
        "description": "API key provided as a Bearer token"
      }
    },
    "schemas": {
      "Deal": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the deal",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "round_type": {
            "type": "string",
            "nullable": true,
            "description": "Type of funding round",
            "enum": [
              "SERIES_A",
              "SERIES_B",
              "SERIES_C",
              "SERIES_D",
              "SERIES_E",
              "SERIES_F",
              "SERIES_G",
              "SERIES_H",
              "SERIES_I",
              "SERIES_J",
              "SERIES_K",
              "SERIES_L",
              "SERIES_M",
              "SEED",
              "SAFE",
              "CONVERTIBLE_NOTE",
              "EQUITY",
              "PREFERRED",
              "SECONDARY_MARKET",
              "DEBT_FINANCING",
              "GRANT",
              "NON_EQUITY_ASSISTANCE",
              "CROWDFUNDING",
              "INITIAL_COIN_OFFERING",
              "FUNDING_ROUND"
            ],
            "example": "SERIES_A"
          },
          "extension": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this is an extension round",
            "example": false
          },
          "intermediate": {
            "type": "string",
            "nullable": true,
            "description": "Intermediate round designation",
            "enum": [
              "PLUS",
              "NONE",
              "ONE",
              "TWO",
              "THREE",
              "FOUR",
              "FIVE",
              "SIX",
              "SEVEN",
              "EIGHT"
            ],
            "example": "NONE"
          },
          "pre": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this is a pre-round (e.g., Pre-Series A)",
            "example": false
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Announcement date of the funding round",
            "example": "2024-01-15T00:00:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date the deal was added to the system",
            "example": "2024-01-16T12:30:00Z"
          },
          "total_round_raised": {
            "type": "number",
            "nullable": true,
            "description": "Total amount raised in the round (USD)",
            "example": 25000000
          },
          "deal_descriptions": {
            "type": "object",
            "nullable": true,
            "properties": {
              "short_description": {
                "type": "string",
                "nullable": true,
                "description": "Brief description of the deal"
              },
              "long_description": {
                "type": "string",
                "nullable": true,
                "description": "Detailed description of the deal"
              }
            }
          },
          "company_id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the company",
            "example": "550e8400-e29b-41d4-a716-446655440001"
          },
          "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"
            },
            "example": [
              "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
            ]
          },
          "angel_investor_ids": {
            "type": "array",
            "description": "UUIDs of angel investors (people) who participated in this deal. Resolve via `/people/{id}`. Empty array when no angels.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "example": [
              "b3e9c7d1-2f4a-4d5e-9c1b-7a8f3e2d1c6a"
            ]
          },
          "financings": {
            "type": "array",
            "description": "Detailed financing information for deals that have multiple financing types",
            "items": {
              "$ref": "#/components/schemas/Financing"
            }
          },
          "valuation": {
            "nullable": true,
            "description": "Valuation information for this deal",
            "$ref": "#/components/schemas/Valuation"
          },
          "articles": {
            "type": "array",
            "description": "Related articles/sources for this deal.\nOnly included for Enterprise (API tier) users. Omitted entirely for other tiers.\n",
            "items": {
              "$ref": "#/components/schemas/DealArticle"
            }
          }
        },
        "required": [
          "id",
          "company_id",
          "investor_ids",
          "angel_investor_ids",
          "financings"
        ]
      },
      "DealInvestor": {
        "type": "object",
        "description": "A firm investor on a deal. Angels are returned separately in the `angel_investors` array on /deals/{id}/investors.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the firm investor (parent_investor UUID)",
            "example": "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82"
          },
          "name": {
            "type": "string",
            "description": "Investor name",
            "example": "Sequoia Capital"
          },
          "lead_investor": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this investor led the round",
            "example": true
          },
          "personnel": {
            "type": "array",
            "description": "Key personnel (partners) at this firm involved in this deal. Each entry is a person record joinable to /people/{id}.",
            "items": {
              "$ref": "#/components/schemas/PersonnelMember"
            },
            "example": [
              {
                "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
                "name": "John Smith",
                "linkedin": "https://linkedin.com/in/johnsmith",
                "crunchbase": "https://crunchbase.com/person/john-smith",
                "twitter": "https://x.com/johnsmith"
              }
            ]
          },
          "financing_type": {
            "type": "string",
            "nullable": true,
            "description": "The financing type this investor participated in",
            "example": "SERIES_A"
          },
          "domain": {
            "type": "string",
            "nullable": true,
            "description": "Investor's website domain",
            "example": "sequoiacap.com"
          },
          "linkedin": {
            "type": "string",
            "nullable": true,
            "description": "Investor's LinkedIn URL",
            "example": "https://linkedin.com/company/sequoia-capital"
          },
          "crunchbase": {
            "type": "string",
            "nullable": true,
            "description": "Investor's Crunchbase URL",
            "example": "https://crunchbase.com/organization/sequoia-capital"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "PersonnelMember": {
        "type": "object",
        "description": "A person (partner) at a firm investor associated with a deal.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Person UUID. Resolves via /people/{id}."
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "linkedin": {
            "type": "string",
            "nullable": true,
            "description": "LinkedIn URL."
          },
          "crunchbase": {
            "type": "string",
            "nullable": true,
            "description": "Crunchbase URL."
          },
          "twitter": {
            "type": "string",
            "nullable": true,
            "description": "Twitter/X URL."
          }
        },
        "required": [
          "id"
        ]
      },
      "AngelInvestor": {
        "type": "object",
        "description": "An angel (individual) investor on a deal. Returned in the `angel_investors` array on /deals/{id}/investors.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Person UUID for the angel. Resolves via /people/{id}."
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "financing_type": {
            "type": "string",
            "nullable": true,
            "description": "The financing type this angel participated in.",
            "example": "SEED"
          },
          "linkedin": {
            "type": "string",
            "nullable": true
          },
          "crunchbase": {
            "type": "string",
            "nullable": true
          },
          "twitter": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "DealArticle": {
        "type": "object",
        "description": "An article or source related to a deal (Enterprise/API tier only)",
        "properties": {
          "link": {
            "type": "string",
            "nullable": true,
            "description": "URL of the article",
            "example": "https://techcrunch.com/2024/01/15/company-raises-series-a"
          },
          "date": {
            "type": "string",
            "nullable": true,
            "description": "Date of the article",
            "example": "2024-01-15"
          },
          "is_primary": {
            "type": "boolean",
            "description": "Whether this is the primary source article for the deal",
            "example": true
          }
        },
        "required": [
          "is_primary"
        ]
      },
      "Financing": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the financing"
          },
          "type": {
            "type": "string",
            "description": "Type of financing",
            "enum": [
              "SEED",
              "SERIES_A",
              "SERIES_B",
              "SERIES_C",
              "SERIES_D",
              "SERIES_E",
              "SERIES_F",
              "SERIES_G",
              "SERIES_H",
              "SERIES_I",
              "SERIES_J",
              "SERIES_K",
              "SERIES_L",
              "SERIES_M",
              "CONVERTIBLE_NOTE",
              "CROWDFUNDING",
              "DEBT_FINANCING",
              "EQUITY",
              "FUNDING_ROUND",
              "GRANT",
              "INITIAL_COIN_OFFERING",
              "NON_EQUITY_ASSISTANCE",
              "PREFERRED",
              "SAFE",
              "SECONDARY_MARKET"
            ],
            "example": "SERIES_A"
          },
          "size_usd": {
            "type": "number",
            "nullable": true,
            "description": "Financing amount (USD)",
            "example": 25000000
          },
          "size_native": {
            "type": "number",
            "nullable": true,
            "description": "Financing amount in native currency",
            "example": 25000000
          },
          "currency": {
            "type": "string",
            "nullable": true,
            "description": "Currency of the original financing amount",
            "example": "USD"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "Valuation": {
        "type": "object",
        "nullable": true,
        "properties": {
          "valuation_currency": {
            "type": "string",
            "nullable": true,
            "description": "Currency of the valuation",
            "example": "USD"
          },
          "valuation_usd": {
            "type": "number",
            "nullable": true,
            "description": "Valuation amount (USD)",
            "example": 100000000
          },
          "valuation_native": {
            "type": "number",
            "nullable": true,
            "description": "Valuation amount in native currency",
            "example": 100000000
          },
          "type": {
            "type": "string",
            "description": "Type of valuation",
            "enum": [
              "DEFAULT",
              "POST_MONEY",
              "PRE_MONEY"
            ],
            "example": "POST_MONEY"
          }
        },
        "required": [
          "type"
        ]
      },
      "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"
        ]
      },
      "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"
        ]
      },
      "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"
        ]
      },
      "ValidationError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "VALIDATION_ERROR"
                ],
                "example": "VALIDATION_ERROR"
              },
              "message": {
                "type": "string",
                "example": "Invalid request parameters"
              },
              "details": {
                "type": "object",
                "properties": {
                  "errors": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The parameter name that failed validation",
                          "example": "deal.financing_types"
                        },
                        "value": {
                          "type": "string",
                          "description": "The invalid value provided",
                          "example": "series-a"
                        },
                        "message": {
                          "type": "string",
                          "description": "Human-readable error message",
                          "example": "Invalid financing type(s): series-a. Valid options are: SERIES_A, SERIES_B, SEED, ..."
                        },
                        "code": {
                          "type": "string",
                          "description": "Machine-readable error code",
                          "example": "INVALID_FINANCING_TYPE"
                        },
                        "validOptions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "List of valid values for enum parameters",
                          "example": [
                            "SERIES_A",
                            "SERIES_B",
                            "SEED"
                          ]
                        }
                      }
                    }
                  },
                  "help": {
                    "type": "string",
                    "example": "Please check your request parameters and ensure they meet the required format and constraints."
                  }
                }
              }
            }
          }
        },
        "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"
        ]
      },
      "CompanyDetails": {
        "type": "object",
        "description": "Full company details returned by the /company endpoint",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the company",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Company name",
            "example": "Acme Corporation"
          },
          "legal_name": {
            "type": "string",
            "nullable": true,
            "description": "Legal name of the company",
            "example": "Acme Corporation Inc."
          },
          "guru_permalink": {
            "type": "string",
            "nullable": true,
            "description": "Fundable permalink for the company",
            "example": "acme-corporation"
          },
          "domain": {
            "type": "string",
            "nullable": true,
            "description": "Company website domain",
            "example": "acme.com"
          },
          "region": {
            "type": "string",
            "nullable": true,
            "description": "Company region",
            "example": "San Francisco Bay Area"
          },
          "short_description": {
            "type": "string",
            "nullable": true,
            "description": "Brief description of the company"
          },
          "long_description": {
            "type": "string",
            "nullable": true,
            "description": "Full description of the company. Available on /company endpoint; may be null on /companies list endpoint."
          },
          "num_employees": {
            "type": "string",
            "nullable": true,
            "description": "Number of employees range",
            "example": "11-50"
          },
          "linkedin": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "LinkedIn profile URL"
          },
          "twitter": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Twitter profile URL"
          },
          "facebook": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Facebook profile URL"
          },
          "pitchbook": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "PitchBook profile URL"
          },
          "crunchbase": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Crunchbase profile URL"
          },
          "address": {
            "type": "string",
            "nullable": true,
            "description": "Company address"
          },
          "ipo_status": {
            "type": "string",
            "nullable": true,
            "description": "IPO status of the company",
            "enum": [
              "public",
              "private"
            ],
            "example": "private"
          },
          "num_funding_rounds": {
            "type": "integer",
            "nullable": true,
            "description": "Number of funding rounds",
            "example": 11
          },
          "num_investors": {
            "type": "integer",
            "nullable": true,
            "description": "Number of investors",
            "example": 14
          },
          "total_raised": {
            "type": "number",
            "nullable": true,
            "description": "Total amount raised (USD)",
            "example": 2834940000
          },
          "latest_valuation_usd": {
            "type": "number",
            "nullable": true,
            "description": "Latest valuation (USD)",
            "example": 31000000000
          },
          "latest_valuation_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date of latest valuation",
            "example": "2017-03-09T00:00:00.000Z"
          },
          "industries": {
            "type": "array",
            "description": "Industries the company operates in",
            "items": {
              "type": "object",
              "properties": {
                "permalink": {
                  "type": "string",
                  "description": "Industry permalink",
                  "example": "artificial-intelligence"
                },
                "name": {
                  "type": "string",
                  "description": "Industry name",
                  "example": "Artificial Intelligence"
                }
              }
            }
          },
          "location": {
            "type": "object",
            "description": "Company location hierarchy",
            "properties": {
              "region": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Region name",
                    "example": "San Francisco Bay Area"
                  },
                  "permalink": {
                    "type": "string",
                    "description": "Region permalink",
                    "example": "san-francisco-bay-area"
                  }
                }
              },
              "country": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Country name",
                    "example": "United States"
                  },
                  "permalink": {
                    "type": "string",
                    "description": "Country permalink",
                    "example": "united-states"
                  }
                }
              },
              "state": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "State name",
                    "example": "California"
                  },
                  "permalink": {
                    "type": "string",
                    "description": "State permalink",
                    "example": "california"
                  }
                }
              },
              "city": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "City name",
                    "example": "San Francisco"
                  },
                  "permalink": {
                    "type": "string",
                    "description": "City permalink",
                    "example": "san-francisco-california"
                  }
                }
              }
            }
          },
          "latest_deal": {
            "$ref": "#/components/schemas/LatestDeal"
          },
          "all_investor_ids": {
            "type": "array",
            "nullable": true,
            "description": "UUIDs of all parent investors across all funding rounds for this company",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "example": [
              "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82",
              "c6bc63af-cb37-453d-9c20-35f56fb87ee9"
            ]
          },
          "similarity": {
            "type": "number",
            "nullable": true,
            "description": "Semantic similarity score (0-1). Only present when using search_query parameter.",
            "example": null
          }
        }
      },
      "CompanyListItem": {
        "type": "object",
        "description": "Company object returned by the /companies list endpoint. Same shape as CompanyDetails.",
        "allOf": [
          {
            "$ref": "#/components/schemas/CompanyDetails"
          }
        ]
      },
      "LatestDeal": {
        "type": "object",
        "nullable": true,
        "description": "Details of the company's most recent funding round",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Unique identifier for the deal"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "description": "Type of funding round",
            "enum": [
              "SERIES_A",
              "SERIES_B",
              "SERIES_C",
              "SERIES_D",
              "SERIES_E",
              "SERIES_F",
              "SERIES_G",
              "SERIES_H",
              "SERIES_I",
              "SERIES_J",
              "SERIES_K",
              "SERIES_M",
              "SEED",
              "SAFE",
              "CONVERTIBLE_NOTE",
              "EQUITY",
              "PREFERRED",
              "SECONDARY_MARKET",
              "DEBT_FINANCING",
              "GRANT",
              "NON_EQUITY_ASSISTANCE",
              "CROWDFUNDING",
              "INITIAL_COIN_OFFERING",
              "FUNDING_ROUND",
              "HYBRID",
              "HYBRID_SEED",
              "HYBRID_SERIES_A",
              "HYBRID_SERIES_B",
              "HYBRID_SERIES_C",
              "HYBRID_SERIES_D",
              "HYBRID_SERIES_E",
              "HYBRID_SERIES_F",
              "HYBRID_SERIES_G",
              "HYBRID_SERIES_H",
              "HYBRID_SERIES_I",
              "HYBRID_SERIES_J",
              "HYBRID_SERIES_K",
              "HYBRID_SERIES_M"
            ],
            "example": "SERIES_B"
          },
          "total_round_raised": {
            "type": "number",
            "nullable": true,
            "description": "Total amount raised in the round (USD)",
            "example": 25000000
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date of the funding round",
            "example": "2024-01-15T00:00:00Z"
          },
          "extension": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this is an extension round",
            "example": false
          },
          "pre": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this is a pre-round (e.g., Pre-Series A)",
            "example": false
          },
          "intermediate": {
            "type": "string",
            "nullable": true,
            "description": "Intermediate round designation",
            "enum": [
              "PLUS",
              "NONE",
              "ONE",
              "TWO",
              "THREE",
              "FOUR",
              "FIVE",
              "SIX",
              "SEVEN",
              "EIGHT"
            ],
            "example": "NONE"
          },
          "description": {
            "type": "object",
            "nullable": true,
            "properties": {
              "short_description": {
                "type": "string",
                "nullable": true,
                "description": "Brief description of the deal"
              },
              "long_description": {
                "type": "string",
                "nullable": true,
                "description": "Detailed description of the deal"
              }
            }
          },
          "investors": {
            "type": "array",
            "description": "UUIDs of firm investors participating in this deal. Angels are surfaced separately in `angel_investor_ids`.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "example": [
              "c5a3f6ac-f6c9-4686-aa6e-12aeb7419b82",
              "c6bc63af-cb37-453d-9c20-35f56fb87ee9"
            ]
          },
          "angel_investor_ids": {
            "type": "array",
            "description": "UUIDs of angel investors (people) on this latest deal. Resolve via `/people/{id}`. Empty array when no angels.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "example": [
              "b3e9c7d1-2f4a-4d5e-9c1b-7a8f3e2d1c6a"
            ]
          },
          "financings": {
            "type": "array",
            "description": "Individual financing tranches in this deal",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Unique identifier for the financing"
                },
                "type": {
                  "type": "string",
                  "description": "Type of financing"
                },
                "size_usd": {
                  "type": "number",
                  "nullable": true,
                  "description": "Financing amount in USD",
                  "example": 25000000
                },
                "size_native": {
                  "type": "number",
                  "nullable": true,
                  "description": "Financing amount in native currency",
                  "example": 25000000
                },
                "currency": {
                  "type": "string",
                  "nullable": true,
                  "description": "Currency code for size_native",
                  "example": "USD"
                }
              }
            }
          }
        }
      },
      "LocationInfo": {
        "type": "object",
        "nullable": true,
        "properties": {
          "name": {
            "type": "string",
            "description": "Location name"
          },
          "permalink": {
            "type": "string",
            "description": "Location permalink"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
        ]
      },
      "CompaniesValidationError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "VALIDATION_ERROR"
                ],
                "example": "VALIDATION_ERROR"
              },
              "message": {
                "type": "string",
                "example": "Invalid request parameters"
              },
              "details": {
                "type": "object",
                "properties": {
                  "errors": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The parameter name that failed validation",
                          "example": "financing_types"
                        },
                        "value": {
                          "type": "string",
                          "description": "The invalid value provided",
                          "example": "series-a"
                        },
                        "message": {
                          "type": "string",
                          "description": "Human-readable error message",
                          "example": "Invalid financing type(s): series-a. Valid options are: SERIES_A, SERIES_B, SEED, ..."
                        },
                        "code": {
                          "type": "string",
                          "description": "Machine-readable error code",
                          "example": "INVALID_FINANCING_TYPE"
                        },
                        "validOptions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "List of valid values for enum parameters",
                          "example": [
                            "SERIES_A",
                            "SERIES_B",
                            "SEED"
                          ]
                        }
                      }
                    }
                  },
                  "help": {
                    "type": "string",
                    "example": "Please check your request parameters and ensure they meet the required format and constraints."
                  }
                }
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "NotFoundError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "COMPANY_NOT_FOUND"
                ],
                "example": "COMPANY_NOT_FOUND"
              },
              "message": {
                "type": "string",
                "example": "Company not found"
              },
              "details": {
                "type": "object",
                "properties": {
                  "help": {
                    "type": "string",
                    "example": "Please check the company identifier (ID, domain, LinkedIn URL, or Crunchbase URL) and try again"
                  }
                }
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "Investor": {
        "type": "object",
        "description": "Full investor profile",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the investor"
          },
          "name": {
            "type": "string",
            "description": "Investor name"
          },
          "total_deal_count": {
            "type": "integer",
            "description": "Total number of deals"
          },
          "lead_deal_count": {
            "type": "integer",
            "description": "Number of deals where investor was lead"
          },
          "deal_count_last_12_months": {
            "type": "integer",
            "description": "Deals in the last 12 months"
          },
          "lead_deal_count_last_12_months": {
            "type": "integer",
            "description": "Lead deals in the last 12 months"
          },
          "most_recent_deal_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date of the most recent deal"
          },
          "guru_permalink": {
            "type": "string",
            "description": "Fundable permalink for the investor"
          },
          "domain": {
            "type": "string",
            "nullable": true,
            "description": "Investor domain"
          },
          "website": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Investor website URL"
          },
          "linkedin": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Investor LinkedIn URL"
          },
          "pitchbook": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Investor PitchBook URL"
          },
          "crunchbase": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Investor Crunchbase URL"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the investor"
          },
          "legal_name": {
            "type": "string",
            "nullable": true,
            "description": "Legal name of the investor"
          },
          "num_employees": {
            "type": "string",
            "nullable": true,
            "description": "Employee count range",
            "example": "101-250"
          },
          "investment_stage": {
            "type": "string",
            "nullable": true,
            "description": "Investment stage focus",
            "example": "Series A"
          },
          "contact_email": {
            "type": "string",
            "nullable": true,
            "format": "email",
            "description": "Contact email (when available)"
          },
          "contact_phone": {
            "type": "string",
            "nullable": true,
            "description": "Contact phone number (when available)"
          },
          "location": {
            "$ref": "#/components/schemas/InvestorsLocationInfo"
          },
          "top_industries": {
            "type": "array",
            "description": "Top industries invested in",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "permalink": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                }
              }
            }
          },
          "top_locations": {
            "type": "array",
            "description": "Top portfolio company locations",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "full_name": {
                  "type": "string"
                },
                "permalink": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                }
              }
            }
          },
          "top_round_types": {
            "type": "array",
            "description": "Most common round types",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "required": [
          "id",
          "name",
          "guru_permalink",
          "total_deal_count",
          "lead_deal_count",
          "deal_count_last_12_months"
        ]
      },
      "InvestorListItem": {
        "description": "Investor with optional portfolio filter counts, returned from the POST /investors endpoint",
        "allOf": [
          {
            "$ref": "#/components/schemas/Investor"
          },
          {
            "type": "object",
            "properties": {
              "filtered_deal_count": {
                "type": "integer",
                "nullable": true,
                "description": "Number of deals matching portfolio filters (present when portfolio filters are active)"
              },
              "filtered_lead_count": {
                "type": "integer",
                "nullable": true,
                "description": "Number of lead deals matching portfolio filters (present when portfolio filters are active)"
              }
            }
          }
        ]
      },
      "InvestorsLocationInfo": {
        "type": "object",
        "description": "Investor location details",
        "properties": {
          "region": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "North America"
              },
              "permalink": {
                "type": "string",
                "example": "north-america"
              }
            }
          },
          "country": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "United States"
              },
              "permalink": {
                "type": "string",
                "example": "united-states"
              }
            }
          },
          "state": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "California"
              },
              "permalink": {
                "type": "string",
                "example": "california"
              }
            }
          },
          "city": {
            "type": "object",
            "nullable": true,
            "properties": {
              "name": {
                "type": "string",
                "example": "San Francisco"
              },
              "permalink": {
                "type": "string",
                "example": "san-francisco-california"
              }
            }
          }
        }
      },
      "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"
        ]
      },
      "ParameterValidationError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "VALIDATION_ERROR"
              },
              "message": {
                "type": "string",
                "example": "Invalid request parameters"
              },
              "details": {
                "type": "object",
                "properties": {
                  "errors": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string",
                          "nullable": true
                        },
                        "message": {
                          "type": "string"
                        },
                        "code": {
                          "type": "string"
                        },
                        "validOptions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "help": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "required": [
          "success",
          "error"
        ]
      },
      "InvestorSearchResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the investor",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "guru_permalink": {
            "type": "string",
            "nullable": true,
            "description": "Fundable permalink for the investor",
            "example": "acme-ventures"
          },
          "name": {
            "type": "string",
            "description": "Investor name",
            "example": "Acme Ventures"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Brief description of the investor",
            "example": "Early-stage venture capital firm focused on AI startups"
          },
          "relevance_score": {
            "type": "number",
            "description": "Search relevance score (0-1)",
            "example": 0.92
          },
          "domain": {
            "type": "string",
            "nullable": true,
            "description": "Investor website domain",
            "example": "acmeventures.com"
          },
          "website": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Investor website URL"
          },
          "linkedin": {
            "type": "string",
            "nullable": true,
            "description": "LinkedIn profile URL"
          },
          "crunchbase": {
            "type": "string",
            "nullable": true,
            "description": "Crunchbase profile URL"
          }
        }
      },
      "InvestorsNotFoundError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "INVESTOR_NOT_FOUND"
                ],
                "example": "INVESTOR_NOT_FOUND"
              },
              "message": {
                "type": "string",
                "example": "Investor not found"
              },
              "details": {
                "type": "object",
                "properties": {
                  "help": {
                    "type": "string",
                    "example": "Please check the investor identifier (ID, domain, LinkedIn URL, or Crunchbase URL) and try again"
                  }
                }
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "PersonSearchResult": {
        "type": "object",
        "description": "Constant unified person shape \u2014 every row carries every field. Investor aggregates live\nunder `investor_highlights` (null for non-investors); discriminator flags `is_investor` /\n`is_angel` / `has_led_deal` and `investment_firms` stay top-level. `employment_history`\nand `education_history` are capped at 3 in the search response; the detail endpoint\nreturns the full lists.\n",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "example": "Jane Doe"
          },
          "title": {
            "type": "string",
            "nullable": true,
            "description": "Current job title",
            "example": "CEO"
          },
          "linkedin_url": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Canonical LinkedIn person URL"
          },
          "crunchbase_url": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Canonical Crunchbase person URL"
          },
          "twitter_url": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "description": "Canonical Twitter/X profile URL"
          },
          "location": {
            "type": "string",
            "nullable": true,
            "example": "San Francisco, CA"
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "example": "US"
          },
          "about": {
            "type": "string",
            "nullable": true,
            "description": "LinkedIn bio/about section"
          },
          "is_founder": {
            "type": "boolean"
          },
          "current_company": {
            "$ref": "#/components/schemas/PersonCurrentCompany"
          },
          "employment_history": {
            "type": "array",
            "description": "Recent employment (max 3 items in search; full list on detail endpoint)",
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/EmploymentRecord"
            }
          },
          "education_history": {
            "type": "array",
            "description": "Education records (max 3 items in search; full list on detail endpoint)",
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/EducationRecord"
            }
          },
          "is_investor": {
            "type": "boolean",
            "description": "Whether the person has any tracked investment activity"
          },
          "is_angel": {
            "type": "boolean",
            "description": "Whether the person makes angel investments"
          },
          "has_led_deal": {
            "type": "boolean",
            "description": "Whether the person has ever led a deal"
          },
          "investment_firms": {
            "type": "array",
            "description": "Firms the person invests under (empty for pure angels)",
            "items": {
              "$ref": "#/components/schemas/Firm"
            }
          },
          "investor_highlights": {
            "nullable": true,
            "description": "Aggregated investor activity. Null when `is_investor` is false.",
            "$ref": "#/components/schemas/InvestorHighlights"
          },
          "filtered_deal_count": {
            "type": "integer",
            "nullable": true,
            "description": "Count of deals matching the `investor.deals.*` filters. Populated only when any `investor.deals.*` filter is present; otherwise null."
          },
          "filtered_lead_count": {
            "type": "integer",
            "nullable": true,
            "description": "Of the matching deals, how many the person/firm led. Populated only when any `investor.deals.*` filter is present."
          },
          "filtered_most_recent_date": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Most recent matching-deal date. Populated only when any `investor.deals.*` filter is present."
          }
        }
      },
      "PersonDetail": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PersonSearchResult"
          },
          {
            "type": "object",
            "description": "Detail endpoint returns the same shape as search but with full (unbounded) employment and education history.",
            "properties": {
              "employment_history": {
                "type": "array",
                "description": "Full employment history (no item cap)",
                "items": {
                  "$ref": "#/components/schemas/EmploymentRecord"
                }
              },
              "education_history": {
                "type": "array",
                "description": "Full education history (no item cap)",
                "items": {
                  "$ref": "#/components/schemas/EducationRecord"
                }
              }
            }
          }
        ]
      },
      "PersonCurrentCompany": {
        "type": "object",
        "nullable": true,
        "description": "Current employer summary. Null when the person has no current employer.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "permalink": {
            "type": "string",
            "nullable": true,
            "description": "Fundable permalink for the company"
          },
          "domain": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "EmploymentRecord": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "company_name": {
            "type": "string",
            "nullable": true
          },
          "company_id": {
            "type": "string",
            "nullable": true
          },
          "company_url": {
            "type": "string",
            "nullable": true,
            "format": "uri"
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "end_date": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "null if current position"
          },
          "is_current": {
            "type": "boolean"
          }
        }
      },
      "EducationRecord": {
        "type": "object",
        "properties": {
          "school_name": {
            "type": "string",
            "nullable": true
          },
          "school_id": {
            "type": "string",
            "nullable": true
          },
          "school_url": {
            "type": "string",
            "nullable": true,
            "format": "uri"
          },
          "degree": {
            "type": "string",
            "nullable": true
          },
          "field_of_study": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "type": "string",
            "nullable": true
          },
          "end_date": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "Firm": {
        "type": "object",
        "description": "Firm (parent investor) the person invests under",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "permalink": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "deal_count": {
            "type": "integer",
            "description": "Number of deals this person has done under this firm"
          },
          "last_deal_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          }
        }
      },
      "InvestorHighlights": {
        "type": "object",
        "description": "Aggregated investor activity. Counts dedupe by deal across angel + firm contributions.",
        "properties": {
          "total_deal_count": {
            "type": "integer",
            "description": "Total tracked deals for this person",
            "example": 12
          },
          "lead_deal_count": {
            "type": "integer",
            "description": "Total deals the person led"
          },
          "deal_count_last_12_months": {
            "type": "integer",
            "description": "Deals in the last 12 months (any role)"
          },
          "lead_deal_count_last_12_months": {
            "type": "integer",
            "description": "Lead deals in the last 12 months"
          },
          "most_recent_deal_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "top_industries": {
            "type": "array",
            "description": "Top portfolio industries by deal count (max 5)",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "permalink": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                }
              }
            }
          },
          "top_locations": {
            "type": "array",
            "description": "Top portfolio company cities by deal count (max 5)",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "full_name": {
                  "type": "string"
                },
                "permalink": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "example": "CITY"
                },
                "count": {
                  "type": "integer"
                }
              }
            }
          },
          "top_round_types": {
            "type": "array",
            "description": "Top financing round types by deal count (max 5)",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "SERIES_A"
                },
                "count": {
                  "type": "integer"
                }
              }
            }
          }
        }
      },
      "PaginationMeta": {
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "Total matching results across all pages",
            "example": 1250
          },
          "page": {
            "type": "integer",
            "example": 0
          },
          "page_size": {
            "type": "integer",
            "example": 25
          },
          "credits_used": {
            "type": "integer",
            "example": 25
          },
          "credit_source": {
            "type": "string",
            "nullable": true,
            "enum": [
              "monthly",
              "purchased"
            ]
          },
          "monthly_credits_remaining": {
            "type": "integer",
            "nullable": true,
            "example": 990
          },
          "purchased_credits_remaining": {
            "type": "integer",
            "nullable": true,
            "example": 500
          }
        }
      },
      "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"
                  }
                }
              }
            }
          }
        }
      },
      "PeopleValidationError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "VALIDATION_ERROR"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "properties": {
                  "errors": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "code": {
                          "type": "string"
                        },
                        "validOptions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "UnknownParamError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "UNKNOWN_PARAMETER"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "properties": {
                  "unknownParameters": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "allowedParameters": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "InvalidIdentifierError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "INVALID_IDENTIFIER"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "properties": {
                  "help": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "PeopleNotFoundError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "PERSON_NOT_FOUND"
              },
              "message": {
                "type": "string",
                "example": "Person not found"
              },
              "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"
        ]
      },
      "SemanticUsageLimitError": {
        "type": "object",
        "description": "Monthly semantic-search usage limit exceeded. Only returned when the request included\n`company.search_query` or `investor.deals.search_query`.\n",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "USAGE_LIMIT_EXCEEDED"
              },
              "message": {
                "type": "string",
                "example": "Search limit exceeded"
              },
              "details": {
                "type": "object",
                "properties": {
                  "failed_block": {
                    "type": "string",
                    "enum": [
                      "company",
                      "investor.deals"
                    ],
                    "description": "Which semantic call hit the limit. Optional \u2014 only present on the unified people endpoint, which can issue two semantic calls per request."
                  },
                  "currentUsage": {
                    "type": "integer",
                    "description": "Current monthly semantic-search count",
                    "example": 1000
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Monthly semantic-search ceiling for this API key tier",
                    "example": 1000
                  },
                  "help": {
                    "type": "string",
                    "example": "You have reached your search usage limit. Upgrade your plan or wait for the next cycle."
                  }
                }
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "SemanticTimeoutError": {
        "type": "object",
        "description": "Semantic search timed out. Only returned when the request included\n`company.search_query` or `investor.deals.search_query`.\n",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "TIMEOUT"
              },
              "message": {
                "type": "string",
                "example": "The semantic search operation timed out. Please try a simpler query."
              },
              "details": {
                "type": "object",
                "properties": {
                  "failed_block": {
                    "type": "string",
                    "enum": [
                      "company",
                      "investor.deals"
                    ],
                    "description": "Which semantic call timed out"
                  },
                  "help": {
                    "type": "string",
                    "example": "Try a simpler query or fewer filters"
                  }
                }
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "PeopleInsufficientCreditsError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "INSUFFICIENT_CREDITS"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "properties": {
                  "credits_needed": {
                    "type": "integer",
                    "nullable": true
                  },
                  "monthly_credits_remaining": {
                    "type": "integer"
                  },
                  "purchased_credits_remaining": {
                    "type": "integer"
                  },
                  "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"
              }
            }
          }
        }
      },
      "AlertConfiguration": {
        "type": "object",
        "description": "Alert configuration metadata including filters and settings",
        "properties": {
          "configuration_id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the alert configuration",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "configuration_name": {
            "type": "string",
            "description": "User-defined name for the alert",
            "example": "AI Startups Series A"
          },
          "frequency": {
            "type": "string",
            "description": "How often the alert runs",
            "enum": [
              "DAILY",
              "WEEKLY",
              "BIWEEKLY",
              "MONTHLY"
            ],
            "example": "WEEKLY"
          },
          "description": {
            "type": "string",
            "description": "Alert description combining custom, alert, and semantic descriptions",
            "example": "Track AI and ML startups raising Series A funding"
          },
          "filters": {
            "type": "object",
            "description": "Alert filter criteria",
            "properties": {
              "industries": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Industry permalinks to filter by. Use /industry/search to find permalinks; a value that is not an exact permalink is silently ignored.",
                "example": [
                  "artificial-intelligence",
                  "machine-learning"
                ]
              },
              "super_categories": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Super category permalinks to filter by. Use /industry/search to find permalinks; a value that is not an exact permalink is silently ignored.",
                "example": [
                  "software"
                ]
              },
              "locations": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Location permalinks to filter by. Use /location/search to find permalinks; a value that is not an exact permalink is silently ignored.",
                "example": [
                  "san-francisco-bay-area",
                  "new-york-new-york"
                ]
              },
              "financing_types": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Types of financing rounds to include. NOTE: the Alerts API accepts human-readable round names here (e.g. \"Series A\", \"Seed\"), which differs from /deals and /companies \u2014 those use the canonical enum (e.g. SERIES_A, SEED).",
                "example": [
                  "Series A",
                  "Series B"
                ]
              },
              "deal_size_min": {
                "type": "number",
                "nullable": true,
                "description": "Minimum deal size in USD",
                "example": 1000000
              },
              "deal_size_max": {
                "type": "number",
                "nullable": true,
                "description": "Maximum deal size in USD",
                "example": 10000000
              },
              "num_employees": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Employee count ranges",
                "example": [
                  "1-10",
                  "11-50",
                  "51-100"
                ]
              },
              "investors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Investor identifier"
                    },
                    "name": {
                      "type": "string",
                      "description": "Investor name"
                    }
                  }
                },
                "description": "Specific investors to filter by",
                "example": [
                  {
                    "id": "sequoia-capital",
                    "name": "Sequoia Capital"
                  }
                ]
              },
              "companies": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Company identifier"
                    },
                    "name": {
                      "type": "string",
                      "description": "Company name"
                    }
                  }
                },
                "description": "Specific companies to filter by",
                "example": [
                  {
                    "id": "stripe",
                    "name": "Stripe"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "configuration_id",
          "configuration_name",
          "frequency",
          "description",
          "filters"
        ]
      },
      "Alert": {
        "type": "object",
        "properties": {
          "alertId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the alert configuration",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "alertName": {
            "type": "string",
            "description": "Name of the alert configuration",
            "example": "Weekly AI Funding Deals"
          },
          "alertFrequency": {
            "type": "string",
            "description": "Frequency setting of the alert",
            "enum": [
              "DAILY",
              "WEEKLY",
              "BIWEEKLY",
              "MONTHLY"
            ],
            "example": "WEEKLY"
          },
          "totalDealCount": {
            "type": "integer",
            "description": "Total number of deals for this alert",
            "example": 25
          },
          "deals": {
            "type": "array",
            "description": "Array of deals that matched the alert criteria (flattened from all time periods, sorted by date DESC)",
            "items": {
              "$ref": "#/components/schemas/SimplifiedDeal"
            }
          }
        },
        "required": [
          "alertId",
          "alertName",
          "alertFrequency",
          "totalDealCount",
          "deals"
        ]
      },
      "SimplifiedDeal": {
        "type": "object",
        "description": "Simplified deal structure optimized for API consumption.\nFlattens company information and removes nested structures for easier integration.\nDeals are sorted by date descending (newest first) and duplicates are removed.\n",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the deal",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "company_id": {
            "type": "string",
            "description": "Unique identifier for the company",
            "example": "abc123"
          },
          "company_name": {
            "type": "string",
            "nullable": true,
            "description": "Company name",
            "example": "Acme AI Corp"
          },
          "company_guru_permalink": {
            "type": "string",
            "nullable": true,
            "description": "Fundable permalink for the company",
            "example": "acme-ai-corp"
          },
          "round_type": {
            "type": "string",
            "nullable": true,
            "description": "Type of funding round",
            "example": "SERIES_A"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date of the funding round (ISO 8601 format)",
            "example": "2024-01-15T00:00:00.000Z"
          },
          "total_round_raised": {
            "type": "number",
            "nullable": true,
            "description": "Total amount raised in the round (USD $M)",
            "example": 25
          },
          "company_website": {
            "type": "string",
            "nullable": true,
            "description": "Company website domain",
            "example": "acme.com"
          },
          "company_linkedin": {
            "type": "string",
            "nullable": true,
            "description": "Company LinkedIn URL",
            "example": "https://linkedin.com/company/acme"
          },
          "location": {
            "type": "object",
            "description": "Company location details",
            "properties": {
              "city": {
                "type": "string",
                "nullable": true,
                "description": "City name",
                "example": "San Francisco"
              },
              "state": {
                "type": "string",
                "nullable": true,
                "description": "State/province name",
                "example": "California"
              },
              "country": {
                "type": "string",
                "nullable": true,
                "description": "Country name",
                "example": "United States"
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "Geographic region name",
                "example": "North America"
              }
            }
          },
          "deal_short_description": {
            "type": "string",
            "nullable": true,
            "description": "Brief description of the deal",
            "example": "Series A funding round"
          },
          "deal_long_description": {
            "type": "string",
            "nullable": true,
            "description": "Detailed description of the deal",
            "example": "Company raised $25M in Series A funding led by Acme Ventures"
          },
          "reasoning": {
            "type": "string",
            "nullable": true,
            "description": "AI-generated reasoning for why this deal matched the alert criteria",
            "example": "This deal matches your AI startups criteria with focus on machine learning"
          },
          "articles": {
            "type": "array",
            "description": "News articles related to this deal",
            "items": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "description": "URL to the article",
                  "example": "https://techcrunch.com/article"
                },
                "is_primary": {
                  "type": "boolean",
                  "description": "Whether this is the primary article for the deal",
                  "example": true
                },
                "publishedDate": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "Article publication date (ISO 8601 format)",
                  "example": "2024-01-15T00:00:00.000Z"
                }
              }
            }
          }
        },
        "required": [
          "id",
          "company_id",
          "company_name",
          "company_guru_permalink",
          "round_type",
          "date",
          "total_round_raised",
          "company_website",
          "company_linkedin",
          "location",
          "deal_short_description",
          "deal_long_description",
          "reasoning",
          "articles"
        ],
        "example": {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "company_id": "abc123",
          "company_name": "Acme AI Corp",
          "company_guru_permalink": "acme-ai-corp",
          "round_type": "SERIES_A",
          "date": "2024-01-15T00:00:00.000Z",
          "total_round_raised": 25,
          "company_website": "acme.com",
          "company_linkedin": "https://linkedin.com/company/acme",
          "location": {
            "city": "San Francisco",
            "state": "California",
            "country": "United States",
            "region": "North America"
          },
          "deal_short_description": "Series A funding round",
          "deal_long_description": "Company raised $25M in Series A funding led by Acme Ventures",
          "reasoning": "This deal matches your AI startups criteria with focus on machine learning and enterprise software",
          "articles": [
            {
              "link": "https://techcrunch.com/article",
              "is_primary": true,
              "publishedDate": "2024-01-15T00:00:00.000Z"
            }
          ]
        }
      },
      "AlertsValidationError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "VALIDATION_ERROR",
                  "UNKNOWN_PARAMETER"
                ],
                "example": "VALIDATION_ERROR"
              },
              "message": {
                "type": "string",
                "example": "Invalid request parameters"
              },
              "details": {
                "type": "object",
                "properties": {
                  "errors": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The parameter name that failed validation",
                          "example": "alertId"
                        },
                        "value": {
                          "type": "string",
                          "description": "The invalid value provided",
                          "example": "not-a-uuid"
                        },
                        "message": {
                          "type": "string",
                          "description": "Human-readable error message",
                          "example": "Alert ID must be a valid UUID"
                        },
                        "code": {
                          "type": "string",
                          "description": "Machine-readable error code",
                          "example": "INVALID_ALERT_ID"
                        }
                      }
                    }
                  },
                  "help": {
                    "type": "string",
                    "example": "Please check your request parameters and ensure they meet the required format and constraints."
                  }
                }
              }
            }
          },
          "statusCode": {
            "type": "integer",
            "example": 422
          }
        },
        "required": [
          "success",
          "error"
        ]
      },
      "MissingParametersError": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "example": "MISSING_PARAMETERS"
              },
              "message": {
                "type": "string",
                "example": "Missing required parameters"
              },
              "details": {
                "type": "object",
                "properties": {
                  "missingParams": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "alert_ids",
                      "start_date"
                    ]
                  },
                  "help": {
                    "type": "string",
                    "example": "Please provide all required parameters: alert_ids, start_date, end_date"
                  }
                }
              }
            }
          },
          "statusCode": {
            "type": "integer",
            "example": 400
          }
        },
        "required": [
          "success",
          "error"
        ]
      },
      "LocationSearchResult": {
        "type": "object",
        "properties": {
          "permalink": {
            "type": "string",
            "description": "Location permalink identifier",
            "example": "san-francisco-california"
          },
          "name": {
            "type": "string",
            "description": "Location name",
            "example": "San Francisco"
          },
          "location_type": {
            "type": "string",
            "description": "Type of location",
            "enum": [
              "REGION",
              "COUNTRY",
              "STATE",
              "CITY"
            ],
            "example": "CITY"
          }
        }
      },
      "IndustrySearchResult": {
        "type": "object",
        "properties": {
          "permalink": {
            "type": "string",
            "description": "Industry or super category permalink identifier",
            "example": "artificial-intelligence"
          },
          "name": {
            "type": "string",
            "description": "Industry or super category name",
            "example": "Artificial Intelligence"
          },
          "industry_type": {
            "type": "string",
            "description": "Type of result",
            "enum": [
              "INDUSTRY",
              "SUPER_CATEGORY"
            ],
            "example": "INDUSTRY"
          }
        }
      },
      "OtherAuthError": {
        "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"
                  },
                  "example": {
                    "type": "object",
                    "properties": {
                      "header": {
                        "type": "string",
                        "example": "Authorization: Bearer vg_your_api_key_here"
                      },
                      "curl": {
                        "type": "string",
                        "example": "curl -H 'Authorization: Bearer vg_your_api_key_here' https://www.tryfundable.ai/api/v1/location/search?name=san+francisco"
                      }
                    }
                  },
                  "documentation": {
                    "type": "string",
                    "example": "Visit our documentation for more information about authentication"
                  }
                }
              }
            }
          }
        },
        "required": [
          "error"
        ]
      }
    }
  },
  "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"
    }
  ],
  "x-sourceSpecs": [
    "/openapi/openapi-deals.yaml",
    "/openapi/openapi-companies.yaml",
    "/openapi/openapi-investors.yaml",
    "/openapi/openapi-people.yaml",
    "/openapi/openapi-alerts.yaml",
    "/openapi/openapi-other.yaml"
  ]
}
