CAKE API — Users & Access

This article will cover the following:

Why use this API?
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.
Authentication: All CAKE API requests require your 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.

Important: MFA (Multi-Factor Authentication) applies to internal CAKE users only — never to affiliate or advertiser portal logins.


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 Statusactive (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.

When to use: Audit who currently has CAKE access; identify accounts to deactivate; sync user roster with HR or identity systems.
GET /api/2/users.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
user_idintegerNoReturn a single user by their numeric ID.
user_statusstringNoactive | inactive
role_idintegerNoFilter by role. Use GET /api/2/roles.json to look up valid IDs.
start_at_rowintegerNoPagination offset. Default 1.
row_limitintegerNoMax 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=50

Sample 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.

When to use: Onboard new team members programmatically; integrate CAKE user provisioning with your HR or identity management system.
POST /api/2/user.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
first_namestringYesUser's first name.
last_namestringYesUser's last name.
emailstringYesEmail address — must be unique across all users. Used as login identifier.
role_idintegerYesRole ID determining all permissions. Use GET /api/2/roles.json to retrieve valid IDs.
user_statusstringNoactive | inactive. Default: active.
passwordstringNoInitial 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.

When to use: Deactivate departed employees; promote users to new roles; update contact details from an HR system sync.
POST /api/2/update_user.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
user_idintegerYesID of the user to update.
first_namestringNoUpdated first name.
last_namestringNoUpdated last name.
emailstringNoUpdated email address.
user_statusstringNoactive | inactive
role_idintegerNoUpdated 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.

When to use: Look up valid role_id values before provisioning new user accounts.
GET /api/2/roles.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
role_idintegerNoFilter to a specific role.
role_namestringNoFilter by role name.

Sample request

GET https://yourdomain.cakemarketing.com/api/2/roles.json?api_key=YOUR_API_KEY

Sample 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.

When to use: Look up valid account_manager_id values before creating affiliates, advertisers, or offer records.
GET /api/2/account_managers.json
ParameterTypeRequiredDescription
api_keystringYesYour CAKE API key.
account_manager_idintegerNoFilter to a specific account manager.
account_manager_statusstringNoactive | inactive

Sample request

GET https://yourdomain.cakemarketing.com/api/2/account_managers.json?api_key=YOUR_API_KEY&account_manager_status=active

Sample 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" } ] }


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.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.