Trigger Backfill
const url = 'https://example.com/admin/backfill-embeddings/?force=false';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://example.com/admin/backfill-embeddings/?force=false' \ --header 'Authorization: Bearer <token>'Queue semantic-search embedding generation for records (admin only).
Pass ?force=true to delete all existing embeddings and regenerate from scratch (required after changing the embedding model or dimensions).
fix(#1542): the run happens on the job queue, not in this request. A full
regenerate is provider-bound and linear in catalog size, so it outgrew the
600s edge timeout somewhere below 59,000 records — and the request dying at
the proxy never stopped the work, it only hid it. Returns the job id;
poll GET /jobs/{job_id} for the outcome.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Responses
Section titled “ Responses ”Successful Response
Acknowledgement that a backfill run was queued (fix(#1542)).
The run itself happens on the job queue, so this carries no counts — a full
regenerate takes minutes and used to hold the HTTP request open past the
600s edge timeout. Poll GET /jobs/{job_id} for the run’s status.
object
Identifier of the queued backfill job; poll /jobs/{job_id}.
Job status at enqueue time (‘pending’).
Example generated
{ "job_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "example"}Bad request — invalid query parameters or payload
Unauthorized — missing or invalid credentials
Forbidden — caller lacks access to this resource
Not found
Conflict — resource state prevents the operation
Validation error
Too many requests — retry after the advertised interval
Headers
Section titled “Headers ”Seconds until the request may be retried
Internal server error
Service unavailable — the background job queue could not be reached