This guide explains the most common causes of 401 Unauthorized responses when calling the Rhythm APIs and how to resolve them.
All Rhythm APIs require a valid OAuth 2.0 access token sent using the Bearer scheme:
Authorization: Bearer <access_token>Ensure:
- The header name is exactly
Authorization - The value starts with
Bearer(including the space) - The token has not expired
A frequent cause of 401 errors is an incorrect OAuth audience value when requesting the access token.
For Client Credentials and most server-to-server flows, the audience must be:
https://api.rhythmsoftware.comIf the audience does not match what the API expects, the token will be rejected even if it is otherwise valid.
Your Client ID, Secret, and Auth0 domain are available in Rhythm Console under Security & Settings > API Keys.
See the Authentication tutorial for a full walkthrough of each flow.
Decode the JWT access token and confirm the following claims are present:
http://rhythmsoftware.com/tenant_idhttp://rhythmsoftware.com/customer_id
Optional but commonly present:
http://rhythmsoftware.com/contact_id
The contact_id claim is required for most Rolodex and Membership API calls and must be used in request paths where a contact identifier is required.
You can inspect a JWT at https://jwt.io — paste the raw token into the Encoded field to view all claims.
If the user represented by the token has never logged into the Rhythm application, the contact_id claim may not yet exist. In this case:
- The token may be valid
- API calls that require a contact context will still return
401 Unauthorized
Have the user log into the Rhythm UI at least once to ensure the contact record is created.
You can confirm that the token resolves to a valid contact by calling the Rolodex endpoint:
GET https://rolodex.api.rhythmsoftware.com/contacts/currentIf this call succeeds, the token is valid and the contact is correctly associated.
Different Rhythm services use different base URLs. Common examples:
- Rolodex API:
https://rolodex.api.rhythmsoftware.com/contacts - Membership API:
https://membership.api.rhythmsoftware.com/memberships
Using the wrong service base URL with an otherwise valid token may result in a 401 response.
If you receive a 401 Unauthorized error, verify:
- The
Authorization: Bearerheader is present and correct - The token has not expired
- The OAuth audience is
https://api.rhythmsoftware.com - The token contains
tenant_idandcontact_idclaims - The user has logged into the Rhythm UI at least once
- The request is sent to the correct service base URL