---
title: "Search for companies"
method: GET
path: "/api/v1/enrichment/company-search"
tags: ["Enrichment"]
---

# Search for companies

`GET /api/v1/enrichment/company-search`

## Request

- Base URL: `https://api.rodz.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rodz.io/api/v1/enrichment/company-search`
- Auth: HTTP bearer

Find companies by what they are called, by what they *do*, or purely by their
firmographics - and get back the canonical company each time: its LinkedIn company page URL plus key
details. Pass a name to resolve messy user input, pass a phrase like `"sales engagement platform"` to
find companies describing themselves that way, or pass no keywords at all and build a target list from
filters alone (e.g. every software company in France with 51-200 employees).

**Cost:** 0.5 credits per call (billed only when at least one company is returned; empty results are free).

**Input:** at least one of `keywords`, `location`, `geoId`, `companySize` or `industryId` is required
(`page` alone is not enough).
- `keywords` - matched against the company page: its name, tagline **and** description. So
  `"precision outbound"` returns companies whose about-text says it, not just ones with it in their
  name. Optional when you filter by firmographics instead.
- `location` - filter matches by location text (e.g. `"France"`). Optional.
- `geoId` - filter by LinkedIn geo ID (resolve one with `/enrichment/linkedin-geo-id`); overrides `location`. Optional.
- `companySize` - comma-separated size bands to filter by: `1-10`, `11-50`, `51-200`, `201-500`, `501-1000`, `1001-5000`, `5001-10000`, `10001+`. Optional.
- `industryId` - one or more comma-separated LinkedIn industry IDs. Optional.
- `page` - 1-based page number. Optional.

**Output** - `data` contains:
- `elements` - array of matching companies, each: `name`, `linkedinUrl`, `universalName` (the `/company/<slug>` handle), `industry`, `location`, `followers`, `logoUrl` (any field may be null).
- `pagination` - `totalPages`, `totalElements`, `pageNumber`, `pageSize`. Page through results by incrementing the `page` parameter up to `totalPages`.

**Use cases:**
- **Resolve name to LinkedIn URL** - feed the URL into `/enrichment/firmographic`, `/enrichment/people-search`, or a signal to enrich or monitor the company.
- **Find companies by what they do** - search the phrase your market uses (`"sales engagement platform"`, `"fractional CFO"`) to surface competitors, partners or acquisition targets that never mention it in their name.
- **Build a target account list** - skip `keywords` and filter on `companySize` + `industryId` + `geoId` to page through every company matching your ICP, then feed them into signals or enrichment.
- **Company picker / autocomplete** - power a type-ahead in your own app so users pick a company instead of pasting a URL.
- **Canonicalize & de-duplicate** - match your own company records against their authoritative LinkedIn page.

## Query parameters

- `keywords` string, nullable: Keywords matched against the company page — name, tagline and description — so a phrase like 'sales engagement platform' finds companies describing themselves that way, not just ones with it in their name. Optional: omit it to discover companies by firmographics instead (at least one filter required).
- `location` string, nullable: Filter by location text (e.g. 'France')
- `geoId` string, nullable: Filter by LinkedIn geo ID (overrides location)
- `companySize` string, nullable: Comma-separated size bands: 1-10,11-50,51-200,201-500,501-1000,1001-5000,5001-10000,10001+
- `industryId` string, nullable: One or more comma-separated LinkedIn industry IDs, e.g. `4` (Software Development) or `4,96`. Look IDs up by name with `GET /api/v1/enrichment/linkedin-industries?search=software` — they are not guessable and do not appear in company payloads.
- `page` integer, nullable: Page number (1-based)

## Response `200`

One page of companies matching the name, each with its LinkedIn URL.

- object: Typed response for /enrichment/company-search.
  - `data` object, nullable: One page of matching companies, or null if none found
    - `elements` object[], nullable: Matching companies
      - `name` string, nullable: Company name
      - `linkedinUrl` string, nullable: Company LinkedIn page URL
      - `universalName` string, nullable: LinkedIn vanity name / slug (the '/company/<slug>' segment)
      - `industry` string, nullable: Industry classification (may be null)
      - `location` string, nullable: Headquarters location text, e.g. 'Paris, France' (may be null)
      - `followers` string, nullable: Follower count label, e.g. '12K followers' (may be null)
      - `logoUrl` string, nullable: Company logo image URL (may be null)
    - `pagination` object, nullable: Pagination metadata
      - `totalPages` integer, nullable: Total number of result pages
      - `totalElements` integer, nullable: Total number of matches
      - `pageNumber` integer, nullable: Current page (1-based)
      - `pageSize` integer, nullable: Matches per page
  - `requestId` string, nullable: Unique request identifier

## Other responses

- `400`: No search parameter supplied — provide at least one.
- `422`: Validation Error
- `429`: Rate limit exceeded. Retry after the number of seconds in the `Retry-After` response header.

---

[API](https://skmtc.dev/rodz/apis/rodz-api.md) · [All operations](https://skmtc.dev/rodz/apis/rodz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rodz/apis/rodz-api/revisions/3003505ff896?raw)
