Skip to main content

Create Customers and Manage Customer Users Programmatically

Programmatically manage your Corti Customers and Users using the Corti Administration API

Updated this week

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:

  1. Call /auth/token with your Console email and password to get a bearer token

  2. Use your projectId to scope all requests to your project

  3. Create or retrieve customers representing organisations in your project

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


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

Did this answer your question?