Skip to main content
GET
/
hris
/
staffing-entities
Get staffing entities
curl --request GET \
  --url https://api.kombo.dev/v1/hris/staffing-entities \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Integration-Id: <x-integration-id>'
{
  "status": "success",
  "data": {
    "next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
    "results": [
      {
        "id": "26vafvWSRmbhNcxJYqjCzuJg",
        "remote_id": "32",
        "name": "Software Engineer",
        "model_type": "POSITION",
        "description": "Description of the position",
        "status": "OPEN_UNLIMITED",
        "employment_types": [
          {
            "remote_label": "Vollzeit",
            "unified_type": "FULL_TIME"
          }
        ],
        "number_of_openings": null,
        "parent_id": "KGaJ5XaVPob8mYVfD49W4DGB",
        "remote_url": "https://example.com/position/32",
        "remote_created_at": "2022-08-07T14:01:29.196Z",
        "remote_updated_at": "2022-08-07T14:01:29.196Z",
        "changed_at": "2022-08-07T14:01:29.196Z",
        "remote_deleted_at": null,
        "custom_fields": {},
        "integration_fields": [],
        "remote_data": null,
        "locations": [
          {
            "id": "22st2Ji8XpncEYEak8mvQgQF",
            "remote_id": "1348",
            "name": "Kombo HQ",
            "type": "OFFICE"
          }
        ],
        "legal_entities": [
          {
            "id": "4B9bKBpX5tnwjiG93TAqF7ci",
            "remote_id": "49",
            "name": "ACME Inc."
          }
        ],
        "groups": [
          {
            "id": "4B9bKBpX5tnwjiG93TAqF7ci",
            "remote_id": "49",
            "name": "Customer Success",
            "type": "TEAM"
          }
        ]
      }
    ]
  }
}
This feature is currently available for the following integrations:You’d like to see this feature for another integration? Please reach out! We’re always happy to discuss extending our coverage.
Retrieve all staffing entities (positions, requisitions, and jobs) from the HRIS system. Many enterprise HRIS platforms distinguish between positions, requisitions, and jobs — three related but different concepts used to manage headcount and hiring. Not every HRIS uses all three, and naming varies across systems, but here is a general overview:
  • Position: A slot in the organizational structure that represents a role to be filled (or already filled) by one or more employees. Positions typically carry metadata like department, location, cost center, and reporting line. Think of it as “a chair at a desk” — it exists whether someone is sitting in it or not.
  • Requisition: A formal request to fill a position. When a manager wants to hire for an open position, they usually create a requisition that goes through an approval workflow. Requisitions are time-bound and tied to a specific hiring need. In Kombo’s data model, a requisition’s parent_id points to the position it was opened for.
  • Job: Some systems use “job” as a more generic or lightweight alternative to a requisition. Jobs often represent an ongoing, unlimited hiring need (e.g., a company that is always hiring for “Software Engineer”) rather than a one-off backfill. This is reflected in the OPEN_UNLIMITED status.
You can use the model_types filter to retrieve only the type(s) relevant to your use case. Each record’s model_type field tells you which of the three concepts it represents. Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)

Authorizations

Authorization
string
header
required

Create an API key on the Secrets page in the Kombo dashboard.

Headers

X-Integration-Id
string
required

ID of the integration you want to interact with.

Query Parameters

cursor
string

An optional cursor string used for pagination. This can be retrieved from the next property of the previous page response.

page_size
integer<int64>
default:100

The number of results to return per page. Maximum is 250.

Required range: 1 <= x <= 250
updated_after
string<date-time>

Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. Returns records where either the record itself OR its nested data has been updated since this timestamp, even if the record's own changed_at field remains unchanged.

If you want to track entry deletion, also set the include_deleted=true query parameter, because otherwise, deleted entries will be hidden.

For more details, see Understanding changed_at vs updated_after Behavior.

Pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$
include_deleted
enum<string>
default:false

By default, deleted entries are not returned. Use the include_deleted query param to include deleted entries too.

Available options:
true,
false
ignore_unsupported_filters
enum<string>
default:false

When set to true, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.

Available options:
true,
false
ids
string

Filter by a comma-separated list of IDs such as 222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3.

remote_ids
string

Filter by a comma-separated list of remote IDs.

model_types
string

Filter by a comma-separated list of JOB, POSITION, REQUISITION

Leave this blank to get results matching all values.

statuses
string

Filter by a comma-separated list of OPEN_LIMITED, OPEN_UNLIMITED, PENDING, FROZEN, FILLED, CLOSED

Leave this blank to get results matching all values.

Response

GET /hris/staffing-entities Positive response

status
string
required
Allowed value: "success"
data
object
required
Example:
{
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"name": "Software Engineer",
"model_type": "POSITION",
"description": "Description of the position",
"status": "OPEN_UNLIMITED",
"employment_types": [
{
"remote_label": "Vollzeit",
"unified_type": "FULL_TIME"
}
],
"number_of_openings": null,
"parent_id": "KGaJ5XaVPob8mYVfD49W4DGB",
"remote_url": "https://example.com/position/32",
"remote_created_at": "2022-08-07T14:01:29.196Z",
"remote_updated_at": "2022-08-07T14:01:29.196Z",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"custom_fields": {},
"integration_fields": [],
"remote_data": null,
"locations": [
{
"id": "22st2Ji8XpncEYEak8mvQgQF",
"remote_id": "1348",
"name": "Kombo HQ",
"type": "OFFICE"
}
],
"legal_entities": [
{
"id": "4B9bKBpX5tnwjiG93TAqF7ci",
"remote_id": "49",
"name": "ACME Inc."
}
],
"groups": [
{
"id": "4B9bKBpX5tnwjiG93TAqF7ci",
"remote_id": "49",
"name": "Customer Success",
"type": "TEAM"
}
]
}
]
}