---
title: "A company's first hire in each function"
method: GET
path: "/v1/companies/{company_id}/first-hire"
---

# A company's first hire in each function

`GET /v1/companies/{company_id}/first-hire`

## Request

- Base URL: `https://api.reqbeat.com`
- URL: `https://api.reqbeat.com/v1/companies/{company_id}/first-hire`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

The earliest first-in-function event per function -- detects a new
budget line. Sourced from the role-slot recompute aggregate, not a
specific board posting; `source_board` says so honestly rather than
being excluded outright. Free-tier reads are history-capped.

An unresolvable `function` -- anything that is not a function taxonomy
id -- is rejected with 422 instead of returning a silently-empty
result.

Requires the `read` scope.

## Path parameters

- `company_id` integer, required: The plane's company id -- returned as `company_id` by /v1/reqs/search and by every company motion response.

## Query parameters

- `function` string, nullable: Function whose first hire to look for: its name, e.g. 'Sales & Customer Service', or its taxonomy id, e.g. '3571b52b-ac60-58f9-b769-9affa0174f93'. Ids are the `by_function` keys this endpoint returns. A name covers every id it leads; an id matches that one id. Anything else is rejected with 422, which lists the names.

## Headers

- `Idempotency-Key` string, nullable

## Response `200`

Successful Response

- FirstHireResponse
  - `by_function` object, required
  - `as_of` string, date-time, required

## Other responses

- `401`: No API key was sent.
- `402`: The key is over its plan's rolling call quota, or the account is past its spend cap. `upgrade_url` and `purchase_url` are the ways out.
- `403`: The presented key is invalid or revoked, or (see `x-required-scope` on this operation) it does not carry the scope this operation requires.
- `422`: Validation Error
- `429`: Too many calls in the current 60-second window. The limit is per API key, set by the key's plan, and shared by every metered REST route and MCP tool; the shared demo key is limited per IP address instead. Wait `Retry-After` seconds and retry. The `RateLimit-*` headers are absent when `reason` is `key_throttled`.

---

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