{
  "id": "pdl.v5.company.search",
  "object": "tool",
  "name": "Find Companies",
  "summary": "Search the People Data Labs company dataset with Elasticsearch or SQL queries.",
  "description": "Search and filter the full People Data Labs company dataset using Elasticsearch or SQL queries (provide one, not both; Elasticsearch recommended). The query runs directly against the Company Dataset without cleaning or preprocessing. Build queries from any field in the Company Schema (name, industry, size, location, funding, tech stack, etc.); the field descriptions in the Company Schema and the underlying Elasticsearch Mapping are the reference for writing effective queries. Returns up to 100 matching company records per request with scroll_token pagination; a valid query with no matches is a 200 with an empty data array. Charged per record retrieved.\n\nRaw pdl#v5/company/search endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.peopledatalabs.com/docs/reference-company-search-api).",
  "category": "lookup",
  "hosted_by": "People Data Labs",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "pdl",
      "name": "People Data Labs",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "pdl_v5_company_search",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "query": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {},
                "description": "Elasticsearch v7.7 query object run directly against the dataset. Provide EITHER query OR sql."
              },
              "size": {
                "description": "Records to return (1-100). Each returned record is one credit.",
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "scroll_token": {
                "description": "Pagination token from a previous response's scroll_token.",
                "type": "string"
              },
              "titlecase": {
                "description": "Titlecase the returned records. Default false.",
                "type": "boolean"
              },
              "pretty": {
                "description": "Pretty-print the response. Default false.",
                "type": "boolean"
              }
            },
            "required": [
              "query",
              "size"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "sql": {
                "type": "string",
                "minLength": 1,
                "description": "SQL query of the form SELECT * FROM <dataset> WHERE ... . Provide EITHER sql OR query."
              },
              "size": {
                "description": "Records to return (1-100). Each returned record is one credit.",
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "scroll_token": {
                "description": "Pagination token from a previous response's scroll_token.",
                "type": "string"
              },
              "titlecase": {
                "description": "Titlecase the returned records. Default false.",
                "type": "boolean"
              },
              "pretty": {
                "description": "Pretty-print the response. Default false.",
                "type": "boolean"
              }
            },
            "required": [
              "sql",
              "size"
            ],
            "additionalProperties": false
          }
        ]
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}