Create a completion
POST
/v1/projects/{projectId}/annotation-jobs/{jobId}/items/{itemId}/completionscurl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/annotation-jobs/{jobId}/items/{itemId}/completions' \
-H 'Authorization: Bearer $EMBODIFLOW_PAT' \
-H 'Content-Type: application/json' \
-d '{
"unused": "string",
"noEligibleTaskReason": "string"
}'Authorization
Send a personal access token with every request.
- Authorization: Bearer PAT
Path parameters
- projectIdstringrequired
- jobIdstringrequired
- itemIdstringrequired
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
- unusedstring | null
Unused. Send an empty JSON object or noEligibleTaskReason.
- noEligibleTaskReasonstring
Explicit no-eligible-task completion. Records the reason and is not a task-positive example.
Responses
Success
- dataobjectrequired
- idstringrequired
- jobIdstringrequired
- recordingIdstring | nullrequired
- episodeIdstring | nullrequired
- assigneeMembershipIdstring | nullrequired
- statestringrequiredAllowed valuesapprovedlabeledrejectedtodo
- lastRevisionIdstring | nullrequired
- commentstring | nullrequired
- startedAtstring | nullrequired
- completedAtstring | nullrequired
- completionobject | nullrequired
- createdAtstringrequired
- updatedAtstringrequired
- rowVersionnumberrequired
Response example
{
"data": {
"id": "string",
"jobId": "string",
"recordingId": "string",
"episodeId": "string",
"assigneeMembershipId": "string",
"state": "approved",
"lastRevisionId": "string",
"comment": "string",
"startedAt": "string",
"completedAt": "string",
"completion": {
"contractVersion": "embodiflow-annotation-completion/v1",
"taskPositive": false,
"noEligibleTaskReason": "string",
"membership": [
{
"episodeId": "string",
"revisionId": "string"
}
],
"processingResultId": "string",
"profileIdentity": "string",
"profileSource": "unknown",
"coverage": [
{
"episodeId": "string",
"revisionId": "string",
"startNs": 0,
"endNs": 0
}
],
"exclusions": [
{
"episodeId": "string",
"revisionId": "string",
"startNs": 0,
"endNs": 0,
"reason": "string"
}
],
"human": {
"actorUserId": "string",
"membershipId": "string",
"completedAt": "string"
},
"requirementRevision": "string"
},
"createdAt": "string",
"updatedAt": "string",
"rowVersion": 0
}
}Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1