Skip to content

Rhythms REST API (v2)

The official REST API for Rhythms - designed for third-party integrations, mobile apps, and external tooling. This API follows REST conventions and provides clean, predictable endpoints for managing OKRs (Objectives, Key Results, and Initiatives).

Base URL

https://api.rhythms.ai

All REST API v2 endpoints are prefixed with /rest/v2/

Response Format

All responses use JSON format with consistent error handling and pagination. Successful responses include requested data, while error responses provide detailed troubleshooting information.

Error Handling

The API uses standard HTTP status codes with detailed JSON error messages.

Perfect for building integrations, mobile apps, reporting dashboards, and automation workflows.

Authentication

All API endpoints require authentication using Bearer token authorization. Include this header with every request:

  • Authorization: Bearer token for your account access

Getting API Credentials: Contact support at support@rhythms.ai to obtain your access token.

Rate Limiting

Standard rate limits apply to all endpoints to ensure fair usage and optimal performance for all users.

If you need higher limits for your integration, please contact our support team at support@rhythms.ai with details about your use case.

Pagination

List endpoints support pagination using query parameters:

  • page: Page number (default: 1)
  • limit: Items per page (default: 20, max: 100)

Response includes pagination metadata in the pagy object with next indicating the next page number (or null if no more pages).

Servers
https://api.rhythms.ai/

Checkins

Operations

Initiatives

Operations

Key Results

Operations

Labels

Operations

Objectives

Operations

Teams

Operations

Users

Operations

List users

Request

Retrieves all users via REST API

This endpoint supports filtering and pagination through query parameters. Available ransackable attributes: uuid, display_name, status, manager_uuid, license_type, display_name, status, manager_uuid, license_type.

Available ransackable associations and their attributes:

  • teams: teams_uuid, teams_display_name, teams_parent_uuid, teams_status, teams_name, teams_is_org, teams_parent_uuid
  • team_memberships: team_memberships_uuid, team_memberships_user_uuid
  • profile: profile_uuid, profile_first_name, profile_last_name, profile_job_title, profile_employee_type, profile_department_name, profile_division_name, profile_cost_center_name, profile_custom_field_1, profile_custom_field_2, profile_custom_field_3, profile_custom_field_4, profile_custom_field_5
  • manager: manager_uuid, manager_display_name, manager_status, manager_manager_uuid, manager_license_type, manager_display_name, manager_status, manager_manager_uuid, manager_license_type
Query
pagenumber

Page number for pagination (default: 1)

Default 1
per_pagenumber

Number of records per page (default: 20, max: 100)

Default 20
limitnumber

Alias for per_page - number of records per page

Default 20
limit_maxnumber

Maximum number of records per page (overrides limit if not set)

Default null

Responses

Bad Request - Invalid parameters or malformed request

Create a new user

Request

Creates a new user with the provided attributes. Email is required and must be unique within the tenant.

Bodyapplication/json
userobjectrequired
user.​emailstringrequired

User email address

user.​display_namestringrequired

User display name

user.​license_typestring

User license type

Default "standard"
Enum"standard""hris_only""guest"
user.​statusstring

User status

Default "active"
Enum"active""closed"
user.​manager_uuidstring

Manager UUID

Default null
user.​profile_attributesobject

Responses

Success

Body*/*
uuidstringrequired

Uuid

display_namestringrequired

Display name

account_idstring

Account

Default null
statusstringrequired

Status

Default "active"
manager_uuidstring

Manager uuid

Default null
pathstring

Path

Default null
creator_uuidstring

Creator uuid

Default null
license_typestringrequired

License type

display_name_sourcestringrequired

Display name source

Default "manual"

Get a specific user

Request

Retrieves detailed information about a specific user by their UUID

Path
idstringrequired

User UUID

Responses

Success

Body*/*
uuidstringrequired

Uuid

display_namestringrequired

Display name

account_idstring

Account

Default null
statusstringrequired

Status

Default "active"
manager_uuidstring

Manager uuid

Default null
pathstring

Path

Default null
creator_uuidstring

Creator uuid

Default null
license_typestringrequired

License type

display_name_sourcestringrequired

Display name source

Default "manual"

Update a user

Request

Updates an existing user with the specified attributes.

Path
idstringrequired

User UUID

Bodyapplication/json
userobjectrequired
user.​display_namestring

User display name

user.​avatarstring

Avatar URL

user.​avatar_urlstring

Avatar URL

user.​statusstring

User status

Enum"active""closed"
user.​manager_uuidstring

Manager UUID

user.​license_typestring

User license type

Enum"standard""hris_only""guest"
user.​profile_attributesobject

Responses

Success

Body*/*
uuidstringrequired

Uuid

display_namestringrequired

Display name

account_idstring

Account

Default null
statusstringrequired

Status

Default "active"
manager_uuidstring

Manager uuid

Default null
pathstring

Path

Default null
creator_uuidstring

Creator uuid

Default null
license_typestringrequired

License type

display_name_sourcestringrequired

Display name source

Default "manual"