Get Data from Dataset (v2)

Queries the named dataset and returns the matching rows. The response is a JSON object with data (an array of row objects, each wrapping its values under a fields object whose keys match the requested field names), links (pagination navigation URLs; prev and/or next, omitted at boundaries), and meta (with page, pageSize, totalPages, totalItems).

Use this for tabular reporting, custom field selection across many employees, and OData-style filtering against the full dataset field catalog. For lightweight directory-style employee listings or batch lookups by ID, use List Employees (list-employees) instead. For the full set of fields on a single employee, use Get Employee (get-employee) instead.

Discover valid datasetName values via List Datasets (v1.2) (list-datasets-v1-2). Discover valid field names for a dataset via Get Fields from Dataset (v1.2) (get-fields-from-dataset-v1-2); the field set is dataset-specific.

Field-name vocabulary differs from the dedicated employee endpoints. The employee dataset uses fully qualified names such as jobInformationJobTitle, jobInformationDepartment, jobInformationReportsTo, and employmentStatus, where List Employees / Get Employee use shorter names like jobTitleName, department, reportsTo, and status. Always source field names from Get Fields from Dataset (v1.2) — names from the employee endpoints will not necessarily resolve here.

Filter expressions use OData-style syntax with comparison operators eq, ne, lt, le, gt, ge, the list-membership operator in (...), and logical operators and / or. The parser does not support not in; use ne for the inverse of eq, and on options-type fields ne already applies set-membership negation under the hood. A single filter expression may use and or or, but not both; mixed logical expressions return 422 with code INVALID_FILTER. Operator support varies by field type: eq / ne work on text, numeric, date, and options-type (single-select enum) fields like status, employmentStatus, and jobInformationDepartment; ordering operators lt, le, gt, ge are supported on numeric and date fields. The list operator in is the natural fit on options-type fields (e.g. status in ('Active','Inactive')), and is also accepted on text, numeric, and date fields when used with a single value (e.g. firstName in ('Ashley'), equivalent to firstName eq 'Ashley'); multi-value in on non-options fields returns 422. To check a field's type, see the type value returned by Get Fields from Dataset (v1.2). Filter fields do not need to appear in the fields array; rows are filtered server-side. String literals in filter expressions are wrapped in single quotes, e.g. firstName eq 'Ashley' or status in ('Active','Inactive').

orderBy is a comma-separated list of <field> <asc|desc> rules. Every field used in orderBy must also appear in the fields array; omitting it returns a 400 with code UE-1001. orderBy is optional; with no orderBy the row order is unspecified.

Field-level access is enforced server-side based on the authenticated caller's permissions and OAuth scopes. Callers without permission to a requested field receive an error from the semantic layer rather than silent omission of the field from rows; callers without dataset-level access receive 403. There is no per-row redaction within the response — a row that includes the caller in its access scope returns all requested fields, and a dataset the caller cannot see at all returns 404 ("not accessible" rather than disclosing existence).

Pagination: page defaults to 1 and pageSize defaults to 100 (maximum 1000). meta.totalItems is the count of rows matching the query across all pages, meta.totalPages is ceil(totalItems / pageSize), and data contains at most pageSize rows for the requested page. links.next is present when more pages exist; links.prev is present when not on the first page. Errors follow RFC 7807 (application/problem+json).

Note: Compared to Get Data from Dataset (v1) (get-data-from-dataset-v1), this version uses filter and orderBy request fields instead of the legacy filters and sortBy structures, moves pagination inputs to body fields (page, pageSize) instead of query parameters, returns pagination in links / meta objects instead of a legacy pagination object, and returns RFC 7807 compliant error responses with an X-Request-ID correlation header.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Machine-readable name of the dataset to query. Discover valid values via List Datasets (v1.2) (list-datasets-v1-2); examples include employee, benefit, and applicants. Unknown or inaccessible names return 404.

Body Params

Request parameters for dataset data retrieval

fields
array of strings
required

Field names to return for each row. Names are dataset-specific; discover valid names via Get Fields from Dataset (v1.2) (get-fields-from-dataset-v1-2). The field-name vocabulary differs from the dedicated employee endpoints (e.g., the employee dataset uses jobInformationReportsTo / jobInformationDepartment / employmentStatus rather than List Employees' reportsTo / department / status).

fields*
string | null

OData-style filter expression. Comparison operators: eq, ne, lt, le, gt, ge. List-membership operator: in (...) (the parser does not support not in; use ne for the inverse). Logical operators: and, or. A single filter expression may use and or or, but not both; mixed logical expressions return 422 with code INVALID_FILTER. Operator support varies by field type. eq / ne work on text, numeric, date, and options-type (single-select enum) fields. Ordering operators (lt, le, gt, ge) work on numeric and date fields. in (...) is the natural fit on options-type fields like status, employmentStatus, and jobInformationDepartment, and is also accepted on text, numeric, and date fields when the list has a single value (equivalent to eq). Multi-value in on non-options fields returns 422. To check a field's type, see the type value returned by Get Fields from Dataset (v1.2). String literals are wrapped in single quotes. Filter fields do not need to appear in fields.

string | null

Comma-separated sort rules; each rule is a field name followed by asc or desc. Every field referenced in orderBy must also appear in fields — otherwise the request is rejected with 400 and code UE-1001. Omit to leave row order unspecified.

integer
≥ 1
Defaults to 1

Page number to retrieve (1-indexed). Defaults to 1.

integer
1 to 1000
Defaults to 100

Number of records per page. Defaults to 100. Maximum is 1000.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

401

Unauthorized.

Language
Credentials
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json