Append one episode revision (never If-Match)
POST
/v1/projects/{projectId}/episodes/{episodeId}/revisionscurl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/episodes/{episodeId}/revisions' \
-H 'Authorization: Bearer $EMBODIFLOW_PAT' \
-H 'Content-Type: application/json' \
-d '{
"expectedHeadRevisionId": "00000000-0000-0000-0000-000000000000",
"startNs": 0,
"endNs": 0,
"task": {},
"outcome": "string",
"subtasks": [
{}
],
"tags": [
"string"
],
"attributes": {},
"splitTag": "string",
"excluded": true,
"deleted": true,
"comment": "string",
"commentAtNs": 0,
"annotationJobId": "00000000-0000-0000-0000-000000000000"
}'Authorization
Send a personal access token with every request.
- Authorization: Bearer PAT
Path parameters
- projectIdstringrequired
- episodeIdstringrequired
Header parameters
- Idempotency-Keystring
Optional idempotency key, at most 255 characters (UUIDv4 recommended). A repeated key returns the first response byte-for-byte, including a 5xx. The same key with a different body, or a second in-flight request, returns 409 IDEMPOTENCY_CONFLICT. Keys are unique per tenant and retained for 24 hours.
Request body
Content-Typeapplication/json
- expectedHeadRevisionIdstring (uuid)required
- startNsnumber
- endNsnumber
- taskobject | null
- outcomestring | null
- subtasksarray<object>
- tagsarray<string>
- attributesobject
- splitTagstring | null
- excludedboolean
- deletedboolean
- commentstring
- commentAtNsnumber
- annotationJobIdstring (uuid)
Responses
Success
- dataobjectrequired
- idstringrequired
- episodeIdstringrequired
- parentRevisionIdstring | nullrequired
- startNsnumberrequired
- endNsnumberrequired
- durationNsnumberrequired
- taskobject | nullrequired
- outcomestring | nullrequired
- subtaskCountnumberrequired
- subtasksarray<object>required
- tagsarray<string>required
- attributesobjectrequired
- splitTagstring | nullrequired
- excludedone ofrequired
- deletedone ofrequired
- statestringrequired
- sourcestringrequired
- confidencenumber | nullrequired
- actorUserIdstring | nullrequired
- commentstring | nullrequired
- commentAtNsnumber | nullrequired
- createdAtstringrequired
Response example
{
"data": {
"id": "string",
"episodeId": "string",
"parentRevisionId": "string",
"startNs": 0,
"endNs": 0,
"durationNs": 0,
"task": {
"en": "string",
"zh": "string"
},
"outcome": "string",
"subtaskCount": 0,
"subtasks": [
{
"startNs": 0,
"endNs": 0,
"description": {
"en": "string",
"zh": "string"
},
"skillTermId": "string",
"relevance": "optional",
"outcome": "success"
}
],
"tags": [
"string"
],
"attributes": {},
"splitTag": "string",
"excluded": false,
"deleted": false,
"state": "string",
"source": "string",
"confidence": 0,
"actorUserId": "string",
"comment": "string",
"commentAtNs": 0,
"createdAt": "string"
}
}Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1