What You'll Learn
What the Admin API is: How it differs from the main Corti API and when to use it.
Authentication: How to obtain a bearer token using your Console credentials.
Managing Customers: Create, list, update, and delete customer accounts within your project.
Managing Users: Create, list, update, and delete users scoped to a customer.
Introduction
The Admin API lets you manage your Corti API Console account programmatically. It is designed for administrators and integrators who want to automate account operations, such as provisioning customers and users, without logging into the Console manually.
This API is separate from the Corti API used for speech to text, text generation, and agentic workflows. It has its own authentication mechanism, its own base URL, and its own permission model.
⚠️ The /customers and /users endpoints are only available for projects with Embedded Assistant enabled. The /auth/token endpoint is available to all projects. Contact support if you'd like to enable this functionality.
What's Supported
Feature | Functionality | Availability |
Authentication | Obtain a bearer token for Admin API access | All projects |
Manage Customers | Create, update, list, and delete customer accounts | Projects with Embedded Assistant |
Manage Users | Create, update, list, and delete users within a customer | Projects with Embedded Assistant |
Permissions mirror the Corti API Console — only project admins or owners can create, update, or delete resources.
Before You Begin
You'll need:
A Corti API Console account with a password set (not SSO-only)
Your Project ID, found in console.corti.app → Settings → Project ID field
Admin or owner role on the project
Best practice: Use a dedicated service account for Admin API automation. Assign only the minimum required role and rotate credentials regularly.
Step 1: Authenticate and Get an Access Token
Unlike the main Corti API (which uses OAuth 2.0 client credentials), the Admin API authenticates using your Console email and password. Call /auth/token to receive a JWT bearer token.
bash
curl -X POST https://api.console.corti.app/functions/v1/public/auth/token \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "password": "your-password" }'Example response:
json
{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "tokenType": "bearer", "expiresIn": 3600 }This token is used only for Admin API calls. It expires after expiresIn seconds — call /auth/token again to refresh it.
📖 See the API Reference: Authenticate user and get access token
Step 2: Manage Customers
A Customer represents an organisation or account within your project — for example, a hospital or clinic. All user management is scoped under a customer.
List customers
bash
curl -X GET https://api.console.corti.app/functions/v1/public/projects/{projectId}/customers \ -H "Authorization: Bearer <token>"Create a customer
bash
curl -X POST https://api.console.corti.app/functions/v1/public/projects/{projectId}/customers \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "id": "examplehospital", "name": "Example Hospital" }'Update or delete a customer by appending /{customerId} and using PATCH or DELETE respectively.
📖 See the API Reference: Create a new customer
Step 3: Manage Users
Users are individual accounts associated with a customer. You can create, list, update, and delete users programmatically.
List users for a customer
bash
curl -X GET "https://api.console.corti.app/functions/v1/public/projects/{projectId}/customers/{customerId}/users?page=1&pageSize=20" \ -H "Authorization: Bearer <token>"Example response:
json
{
"users": [
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"enabled": true,
"id":
"123e4567-e89b-12d3-a456-426614174000",
"emailVerified": true,
"createdAt": "2023-10-01T12:00:00Z"
}
],
"pagination": {
"page": 1,
"pageSize": 20,
"hasNextPage": false
}
}Create a user
bash
curl -X POST https://api.console.corti.app/functions/v1/public/projects/{projectId}/customers/{customerId}/users \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "firstName": "Jane", "lastName": "Smith" }'Update or delete a user by appending /{userId} and using PATCH or DELETE.
📖 See the API Reference: Create a new user
Bringing It All Together
To recap the full Admin API workflow:
Call
/auth/tokenwith your Console email and password to get a bearer tokenUse your
projectIdto scope all requests to your projectCreate or retrieve customers representing organisations in your project
Create or retrieve users scoped under those customers
This is particularly relevant for Embedded Assistant deployments, where end-user accounts need to be provisioned programmatically as part of your platform's onboarding flow.
Where to Go From Here
Explore the full Administration API Reference
Access the API Console to find your Project ID and manage credentials
Read the Ultimate Guide to Corti's API for an overview of the broader API platform
Have a question for our team?
Click Support in the bottom-left corner of the console to submit a ticket or reach out via email at [email protected] and we'll be happy to assist you.
Related Articles
