This article will cover the following:
Use the Users & Access API to provision user accounts at scale, sync CAKE with an identity management system, audit platform access, or automate account manager assignment workflows.
api_key parameter. Find yours under Setup → System Access → API Keys.
Overview
The Users & Access section controls who can log in to your CAKE instance and what they can do once inside. Every internal team member — account managers, media buyers, finance staff, and administrators — requires a user account with an assigned role. CAKE's role-based access control lets you scope access precisely. Account managers are distinct entities assigned to advertiser and affiliate records. Manage users via the CAKE UI at Admin → Users or via API.
Key Concepts
- User — An internal team member with CAKE login credentials. Distinct from affiliates and advertisers who use separate portals.
- Role — A named permission set determining which modules, reports, and actions are accessible. Configured under Admin → Roles.
- Account Manager — An internal user designated as point of contact for affiliates or advertisers. Appears throughout the UI and in partner-facing portal displays.
- User Status —
active(can log in) |inactive(blocked from login; record and history preserved). - role_id — Numeric identifier for a role. Required when creating or updating users via API. Retrieve with
GET /api/2/roles.json. - API Key — Authentication token associated with a user account. Generated under Admin → Users → [User Record] → API Key.
Available Actions
Get Users
Retrieves internal user accounts. Use to audit access, look up user IDs, filter by role or status, or sync your user roster with an external identity system.
GET /api/2/users.json| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your CAKE API key. |
| user_id | integer | No | Return a single user by their numeric ID. |
| user_status | string | No | active | inactive |
| role_id | integer | No | Filter by role. Use GET /api/2/roles.json to look up valid IDs. |
| start_at_row | integer | No | Pagination offset. Default 1. |
| row_limit | integer | No | Max records. Default 100, max 10000. |
Sample request
GET https://yourdomain.cakemarketing.com/api/2/users.json?api_key=YOUR_API_KEY&user_status=active&role_id=3&start_at_row=1&row_limit=50Sample response
{
"request_status": "Success",
"response": {
"users": [
{ "user_id": 1042, "first_name": "Sarah", "last_name": "Mendez", "email": "s.mendez@yournetwork.com", "user_status": "active", "role_id": 3, "role_name": "Account Manager", "created": "2023-06-15T09:22:00" },
{ "user_id": 1057, "first_name": "James", "last_name": "Okafor", "email": "j.okafor@yournetwork.com", "user_status": "active", "role_id": 3, "role_name": "Account Manager", "created": "2023-11-03T14:08:00" }
],
"total_rows": 2
}
}Create User
Creates a new internal user account. The assigned role_id determines permissions on first login. The user receives credentials at the email address provided.
POST /api/2/user.json| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your CAKE API key. |
| first_name | string | Yes | User's first name. |
| last_name | string | Yes | User's last name. |
| string | Yes | Email address — must be unique across all users. Used as login identifier. | |
| role_id | integer | Yes | Role ID determining all permissions. Use GET /api/2/roles.json to retrieve valid IDs. |
| user_status | string | No | active | inactive. Default: active. |
| password | string | No | Initial password. If omitted, user receives a set-password email. |
Sample request
POST https://yourdomain.cakemarketing.com/api/2/user.json
{
"api_key": "YOUR_API_KEY",
"first_name": "Alex",
"last_name": "Chen",
"email": "a.chen@yournetwork.com",
"role_id": 3,
"user_status": "active"
}Sample response
{
"request_status": "Success",
"user": {
"user_id": 1099,
"first_name": "Alex",
"last_name": "Chen",
"email": "a.chen@yournetwork.com",
"user_status": "active",
"role_id": 3,
"role_name": "Account Manager",
"created": "2026-06-19 10:00:00"
}
}Update User
Updates an existing user's status, role, or contact details. Use to deactivate departed team members or change role assignments.
POST /api/2/update_user.json| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your CAKE API key. |
| user_id | integer | Yes | ID of the user to update. |
| first_name | string | No | Updated first name. |
| last_name | string | No | Updated last name. |
| string | No | Updated email address. | |
| user_status | string | No | active | inactive |
| role_id | integer | No | Updated role ID. |
Sample request
POST https://yourdomain.cakemarketing.com/api/2/update_user.json
{
"api_key": "YOUR_API_KEY",
"user_id": 1042,
"user_status": "inactive"
}Sample response
{
"request_status": "Success",
"user": {
"user_id": 1042,
"first_name": "Sarah",
"last_name": "Mendez",
"user_status": "inactive"
}
}Get Roles
Retrieves all role configurations in your CAKE network. Use to enumerate valid role_id values before creating or updating users.
GET /api/2/roles.json| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your CAKE API key. |
| role_id | integer | No | Filter to a specific role. |
| role_name | string | No | Filter by role name. |
Sample request
GET https://yourdomain.cakemarketing.com/api/2/roles.json?api_key=YOUR_API_KEYSample response
{
"request_status": "Success",
"roles": [
{ "role_id": 1, "role_name": "Administrator" },
{ "role_id": 2, "role_name": "Media Buyer" },
{ "role_id": 3, "role_name": "Account Manager" },
{ "role_id": 4, "role_name": "Finance" }
]
}Get Account Managers
Retrieves internal users who are designated as account managers. Use to populate dropdowns or look up valid account manager IDs before creating affiliate or advertiser records.
GET /api/2/account_managers.json| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your CAKE API key. |
| account_manager_id | integer | No | Filter to a specific account manager. |
| account_manager_status | string | No | active | inactive |
Sample request
GET https://yourdomain.cakemarketing.com/api/2/account_managers.json?api_key=YOUR_API_KEY&account_manager_status=activeSample response
{
"request_status": "Success",
"account_managers": [
{ "account_manager_id": 42, "first_name": "Jordan", "last_name": "Lee", "email": "j.lee@yournetwork.com", "status": "active" },
{ "account_manager_id": 7, "first_name": "Mark", "last_name": "Johnson", "email": "m.johnson@yournetwork.com", "status": "active" }
]
}You may also be interested in:
If you have any questions, please reach out to your dedicated CAKE Client Success Manager/Account Manager or contact the CAKE Support Team at support@getCAKE.com.