Rippling Platform API
The Platform API from Rippling — 24 operation(s) for platform.
The Platform API from Rippling — 24 operation(s) for platform.
openapi: 3.1.0
info:
title: Rippling API (Base API) Platform API
version: 1.0.0
description: 'Rippling is a unified workforce platform spanning HR, IT, and Finance.
The Base API (also known as the Platform API) exposes employee, company,
department, team, work location, level, group, leave, custom field, and
SAML/SSO data plus app provisioning helpers and ATS push endpoints.
Authentication uses an OAuth2-issued bearer token (API token) supplied in
the `Authorization: Bearer <token>` header.
'
contact:
name: Rippling Developer Portal
url: https://developer.rippling.com/
license:
name: Proprietary
servers:
- url: https://api.rippling.com
description: Rippling production API host
security:
- BearerAuth: []
tags:
- name: Platform
paths:
/platform/api/me:
get:
summary: Get the authenticated user / current token context
operationId: getMe
responses:
'200':
description: Information about the authenticated user (token owner)
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/companies:
get:
summary: List companies accessible to the token
operationId: getCompanies
responses:
'200':
description: Company list
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/company_activity:
get:
summary: List recent company activity events
operationId: getCompanyActivity
parameters:
- name: startDate
in: query
schema:
type: string
format: date-time
- name: limit
in: query
schema:
type: integer
- name: next
in: query
schema:
type: string
responses:
'200':
description: Page of company activity events
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/employees:
get:
summary: List active employees
operationId: getEmployees
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: Paginated list of employees
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/employees/include_terminated:
get:
summary: List employees including terminated workers
operationId: getEmployeesIncludeTerminated
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: Paginated list of employees including terminated
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/employees/{employee_id}:
get:
summary: Get an employee by ID
operationId: getEmployeeById
parameters:
- $ref: '#/components/parameters/EmployeeId'
responses:
'200':
description: Employee record
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Employee not found
tags:
- Platform
/platform/api/departments:
get:
summary: List departments
operationId: getDepartments
responses:
'200':
description: List of departments
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/work_locations:
get:
summary: List work locations
operationId: getWorkLocations
responses:
'200':
description: List of work locations
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/levels:
get:
summary: List career/job levels
operationId: getLevels
responses:
'200':
description: List of levels
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/teams:
get:
summary: List teams
operationId: getTeams
responses:
'200':
description: List of teams
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/custom_fields:
get:
summary: List custom field definitions
operationId: getCustomFields
responses:
'200':
description: Custom fields metadata
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/groups:
get:
summary: List groups
operationId: getGroups
responses:
'200':
description: List of groups
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
post:
summary: Create a group
operationId: createGroup
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description:
type: string
users:
type: array
items:
type: string
responses:
'201':
description: Group created
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/groups/{group_id}:
get:
summary: Get a group by ID
operationId: getGroupById
parameters:
- $ref: '#/components/parameters/GroupId'
responses:
'200':
description: Group record
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
patch:
summary: Partially update a group
operationId: patchGroup
parameters:
- $ref: '#/components/parameters/GroupId'
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: Group updated
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
put:
summary: Replace a group
operationId: putGroup
parameters:
- $ref: '#/components/parameters/GroupId'
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: Group replaced
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
delete:
summary: Delete a group
operationId: deleteGroup
parameters:
- $ref: '#/components/parameters/GroupId'
responses:
'204':
description: Group deleted
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/leave_requests:
get:
summary: List leave requests
operationId: getLeaveRequests
parameters:
- name: startDate
in: query
schema:
type: string
format: date
- name: endDate
in: query
schema:
type: string
format: date
responses:
'200':
description: List of leave requests
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
post:
summary: Create a leave request
operationId: createLeaveRequest
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
role:
type: string
description: Employee role ID
requestedDates:
type: array
items:
type: string
format: date
companyLeaveType:
type: string
reasonForLeave:
type: string
responses:
'201':
description: Leave request created
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/leave_requests/{leave_request_id}:
patch:
summary: Update a leave request
operationId: patchLeaveRequest
parameters:
- name: leave_request_id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: Leave request updated
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/leave_requests/process:
post:
summary: Approve or reject a leave request
operationId: processLeaveRequest
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
leaveRequestId:
type: string
action:
type: string
enum:
- APPROVE
- REJECT
responses:
'200':
description: Leave request decision recorded
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/leave_requests/cancel:
post:
summary: Cancel a leave request
operationId: cancelLeaveRequest
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
leaveRequestId:
type: string
responses:
'200':
description: Leave request canceled
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/leave_balances:
get:
summary: List leave balances for all employees
operationId: getLeaveBalances
responses:
'200':
description: Leave balances list
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/leave_balances/{employee_id}:
get:
summary: Get leave balance for one employee
operationId: getLeaveBalance
parameters:
- $ref: '#/components/parameters/EmployeeId'
responses:
'200':
description: Leave balance for the employee
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/company_leave_types:
get:
summary: List company-defined leave types
operationId: getCompanyLeaveTypes
responses:
'200':
description: Company leave type catalog
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/saml/idp_metadata:
get:
summary: Retrieve SAML Identity Provider metadata for the company
operationId: getSamlIdpMetadata
responses:
'200':
description: SAML IdP metadata XML
content:
application/xml:
schema:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/app/matching_users:
get:
summary: List users in the company that match the calling app
operationId: getAppMatchingUsers
responses:
'200':
description: Matching users payload
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/mark_app_installed:
post:
summary: Mark the calling app as installed for the company
operationId: markAppInstalled
responses:
'200':
description: Installation acknowledged
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
/platform/api/ats/candidates/push_candidate:
post:
summary: Push an ATS candidate into Rippling
operationId: pushAtsCandidate
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
email:
type: string
format: email
jobTitle:
type: string
department:
type: string
resumeUrl:
type: string
format: uri
responses:
'201':
description: Candidate created
'401':
$ref: '#/components/responses/Unauthorized'
tags:
- Platform
components:
parameters:
Limit:
name: limit
in: query
schema:
type: integer
default: 25
Offset:
name: offset
in: query
schema:
type: integer
default: 0
GroupId:
name: group_id
in: path
required: true
schema:
type: string
EmployeeId:
name: employee_id
in: path
required: true
schema:
type: string
responses:
Unauthorized:
description: Missing or invalid bearer token
content:
application/json:
schema:
type: object
properties:
detail:
type: string
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'Rippling API tokens are issued via OAuth2 (or generated as personal/app
tokens) and supplied as `Authorization: Bearer <token>`.
'