Create Project
Provision a new recording project inside the current account.
POST
https://api.identitycall.ai/api/v1/public/projectsCreate a new recording project. Account-wide API keys only.
Requires write permission
API Key Scope
| Scope | Behavior |
|---|---|
| Account-wide | Allowed. Project is created under the account. |
| Project-scoped | 403 Forbidden — project-scoped keys cannot create projects. |
Project-scoped API keys receive 403 Forbidden with "Project-scoped API keys cannot create or destroy projects". Use an account-wide key for provisioning.
Request Body
Body Parameters (application/json)
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | - | Display name of the project. |
language | string | Yes | - | Default ISO language code for transcription (e.g. en, lt, de). |
description | string | No | - | Free-form description for internal reference. |
industry | string | No | - | Industry tag (e.g. insurance, ecommerce, healthcare). |
goal_language | string | No | - | Language used for goal evaluation prompts. Defaults to language. |
summary_language | string | No | - | Language used to render call summaries. Defaults to language. |
long_pause_threshold_seconds | integer | No | - | Minimum gap in seconds before a silence is flagged as a long pause. |
transcription_hints | string | No | - | Domain vocabulary or proper nouns to bias the transcriber towards. |
retention_days | integer | No | - | Number of days to retain recordings before automatic deletion. Null disables retention. |
quality_baseline_enabled | boolean | No | - | Whether to compute a quality baseline across recordings. |
quality_baseline_pct | number | No | - | Target percentile (0-100) for the quality baseline. |
Request
cURL
curl -X POST "https://api.identitycall.ai/api/v1/public/projects" \
-H "Authorization: Bearer $IDENTITYCALL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Customer Support EN",
"language": "en",
"industry": "ecommerce",
"retention_days": 365
}'Response
Response201 Created
{
"data": {
"id": 42,
"name": "Customer Support EN",
"language": "en",
"industry": "ecommerce",
"created_at": "2026-04-15T10:00:00Z",
"updated_at": "2026-04-15T10:00:00Z",
"description": null,
"goal_language": null,
"summary_language": null,
"long_pause_threshold_seconds": null,
"transcription_hints": null,
"retention_days": 365,
"quality_baseline_enabled": false,
"quality_baseline_pct": null,
"recordings_count": 0,
"virtual_numbers_count": 0
}
}The full ProjectDetail schema is documented under Get Project.
Errors
| Status | Condition |
|---|---|
| 401 | Missing or invalid Authorization header. |
| 403 | API key lacks write permission, or the key is project-scoped. |
| 422 | Validation failed — e.g. name is blank. The errors array contains human-readable messages. |
Example 422 body:
{
"errors": ["Name can't be blank"]
}Try It
Try It
See also
- List Projects — enumerate accessible projects.
- Update Project — change settings after creation.
- Delete Project — remove a project.