Skip to Content
API ReferenceOperatorsLink to Project

Link Operator to Project

Operators belong to your account, not to a single project. These two endpoints control which projects each operator appears in.

POSThttps://api.identitycall.ai/api/v1/public/operators/{id}/add_project

Make an existing operator available to a recording project. Idempotent.

Requires write permission
DELETEhttps://api.identitycall.ai/api/v1/public/operators/{id}/remove_project

Remove the operator from a project. The operator itself is not deleted.

Requires write permission

When you need this

You do not need it to attribute a call — operator_id on an upload accepts any operator in your account, linked or not. You need it so the operator shows up in that project’s roster:

SituationWhat to do
Operator does not exist yetCreate it (pass project_id to link at the same time)
Operator exists, but is missing from this project’s listadd_project
Operator left the team for this projectremove_project (attribution on past recordings is kept)

add_project is idempotent. Linking an operator that is already linked returns 200 and changes nothing, so a nightly roster sync can call it unconditionally instead of diffing first.

Parameters

Body / Query Parameters

NameTypeRequiredDefaultDescription
project_idintegerNo-The project to link or unlink. Required for account-wide keys. Project-scoped keys may omit it; passing a different project returns 403.

Request

# Link operator 42 to project 12 curl -X POST "https://api.identitycall.ai/api/v1/public/operators/42/add_project" \ -H "Authorization: Bearer $IDENTITYCALL_API_KEY" \ -H "Content-Type: application/json" \ -d '{"project_id": 12}' # Unlink again curl -X DELETE "https://api.identitycall.ai/api/v1/public/operators/42/remove_project?project_id=12" \ -H "Authorization: Bearer $IDENTITYCALL_API_KEY"

Response

Both endpoints return the operator in its updated state.

Response200 OK
{
"data": {
  "id": 42,
  "name": "Jonas Jonaitis",
  "phone_number": "+37060000001",
  "email": null,
  "active": true,
  "initials": "JJ",
  "recording_project_ids": [12],
  "virtual_numbers": []
}
}

Errors

StatusErrorDescription
401“Invalid API key”Missing or unrecognized bearer token
403“Write permission required”API key lacks write permission
403“project_id does not match this API key’s project”A project-scoped key named a different project
404“Resource not found”No such operator in this account
404“Project not found”project_id is not a project in this account
422“project_id is required for account-wide API keys”Account-wide key omitted project_id

See Also