Skip to content

Rippling: List app users — response body — results item

List app users: response body, field results / item. Complete fields and constraints for contract 2026-10-28.

API reference · Contract 2026-10-28

SDK schema: List app users — response body — results item

FieldTypePresenceDescription and constraints
$objectRoot
Maps a Rippling worker (if any) to their user account in a third-party
app (e.g. Slack, Jira, GitHub). Sourced from SpokeUser records.

Includes orphan accounts — third-party app accounts with no matching
Rippling worker (`worker_id=None`, `match_state=NOT_MATCHED`). These are
the primary signal for IT-admin triage. Uses `BaseResourceDTO` rather
than `BaseEmployeeResourceDTO` so the platform’s role-based auto-filter
does not silently drop orphans for non-admin tokens. Company scoping is
enforced explicitly in `AppUsersAPIViewSet.get_queryset`; the `app-users.read`
scope is the access gate.

Resource name aligns with how the product surfaces these in the UI
(“Slack account”, “GitHub account”) and matches the equivalent concept
in Okta’s IAM API (AppUser).

Designed for point lookups: list endpoint requires at least one filter
on `worker_id` or `spoke_user_identifier` to prevent bulk enumeration of the
org’s identity graph across connected apps.

`spoke_user_identifier` reads `SpokeUser.spokeId` — the user identifier
stored for the third-party account. Depending on the integration, this may
be an email, username, account handle, or app-specific user id.
app_display_namestringOptionalHuman-readable display name for the third-party app (e.g. ‘Slack’, ‘GitHub’). Sourced from the customer-configured SpokeOwner.app_display_name; falls back to a title-cased app handle when the customer hasn’t set one.
app_handlestringOptionalMachine-readable identifier for the third-party app (e.g. ‘slack’, ‘jira’, ‘asana’). Stable across the App Shop catalog.
created_atstringRequired within parentRecord creation date
external_emailstringOptionalThe user’s email address in the third-party app, if known. Null when the app does not expose an email or Rippling did not capture one.
external_usernamestringOptionalThe user’s display name in the third-party app, if known. Null when the app does not surface a separate username.
idstringRequired within parentIdentifier field
match_statestringOptionalWhether this third-party account has been matched to a Rippling worker.
Known values: MATCHED, NOT_MATCHED, IGNORED
push_statestringOptionalProvisioning lifecycle state of this account in the third-party app.
Known values: INIT, EMPLOYEE_CONFIRMATION_PENDING, EMPLOYEE_CONFIRMATION_ACCEPTED, EMPLOYEE_CONFIRMATION_REJECTED, INVITE_PENDING, INVITE_CONFIRMED, INVITE_FAILED, CREATE_PENDING, CREATE_CONFIRMED, CREATE_FAILED, DELETE_PENDING, DELETE_CONFIRMED, DELETE_FAILED, SUSPEND_PENDING, SUSPEND_CONFIRMED, SUSPEND_FAILED
spoke_user_identifierstringOptionalIdentifier for the user’s account in the third-party app workspace. Depending on the integration, this may be an email, username, account handle, or app-specific user id.
updated_atstringRequired within parentRecord update date
workerModelOptionalExpand Retrieve a specific app user — response body — worker
worker_idstringOptionalID of the Rippling worker associated with this external app account.

Referenced models: Retrieve a specific app user — response body — worker

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.