---
title: "Find the people at a company from public profiles"
method: POST
path: "/public/employees"
tags: ["public"]
---

# Find the people at a company from public profiles

`POST /public/employees`

## Request

- Base URL: `https://api.bereach.ai`
- URL: `https://api.bereach.ai/public/employees`
- Auth: HTTP bearer

The people who work at one named company now, from public profiles. Give the company by name or page address, and a role in keywords to narrow to whoever holds it. The people come from our index, about 3 weeks old at the median, so a recent job move can be missing. Cost: each search buys the smallest page that covers the count, 4 credits for up to 10, 11 for 25, 49 for 100, and another is bought only when the first did not find enough; more pays only for the searches not bought before; nothing when nobody comes back. creditsUsed says what the call spent.

## Request body

- object
  - `company` string, required: The company, by name or by its page address.
  - `keywords` string: A role to narrow to, written the way people write it on their own profile.
  - `count` integer: How many people to return.
  - `more` boolean: Continue past the people already returned for this company and role.
  - `sentence` string: The person's own words for who they want at this company. Everyone found is still checked to work at the company.

## Response `200`

People at the company

- object
  - `source` 'public', required
  - `creditsUsed` integer, required: Credits this call spent, net of anything given back. 0 when nothing was charged: a free read, a cached answer, nothing delivered.
  - `company` string, required: The company as it was searched.
  - `items` object[], required
    - `name` string, nullable, required
    - `headline` string, nullable, required
    - `currentTitle` string, nullable, required: Their job at this company, when they state one.
    - `location` string, nullable, required
    - `profileUrl` string, required
    - `imageUrl` string, nullable, required
    - `employer` object: The person's current employer, from that company's own record, when one was read for them.
      - `name` string, nullable, required
      - `employees` number, nullable, required: How many people the company employs, by its own record.
      - `industry` string, nullable, required: What kind of company it is, by its own record.
      - `hq` object, nullable, required: Where its headquarters are.
        - `city` string, nullable, required
        - `postcode` string, nullable, required
        - `country` string, nullable, required
      - `founded` number, nullable: The year it was founded.
      - `linkedinUrl` string, nullable, required: The company's own page, when known.
      - `website` string, nullable, required
      - `readAt` string, nullable, required
  - `employerFacts` object: How many people in this answer carry their employer's facts, and why the others do not.
    - `withFacts` integer, required: People in this answer whose row carries their employer's facts.
    - `noRecord` integer, required: People whose employer has no company record: their rows carry no employer facts.
    - `failed` integer, required: People whose employer could not be checked just now; asking again checks them.
    - `notChecked` integer, required: People whose employer's record was not read for this answer: their rows carry no employer facts.
  - `employerNote` string: Those counts in one sentence, to relay as written.
  - `saved` integer, nullable, required: How many of these people were written as contacts by this call. Null when that write failed.
  - `pooled` integer: How many were linked into this conversation's list.
  - `duplicates` integer: People this continuation found again that an earlier call already returned. Normal bookkeeping, never a failure.
  - `matchingKeywords` integer: When a role was given: how many people at the company hold it.
  - `keywordNote` string: Present when nobody found holds the role: the people returned are the company's, not holders of that role. Relay it.
  - `notFound` string: Present when nobody states in public that they work at this company. Nobody is returned rather than people elsewhere. Relay it.
  - `publicNote` string, required: What these people are: the ones who say in public that they work there, a slice of the team rather than its full payroll.
  - `moreAvailable` boolean, required: Whether asking again with more can still return people not yet seen.

## Other responses

- `400`: The server cannot or will not process the request due to something that is perceived to be a client error. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `401`: Although HTTP specifies "unauthorized", this response means "unauthenticated". Authenticate to continue. NOTE: 401 is also returned with code "linkedin_not_connected" on an endpoint that acts from your account (invitations, messages, your own network or inbox) when the caller IS authenticated but has no connected LinkedIn account: connect LinkedIn (not re-authenticate) to continue. Every other read never returns it. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `403`: The caller is authenticated but not allowed. Read code: subscription_required (API key or connector whose plan is not active), free_draft_limit (a free-plan limit was reached), sales_nav_seat_inactive (no active Sales Navigator seat), or forbidden (not permitted). The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `404`: The server cannot find the requested resource. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `409`: The request conflicts with the current state of the server. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `410`: The requested content has been permanently deleted from the server. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `422`: The request was well-formed but was unable to be followed due to semantic errors. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `429`: Rate limit exceeded. Read retryAfter for the wait time in seconds. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `500`: The server encountered a situation it does not know how to handle. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `502`: An upstream service returned an error. Retry after a few seconds. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.
- `503`: Capacity is temporarily exceeded. Retry after a few seconds. The body is the flat `{ error: "<text>" }` form, with `code` when the answer carries one; a few answers use the envelope.

## Changes

> 39 revisions in range; 1 not diffed.

- **2026-10-22** `549f4adbbfcf`: 33 breaking, 12 info
  - the response's body type changed from `object` to no type for status `400`
  - the response's body type changed from `object` to no type for status `401`
  - the response's body type changed from `object` to no type for status `403`
  - the response's body type changed from `object` to no type for status `404`
  - …41 more
- **2026-10-21** `d04cdb8563c3`: 4 info
  - added the new optional request property `sentence`
  - added the optional property `employerFacts` to the response with the `200` status
  - added the optional property `employerNote` to the response with the `200` status
  - added the optional property `items/items/employer` to the response with the `200` status
- **2026-10-03** `e8a9550eb535`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/berea/apis/bereach-api/changes/public/employees/post.md)

---

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