> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Dealroom.co: Dealroom Search Companies

> Search Dealroom startup and company profiles by keyword and filters. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

Search Dealroom startup and company profiles by keyword and filters.

<Info>
  Tool ID: `dealroom_search_companies`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'dealroom_search_companies',
  {
    "keyword": "software companies hiring engineers",
    "keyword_type": "default",
    "keyword_match_type": "fuzzy"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute dealroom_search_companies --input '{
  "keyword": "software companies hiring engineers",
  "keyword_type": "default",
  "keyword_match_type": "fuzzy"
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "total": 123,
    "items": [
      {
        "type": "example",
        "id": 123,
        "name": "Example"
      }
    ]
  }
}
```

Use `deepline tools get dealroom_search_companies --json` for the latest machine-readable contract.

## Input reference

The Companies search endpoint allows you to search and find individual or a set of companies based on specific search criteria. The link to the database is live, so any results available in the Dealroom platform are also directly available through this endpoint. For most recent updates to the dataset of companies, use the sorting by `last_updated_utc`. The endpoint uses the **POST method** and allows you to filter, search and sort using several criteria, listed below. It has a limit of **100 results**, and the default limit is **10 results**.You can retrieve more than 10 results with /companies. However, you cannot retrieve an offset past 10,000 results, please use [companies/bulk](https://docs.dealroom.co/docs/premium-api/operations/searchCompaniesBoolBulk) endpoint for these requests. Disclaimer: The `funding`, `investor` and `team` data fields are limited to 5 results per company. See the live schema below for the complete notes.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.keyword` | `string \| array` | No | — | The keyword used in the request to search by. This should be input as a string or array parameter. Arrays allowed only when `keyword_type=default_next`. |
| `payload.keyword_type` | `"default" \| "default_next" \| "name" \| "website_domain"` | No | `"default"` | The type of keyword you want to search by. Can be: \* default: search through name and website \* default\_next: search through name, aliases, website, tagline, about and params \* name: searches by name \* website\_domain: searches through the path (website) of the companies Allowed: `default`, `default_next`, `name`, `website_domain`. |
| `payload.keyword_match_type` | `"fuzzy" \| "exact" \| "all" \| "any"` | No | `"fuzzy"` | The type of matching type that the search should use. There are several available types: \* fuzzy: returns names that contain terms similar to the search term, measured by a Levenshtein edit distance. Read the [ElasticSearch guide](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html) for more details. Not available for `keyword_type=default_next`; \* exact: returns names that contain an exact term in a provided field. Read the \[ElasticSearch See the live schema for the complete constraint. |
| `payload.form_data` | `object` | No | — | Allows you to apply filters to your search. All the filters available can be found in the `companies/filters` endpoint. For quick reference, use a POST method on the following URL: The field can take in several different conditions: \* must: The clause (query) must appear in matching documents and will contribute to the score. \* should: The clause (query) should appear in the matching document. \* must\_not: The clause (query) must not appear in the matching documents |
| `payload.fields` | `string` | No | `"id,name,path,images(32x32,74x74,100x100),tagline,hq_locations,growth_stage,employees,total_funding,last_updated"` | Allows you to select which fields the response should return. All available fields are specified below(by data type) and in the response sample to the right. The fields should be input as a comma-separated string . Nested fields are supported using the brackets notation. \* Default Fields: `id,name,path,images(32x32,74x74,100x100),tagline,hq_locations,growth_stage,employees,total_funding,last_updated` \* All Fields: \`\`\` See the live schema for the complete constraint. |
| `payload.sort` | `"name" \| "industries" \| "growth_stage" \| "locations" \| "total_funding" \| "tags" \| "traffic_summary" \| "last_funding_date" \| "last_updated" \| "last_updated_utc" \| "created_utc" \| "website_traffic_3_months_growth_rank" \| "website_traffic_6_months_growth_rank" \| "website_traffic_12_months_growth_rank" \| "website_traffic_3_months_growth_relative" \| "website_traffic_6_months_growth_relative" \| "website_traffic_12_months_growth_relative" \| "app_3_months_growth_rank" \| "app_6_months_growth_rank" \| "app_12_months_growth_rank" \| "app_3_months_growth_relative" \| "app_6_months_growth_relative" \| "app_12_months_growth_relative" \| "employee_3_months_growth_rank" \| "employee_6_months_growth_rank" \| "employee_12_months_growth_rank" \| "employee_3_months_growth_relative" \| "employee_6_months_growth_relative" \| "employee_12_months_growth_relative" \| "dealroom_signal" \| "growth_rate"` | No | — | Allowed: `name`, `industries`, `growth_stage`, `locations`, `total_funding`, `tags`, `traffic_summary`, `last_funding_date`, `last_updated`, `last_updated_utc`, `created_utc`, `website_traffic_3_months_growth_rank`, `website_traffic_6_months_growth_rank`, `website_traffic_12_months_growth_rank`, `website_traffic_3_months_growth_relative`, `website_traffic_6_months_growth_relative`, `website_traffic_12_months_growth_relative`, `app_3_months_growth_rank`, `app_6_months_growth_rank`, See the live schema for the complete constraint. |
| `payload.limit` | `integer` | No | `10` | Allows you to set the limit of items in the response. The default of the field is **10** and the maximum is **100** items per response |
| `payload.offset` | `integer` | No | `0` | Allows you to offset the first results to return by a specified number |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ````json theme={null}
  {
    "type": "object",
    "description": "The Companies search endpoint allows you to search and find individual or a set of companies based on specific search criteria. The link to the database is live, so any results available in the Dealroom platform are also directly available through this endpoint. For most recent updates to the dataset of companies, use the sorting by `last_updated_utc`. The endpoint uses the **POST method** and allows you to filter, search and sort using several criteria, listed below. It has a limit of **100 results**, and the default limit is **10 results**.You can retrieve more than 10 results with /companies. However, you cannot retrieve an offset past 10,000 results, please use [companies/bulk](https://docs.dealroom.co/docs/premium-api/operations/searchCompaniesBoolBulk) endpoint for these requests. Disclaimer: The `funding`, `investor` and `team` data fields are limited to 5 results per company. This limit is in place for performance reasons. To get the full number of results, please use the respective [Funding rounds](https://docs.dealroom.co/docs/premium-api/operations/companyFundings), [Investors](https://docs.dealroom.co/docs/premium-api/operations/companyInvestors) or [Team](https://docs.dealroom.co/docs/premium-api/operations/companyTeam) endpoints. Before using this endpoint first check [companies/filters](https://docs.dealroom.co/docs/premium-api/operations/searchCompaniesBoolFilters) endpoint there you can see list of filters available, based upon you can filter results. For a better locations filtering, please use the [Lookup Locations](https://docs.dealroom.co/docs/premium-api/operations/lookupLocations) endpoint to get the list of locations to filter by.",
    "properties": {
      "keyword": {
        "description": "The keyword used in the request to search by. This should be input as a string or array parameter. Arrays allowed only when `keyword_type=default_next`.",
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ]
      },
      "keyword_type": {
        "type": "string",
        "description": "The type of keyword you want to search by. Can be: * default: search through name and website * default_next: search through name, aliases, website, tagline, about and params * name: searches by name * website_domain: searches through the path (website) of the companies",
        "default": "default",
        "enum": [
          "default",
          "default_next",
          "name",
          "website_domain"
        ]
      },
      "keyword_match_type": {
        "type": "string",
        "description": "The type of matching type that the search should use. There are several available types: * fuzzy: returns names that contain terms similar to the search term, measured by a Levenshtein edit distance. Read the [ElasticSearch guide](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html) for more details. Not available for `keyword_type=default_next`; * exact: returns names that contain an exact term in a provided field. Read the [ElasticSearch guide](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html) for more details. Not available for `keyword_type=default_next`; * all: returns names that contain all terms in the search term or terms when keyword is array. Available when `keyword_type=default_next` only; * any: returns names that contain any terms in the search term or terms when keyword is array. Available when `keyword_type=default_next` only;",
        "default": "fuzzy",
        "enum": [
          "fuzzy",
          "exact",
          "all",
          "any"
        ]
      },
      "form_data": {
        "type": "object",
        "description": "Allows you to apply filters to your search. All the filters available can be found in the `companies/filters` endpoint. For quick reference, use a POST method on the following URL: The field can take in several different conditions: * must: The clause (query) must appear in matching documents and will contribute to the score. * should: The clause (query) should appear in the matching document. * must_not: The clause (query) must not appear in the matching documents",
        "properties": {
          "must": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          "should": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          },
          "must_not": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        },
        "additionalProperties": false
      },
      "fields": {
        "type": "string",
        "description": "Allows you to select which fields the response should return. All available fields are specified below(by data type) and in the response sample to the right. The fields should be input as a comma-separated string . Nested fields are supported using the brackets notation. * Default Fields: ``` id,name,path,images(32x32,74x74,100x100),tagline,hq_locations,growth_stage,employees,total_funding,last_updated ``` * All Fields: ``` type,id,name,deleted,path,tagline,about,about_ai_generated,url,website_url,twitter_url,facebook_url,linkedin_url,google_url,playmarket_app_id,appstore_app_id,images,employees,employees_latest,industries,sub_industries,service_industries,technologies,income_streams,growth_stage,hq_locations,legal_entities,client_focus,revenues,tags,ownerships,launch_year,launch_month,closing_year,closing_month,has_promising_founder,has_strong_founder,has_super_founder,total_funding,total_funding_currency,total_funding_source,last_funding,last_funding_source,company_status,last_updated,last_updated_utc,last_funding_date,created_utc,facebook_likes_chart,twitter_tweets_chart,twitter_followers_chart,twitter_favorites_chart,employees_chart,website_traffic_3_months_growth_unique,website_traffic_3_months_growth_percentile,website_traffic_3_months_growth_relative,website_traffic_3_months_growth_delta,website_traffic_6_months_growth_unique,website_traffic_6_months_growth_percentile,website_traffic_6_months_growth_relative,website_traffic_6_months_growth_delta,website_traffic_12_months_growth_unique,website_traffic_12_months_growth_percentile,website_traffic_12_months_growth_relative,website_traffic_12_months_growth_delta,app_3_months_growth_unique,app_3_months_growth_percentile,app_3_months_growth_relative,app_6_months_growth_unique,app_6_months_growth_percentile,app_6_months_growth_relative,app_12_months_growth_unique,app_12_months_growth_percentile,app_12_months_growth_relative,employee_3_months_growth_unique,employee_3_months_growth_percentile,employee_3_months_growth_relative,employee_3_months_growth_delta,employee_6_months_growth_unique,employee_6_months_growth_percentile,employee_6_months_growth_relative,employee_6_months_growth_delta,employee_12_months_growth_unique,employee_12_months_growth_percentile,employee_12_months_growth_relative,employee_12_months_growth_delta,innovation_corporate_rank,kpi_summary,team,investors,fundings,limited_partner_investments,known_limited_partners,website_traffic_estimates_chart,job_openings,app_downloads_ios_chart,app_downloads_android_chart,app_downloads_ios_incremental_chart,app_downloads_android_incremental_chart,tech_stack_predictleads,sustainable_development_goals,core_side_value,data_type,pic_number,patents_count,dealroom_signal,business_emails ```",
        "default": "id,name,path,images(32x32,74x74,100x100),tagline,hq_locations,growth_stage,employees,total_funding,last_updated"
      },
      "sort": {
        "type": "string",
        "enum": [
          "name",
          "industries",
          "growth_stage",
          "locations",
          "total_funding",
          "tags",
          "traffic_summary",
          "last_funding_date",
          "last_updated",
          "last_updated_utc",
          "created_utc",
          "website_traffic_3_months_growth_rank",
          "website_traffic_6_months_growth_rank",
          "website_traffic_12_months_growth_rank",
          "website_traffic_3_months_growth_relative",
          "website_traffic_6_months_growth_relative",
          "website_traffic_12_months_growth_relative",
          "app_3_months_growth_rank",
          "app_6_months_growth_rank",
          "app_12_months_growth_rank",
          "app_3_months_growth_relative",
          "app_6_months_growth_relative",
          "app_12_months_growth_relative",
          "employee_3_months_growth_rank",
          "employee_6_months_growth_rank",
          "employee_12_months_growth_rank",
          "employee_3_months_growth_relative",
          "employee_6_months_growth_relative",
          "employee_12_months_growth_relative",
          "dealroom_signal",
          "growth_rate"
        ]
      },
      "limit": {
        "type": "integer",
        "description": "Allows you to set the limit of items in the response. The default of the field is **10** and the maximum is **100** items per response",
        "default": 10
      },
      "offset": {
        "type": "integer",
        "description": "Allows you to offset the first results to return by a specified number",
        "default": 0
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ````
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.total` | `integer` | No | — | Total number of items Format: `int32`. |
| `result.data.items` | `array` | No | — | — |
| `result.data.items[].type` | `string` | No | — | The type or category of the entity. |
| `result.data.items[].id` | `integer` | No | — | Unique Dealroom identifier for the entity profile |
| `result.data.items[].name` | `string` | No | — | Entity name |
| `result.data.items[].deleted` | `boolean` | No | — | If true, this entity was already removed from Dealroom DB (deletion not yet fully propagated) |
| `result.data.items[].path` | `string \| null` | No | — | Url path at dealroom.co |
| `result.data.items[].tagline` | `string \| null` | No | — | Short description of the entity |
| `result.data.items[].about` | `string \| null` | No | — | Description or summary of the entity |
| `result.data.items[].about_ai_generated` | `boolean` | No | — | — |
| `result.data.items[].url` | `string` | No | — | Url at dealroom.co |
| `result.data.items[].website_url` | `string \| null` | No | — | Website of the entity |
| `result.data.items[].twitter_url` | `string \| null` | No | — | URL of the entity's Twitter profile |
| `result.data.items[].facebook_url` | `string \| null` | No | — | URL of the entity's Facebook profile |
| `result.data.items[].linkedin_url` | `string \| null` | No | — | URL of the entity's LinkedIn profile |
| `result.data.items[].google_url` | `string \| null` | No | — | URL of the entity's Google plus profile |
| `result.data.items[].playmarket_app_id` | `string \| null` | No | — | The ID of the entity's mobile app in the Apple App Store |
| `result.data.items[].appstore_app_id` | `string \| null` | No | — | The ID of the entity's mobile app in the Google Play Store |
| `result.data.items[].images` | `object` | No | — | — |
| `result.data.items[].images.32x32` | `string` | No | — | Image of size 32x32 px |
| `result.data.items[].images.74x74` | `string` | No | — | Image of size 74x74 px |
| `result.data.items[].images.100x100` | `string` | No | — | Image of size 100x100 px |
| `result.data.items[].employees` | `"1" \| "2-10" \| "11-50" \| "51-200" \| "201-500" \| "501-1000" \| "1001-5000" \| "5001-10000" \| "10001+"` | No | — | Range of employees: 2-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ Allowed: `1`, `2-10`, `11-50`, `51-200`, `201-500`, `501-1000`, `1001-5000`, `5001-10000`, `10001+`. |
| `result.data.items[].employees_latest` | `integer \| null` | No | — | Latest employees exact value |
| `result.data.items[].industries` | `array` | No | — | Industries the company operates in/is related to |
| `result.data.items[].industries[].id` | `integer` | No | — | Param ID |
| `result.data.items[].industries[].name` | `string` | No | — | Param name |
| `result.data.items[].sub_industries` | `array` | No | — | Sub industries the startup operates in/is related to |
| `result.data.items[].service_industries` | `array` | No | — | Industries associated with the entity's services |
| `result.data.items[].technologies` | `array` | No | — | The technologies used by entity to operate their business |
| `result.data.items[].income_streams` | `array` | No | — | The income streams used by entity to operate their business |
| `result.data.items[].growth_stage` | `"seed stage" \| "early stage" \| "late stage" \| "mature" \| "not meaningful" \| "breakout stage"` | No | — | Entity growth stage Allowed: `seed stage`, `early stage`, `late stage`, `mature`, `not meaningful`, `breakout stage`. |
| `result.data.items[].hq_locations` | `array` | No | — | Locations of the entity's headquarters |
| `result.data.items[].hq_locations[].id` | `integer` | No | — | HQ location ID |
| `result.data.items[].hq_locations[].is_headquarters` | `boolean` | No | — | Is headquarters |
| `result.data.items[].hq_locations[].is_founding_location` | `boolean` | No | — | Is founding location |
| `result.data.items[].hq_locations[].address` | `string \| null` | No | — | HQ location address |
| `result.data.items[].hq_locations[].street` | `string \| null` | No | — | HQ location street |
| `result.data.items[].hq_locations[].street_number` | `string \| null` | No | — | HQ location street number |
| `result.data.items[].hq_locations[].zip` | `string \| null` | No | — | HQ location zip code |
| `result.data.items[].hq_locations[].lat` | `number \| null` | No | — | HQ location latitude Format: `float`. |
| `result.data.items[].hq_locations[].lon` | `number \| null` | No | — | HQ location longitude Format: `float`. |
| `result.data.items[].hq_locations[].continent` | `object \| null` | No | — | HQ location continent |
| `result.data.items[].hq_locations[].continent.id` | `integer` | No | — | Continent ID |
| `result.data.items[].hq_locations[].continent.name` | `string` | No | — | URL-friendly identifier for the continent |
| `result.data.items[].hq_locations[].continent.slug` | `string \| null` | No | — | Slug |
| `result.data.items[].hq_locations[].country` | `object \| null` | No | — | HQ location country |
| `result.data.items[].hq_locations[].country.id` | `integer` | No | — | Country ID |
| `result.data.items[].hq_locations[].country.name` | `string` | No | — | Country name |

The table shows the first 50 fields. Use the live contract below for every field.

<Info>
  This output schema is too large to embed without slowing the page. Get the complete live contract with `deepline tools get dealroom_search_companies --json`.
</Info>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Dealroom.co provider guide](/docs/providers/dealroom/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.