---
title: "Trigger Zotero Sync All"
method: POST
path: "/api/webhooks/internal/zotero-sync-all"
---

# Trigger Zotero Sync All

`POST /api/webhooks/internal/zotero-sync-all`

## Request

- Base URL: `https://api.openpaper.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openpaper.ai/api/webhooks/internal/zotero-sync-all`
- Auth: none declared

Internal endpoint called by the Celery Beat periodic task to sync new Zotero
annotations for all users whose items haven't been synced in the past 24 hours.
Auth: shared secret via Authorization header (JOBS_INTERNAL_SECRET env var).

Dispatch-and-return: syncing every due user can take minutes — far past the
load balancer's timeout — so the response only reports how many users were
dispatched. The per-user work runs as a background task, and its outcomes
(per-user errors, final summary) are logged here on the server.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/openpaper/apis/open-paper.md) - [All operations](https://skmtc.dev/openpaper/apis/open-paper/llms.txt) - [OpenAPI document](https://skmtc.dev/openpaper/apis/open-paper/revisions/c2ad03216101?raw)
