Queues AI ingestion of email for the cases in caseIds, else every case of the organizations in organizationIds, else every active case when confirmUnrestricted is true (otherwise 500); an unrestricted run over more than 5 million items also needs force. Archived cases are skipped. dryRun only counts; force first clears existing embeddings in scope so they are rebuilt, even on a dry run. Super admins only.
POST
/ai/admin/backfill/email
curl \
--request POST 'http://api.example.com/ai/admin/backfill/email' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"caseIds": [
"string"
],
"organizationIds": [
"string"
],
"dryRun": false,
"confirmUnrestricted": false,
"force": false
}'
Request examples
{
"caseIds": [
"string"
],
"organizationIds": [
"string"
],
"dryRun": false,
"confirmUnrestricted": false,
"force": false
}
Response examples (200)
{
"data": {
"casesScanned": 12,
"casesEnqueued": 12,
"estimatedMessageScope": 48000,
"forced": false,
"dryRun": false
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}