API keys
Keys for the API and the MCP connector. The secret is shown once.
The object
| Field | Type | Description |
|---|---|---|
id | string | Unique ID, starting with key_. |
name | string | |
prefix | string | The first characters, to tell keys apart. |
secret | string | The full key. Only in the response that creates or rolls it. |
created_at, last_used_at | timestamp |
POST
/api-keysCreate a key
The new key acts as the same person as the key you call with.
| Parameter | Type | Description | |
|---|---|---|---|
Idempotency-Key | header | required | A unique value for this action, 8 to 200 characters. See Idempotency. |
name | string | required | Up to 80 characters. |
curl -X POST "https://api.esorasign.com/v1/api-keys" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "name": "Warehouse sync" }'{
"id": "key_0P3C4DSA7Lc360a9Y6yNd1",
"object": "api_key",
"name": "CRM integration",
"prefix": "sk_live_Xp4q",
"secret": "sk_live_Xp4q…",
"created_at": "2026-11-01T11:58:20.000Z",
"last_used_at": null
}GET
/api-keysList keys
Active keys, newest first.
| Parameter | Type | Description | |
|---|---|---|---|
limit | integer | optional | How many objects to return, 1 to 100. Default 20. |
starting_after | string | optional | The next_cursor from the previous page. Leave it out for the first page. |
curl "https://api.esorasign.com/v1/api-keys" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"object": "list",
"data": [
{
"id": "key_0P3C4DSA7Lc360a9Y6yNd1",
"object": "api_key",
"name": "CRM integration",
"prefix": "sk_live_Xp4q",
"created_at": "2026-11-01T11:58:20.000Z",
"last_used_at": "2026-11-02T14:04:58.000Z"
}
],
"has_more": false,
"next_cursor": null
}GET
/api-keys/{id}Retrieve a key
Requestcurl "https://api.esorasign.com/v1/api-keys/key_0P3C4DSA7Lc360a9Y6yNd1" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"id": "key_0P3C4DSA7Lc360a9Y6yNd1",
"object": "api_key",
"name": "CRM integration",
"prefix": "sk_live_Xp4q",
"created_at": "2026-11-01T11:58:20.000Z",
"last_used_at": "2026-11-02T14:04:58.000Z"
}POST
/api-keys/{id}/rollRoll a key
Revokes the key at once and returns a new one with the same name.
| Parameter | Type | Description | |
|---|---|---|---|
Idempotency-Key | header | required | A unique value for this action, 8 to 200 characters. See Idempotency. |
curl -X POST "https://api.esorasign.com/v1/api-keys/key_0P3C4DSA7Lc360a9Y6yNd1/roll" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"id": "key_6Yp1sD4hK8mQ2vB0nX5cRw",
"object": "api_key",
"name": "CRM integration",
"prefix": "sk_live_Xp4q",
"secret": "sk_live_Rm7t…",
"created_at": "2026-11-01T11:58:20.000Z",
"last_used_at": "2026-11-02T14:04:58.000Z"
}DELETE
/api-keys/{id}Revoke a key
It stops working at once.
Requestcurl -X DELETE "https://api.esorasign.com/v1/api-keys/key_0P3C4DSA7Lc360a9Y6yNd1" \
-H "Authorization: Bearer $ESORA_API_KEY"{ "id": "key_0P3C4DSA7Lc360a9Y6yNd1", "object": "api_key", "deleted": true }