---
title: "Search offers"
method: POST
path: "/hiring/offers/search"
tags: ["Offers"]
---

# Search offers

`POST /hiring/offers/search`

Searches offer records using filters and returns paginated results.

<ul>
  <li>Use the <code>fields</code> parameter to specify which fields to return</li>
  <li>Use the <code>filters</code> parameter to narrow down results</li>
  <li>Use cursor-based pagination with <code>limit</code> and <code>cursor</code></li>
</ul>

<p><b>Testing notes</b>:</p>
<ul>
  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>
  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>
</ul>

## Request body

- OfferSearchRequest
  - `fields` string[], required — Required list of field IDs to include in the response (1–50 fields). The property must be provided; if omitted or not provided, the API returns an error. You must explicitly choose which fields to fetch. For all available field IDs, see the <code>fields</code> object defined on each item in the 200 response schema.
  - `filters` object[]
    - `fieldId` '/offer/id' | '/offer/applicationId' | '/offer/jobOpeningId' | '/offer/candidateId' | '/offer/status', required — Field ID to filter by
    - `operator` 'equals' | 'notEqual' | 'greaterThan' | 'lessThan', required — Filter operator. Use 'equals'/'notEqual' for exact matching. Use 'greaterThan'/'lessThan' for date range filtering.
    - `values` union[], required
      - union
        - string
        - number
  - `limit` integer
  - `cursor` string
  - `includeArchived` boolean

## Response `200`

Successfully retrieved offer records

- OfferSearchResponse
  - `items` OfferSearchResponseObject[], required — Array of offer objects
    - `/offer/id` integer — Unique identifier
    - `/offer/applicationId` number — ID of the associated application.<br /><br />To fetch the application, use <a href="https://apidocs.hibob.com/reference/post_hiring-applications-search" target="_blank">Search applications ↗</a>.
    - `/offer/jobOpeningId` number — ID of the associated job opening.<br /><br />To fetch the job opening, use <a href="https://apidocs.hibob.com/reference/post_hiring-job-openings-search" target="_blank">Search job openings ↗</a>.
    - `/offer/candidateId` number — ID of the associated candidate.<br /><br />To fetch the candidate, use <a href="https://apidocs.hibob.com/reference/post_hiring-candidates-search" target="_blank">Search candidates ↗</a>.
    - `/offer/status` 'declined' | 'withdrawn' | 'negotiated' | 'accepted' | 'pending_candidate' | 'approved' | 'pending_approval' | 'expired' — Offer status. Possible values:<br /> <ul> <li><code>declined</code> – Declined</li> <li><code>withdrawn</code> – Withdrawn</li> <li><code>negotiated</code> – Negotiated</li> <li><code>accepted</code> – Accepted</li> <li><code>pending_candidate</code> – Pending candidate</li> <li><code>approved</code> – Approved</li> <li><code>pending_approval</code> – Pending approval</li> <li><code>expired</code> – Expired</li> </ul>
    - `/offer/reason` string — Reason (e.g. for rejection or withdrawal)
    - `/offer/sentDateTime` string, date-time — Timestamp when the offer was sent
    - `/offer/requestedBy` string — Employee ID of the person who requested the offer<br /><br />To read this employee, use <a href="https://apidocs.hibob.com/reference/post_people-identifier" target="_blank">Read company employee fields by employee ID ↗</a>.
    - `/offer/eSignRequestId` string — E-signature request ID from the e-signature provider
    - `/offer/startDate` string, date — Proposed start date
    - `/offer/approvalWorkflowExternalId` string — External ID of the approval workflow instance associated with this offer. Use this to correlate with approval workflow data.
    - `/offer/salary` object — Salary details including amount and currency code.
      - `value` number — Salary amount (e.g. 100000)
      - `currency` string — ISO 4217 currency code (e.g. "USD", "EUR", "GBP")
    - `/offer/createdAt` string, date-time — Creation timestamp
    - `/offer/fieldConfig` object[] — List of offer template fields and their display settings. Each item represents a merge field from the offer template.
      - `fieldId` string — Merge field identifier from the offer template
      - `isDisplayedInForm` boolean — Whether this field is displayed in the offer form
    - `/offer/eSignTemplateId` string — E-signature template ID used to generate the signing request
    - `/offer/eSignCompletedRequestFileId` string — File ID of the completed e-signature document
    - `/offer/fileId` string — ID of the file attached to this offer
    - `/offer/comment` string — Offer comment
  - `response_metadata` object, required
    - `next_cursor` string, nullable — Cursor for next page. Null if no more results.

## Other responses

- `400` — Bad Request - Invalid parameters
- `401` — Unauthorized - Invalid or missing credentials
- `403` — Forbidden - IP not allowed or feature not enabled
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/hibob/apis/employee-data-api.md) · [All operations](https://skmtc.net/hibob/apis/employee-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hibob/employee-data-api/revisions/0781ebbdda91/schema)
