Owner only (checked in the service). Applies to new uploads; with `applyToExistingRecordings` (not_required only) it also moves the project's existing recordings, audited, in the same transaction.
PUT
/v1/projects/{projectId}/recording-privacycurl -X PUT 'https://api.embodiflow.io/v1/projects/{projectId}/recording-privacy' \
-H 'Authorization: Bearer $EMBODIFLOW_PAT' \
-H 'Content-Type: application/json' \
-d '{
"privacyRequirement": "required",
"basis": "string",
"applyToExistingRecordings": true
}'Authorization
Send a personal access token with every request.
- Authorization: Bearer PAT
Path parameters
- projectIdstringrequired
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
- privacyRequirementstringrequiredAllowed valuesrequirednot_required
- basisstringrequired
- applyToExistingRecordingsboolean
Responses
Success
- dataobjectrequired
- projectIdstringrequired
- privacyRequirementstringrequiredAllowed valuesrequirednot_required
- basisstring | nullrequired
- setByUserIdstring | nullrequired
- setAtstring | nullrequired
- existingRequiredRecordingCountnumber
- appliedToExistingRecordingsnumber
Response example
{
"data": {
"projectId": "string",
"privacyRequirement": "required",
"basis": "string",
"setByUserId": "string",
"setAt": "string",
"existingRequiredRecordingCount": 0,
"appliedToExistingRecordings": 0
}
}Servershttps://api.embodiflow.io/v1https://api.embodiflow.dev/v1