The Admin API provides operational control over an OJS backend, separated from the data-plane API used by producers and workers. All admin endpoints live under the /ojs/v1/admin/ path prefix.
Path-based separation : Admin endpoints are clearly separated from data-plane endpoints.
Read-heavy : Most admin operations are read-only queries and statistics.
Safe by default : Destructive operations require explicit confirmation.
Paginated : All list endpoints support cursor-based pagination.
Method Path Description GET/ojs/v1/admin/queuesList all queues with stats GET/ojs/v1/admin/queues/{name}Get queue details and configuration POST/ojs/v1/admin/queues/{name}/pausePause a queue POST/ojs/v1/admin/queues/{name}/resumeResume a paused queue POST/ojs/v1/admin/queues/{name}/purgeDelete all jobs from a queue PATCH/ojs/v1/admin/queues/{name}Update queue configuration
"processed_last_minute" : 120 ,
"processed_last_hour" : 5400
Method Path Description GET/ojs/v1/admin/jobsList jobs with filtering GET/ojs/v1/admin/jobs/{id}Get full job details POST/ojs/v1/admin/jobs/{id}/cancelCancel a specific job POST/ojs/v1/admin/jobs/{id}/retryRetry a specific job POST/ojs/v1/admin/jobs/batch/cancelBulk cancel jobs POST/ojs/v1/admin/jobs/batch/retryBulk retry jobs
GET /ojs/v1/admin/jobs?queue=payments & state = active & type = payment.process & limit = 20
Filter Description queueFilter by queue name stateFilter by job state typeFilter by job type (prefix match with *) since / untilFilter by creation time worker_idFilter by processing worker
Method Path Description GET/ojs/v1/admin/workersList active workers GET/ojs/v1/admin/workers/{id}Get worker details POST/ojs/v1/admin/workers/{id}/quietSend quiet signal to worker DELETE/ojs/v1/admin/workers/{id}Deregister a worker
"total_enqueued" : 1250000 ,
"total_completed" : 1200000 ,
GET /ojs/v1/admin/stats/history?period=1h & range = 24h
Returns time-series data for throughput, error rates, and queue depths.
Method Path Description GET/ojs/v1/admin/dead-letterList dead letter jobs GET/ojs/v1/admin/dead-letter/{id}Get dead letter job details POST/ojs/v1/admin/dead-letter/{id}/retryRetry a dead letter job DELETE/ojs/v1/admin/dead-letter/{id}Delete a dead letter job POST/ojs/v1/admin/dead-letter/retryBulk retry with filters DELETE/ojs/v1/admin/dead-letterBulk delete with filters
Admin API endpoints require the admin role. Backends SHOULD implement RBAC scopes to separate admin access from data-plane access:
Scope Description admin:readRead-only access to stats, lists, and details admin:writePause, resume, cancel, retry operations admin:deletePurge, delete, and destructive operations