Skip to content
REST API

Apply copilot actions

POST
/copilot/messages/{messageId}/actions

Runs the actions an assistant reply proposed and returns a receipt for each. The app applies a reply's task and note actions by itself; an API client must call this. Send {} for those, or name indices. create_set_from_note and start_generation run only when named, and each counts as an AI use: poll the receipt's jobId. Poll it with GET /jobs/{jobId}. A copilot:use key can follow the job and read, apply or discard the resulting generation, and applying also needs notes:update. An action with a receipt never runs again, so sending the same request twice is safe. On the free plan, 20 actions that change data can run per UTC day.

Required scopes: copilot:use

Authorization

AuthorizationBearer <token>

In: header

Path Parameters

messageId*string

Copilot message id, scoped to the key's user.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Header Parameters

Idempotency-Key?string

A client-generated key (1 to 255 visible ASCII characters) that makes this POST safe to retry. A retry with the same key and body replays the original response; the same key with a different body returns 409 idempotency_conflict. Stored for 24 hours.

Match^[\x21-\x7E]{1,255}$
Length1 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/copilot/messages/497f6eca-6276-4993-bfeb-53cbbbba6f08/actions" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "results": [      {        "index": 0,        "ok": true,        "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",        "jobId": null,        "error": null      },      {        "index": 1,        "ok": true,        "id": null,        "jobId": "7d6c5b4a-3f2e-4d1c-8b0a-9f8e7d6c5b4a",        "error": null      }    ]  }}