Every start of a job makes a run. Its status is initialized, running, waiting, success, error or skipped; the last three are final. batchEvent says what started it (entity, web, scheduled or hook) and carries the record or request. Which finished runs are kept is the job’s batchPersistence.
Job runs
Job runs, which the routes and the admin’s Batch Logs call batches: list them, read one, and run them again.
About job runs
batchPersistence keeps every run, none, or only failed or successful ones.
Runs are made by their job; the API only reads them and runs them again.
Debug a job run that failed halfwayList a job’s runs#
/cdna-api/hooks/batches/{hook.id}
Lists the runs of one job, 100 to a page unless limit says otherwise, up to 1000.
- Access
- Admin users and integrations, with an OAuth access token or an API key.
- Model
- Batch, in the Reference
Parameters
hook.idpathrequired- integer
- The job id.
propertiesquery- selector
- The fields and relations to return, such as
{id,status,created,hook{id,name}}. filtersquery- name=value
- Any stored field, or a relation with a dot, such as
hook.id=12. Prefix the name with!,>,<,%or|. Use stored field names exactly as in the model, and comparetotalCountwith the unfiltered list's to confirm a filter applied. orderByquery- string
field:ASCorfield:DESC, comma-separated. Stored fields only.limitquery- integer
- Records per response: 100 when left out, at most 1000. A larger value answers 400.
pagequery- integer
- The page to return, counting from 1.
offsetworks too.
Example
GET /cdna-api/hooks/batches/45?limit=2&properties={id,status,created,hook{id,name}} HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json{
"result": "success",
"totalCount": 2,
"data": [
{
"id": 26305946,
"status": "success",
"created": "2026-09-08T05:26:54+00:00",
"hook": {
"id": 45,
"name": "Agent: content/content-freshness-audit"
}
},
{
"id": 26305948,
"status": "error",
"created": "2026-09-08T05:30:15+00:00",
"hook": {
"id": 45,
"name": "Agent: content/content-freshness-audit"
}
}
]
}List every job’s runs#
/cdna-api/hooks/batches
Lists the runs of every job. The example keeps the successful ones.
- Access
- Admin users and integrations, with an OAuth access token or an API key.
- Model
- Batch, in the Reference
Parameters
propertiesquery- selector
- The fields and relations to return, such as
{id,status,created,hook{id,name}}. filtersquery- name=value
- Any stored field, or a relation with a dot, such as
hook.id=12. Prefix the name with!,>,<,%or|. Use stored field names exactly as in the model, and comparetotalCountwith the unfiltered list's to confirm a filter applied. orderByquery- string
field:ASCorfield:DESC, comma-separated. Stored fields only.limitquery- integer
- Records per response: 100 when left out, at most 1000. A larger value answers 400.
pagequery- integer
- The page to return, counting from 1.
offsetworks too.
Example
GET /cdna-api/hooks/batches?status=success&limit=2&properties={id,status,created,hook{id,name}} HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json{
"result": "success",
"totalCount": 1,
"data": [
{
"id": 26305946,
"status": "success",
"created": "2026-09-08T05:26:54+00:00",
"hook": {
"id": 45,
"name": "Agent: content/content-freshness-audit"
}
}
]
}Show a job run#
/cdna-api/hooks/batch/{id}
Reads one run. Without properties it returns its status, dates, job, event and site; customData and batchActions come back only when named.
- Access
- Admin users and integrations, with an OAuth access token or an API key.
- Model
- Batch, in the Reference
Parameters
idpathrequired- integer
- The job run id.
propertiesquery- selector
- The fields and relations to return, such as
{id,status,created,modified,hook{id,name}}.
hook, site and batchEvent are objects, not ids. Compare batch.hook.id, not batch.hook, with a job id.
Example
GET /cdna-api/hooks/batch/26305946?properties={id,status,created,modified,hook{id,name}} HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json{
"result": "success",
"data": {
"id": 26305946,
"status": "success",
"created": "2026-09-08T05:26:54+00:00",
"modified": "2026-09-08T05:27:38+00:00",
"hook": {
"id": 45,
"name": "Agent: content/content-freshness-audit"
}
}
}Run a job run again#
/cdna-api/hooks/batch/{id}/rerun
Queues the run again, from the start, with the event that started it. There is no body. Its status is not checked: a run still in progress is queued again too.
- Access
- Admin users and integrations, with an OAuth access token or an API key.
- Returns
- The run’s id under
data.succeeded, or underforbiddenorfailed, with 200, 403 or 500.
Parameters
idpathrequired- integer
- The run id.
Example
POST /cdna-api/hooks/batch/101/rerun HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/jsonRun several job runs again#
/cdna-api/hooks/batches/rerun
Queues several runs again. The answer sorts their ids by outcome; it is 200 if any was queued, else 403 if any was forbidden, else 500.
- Access
- Admin users and integrations, with an OAuth access token or an API key.
- Returns
- The ids under
data.succeeded,data.replayed,data.forbiddenanddata.failed, and amessage.
Parameters
idsbodyrequired- list
- The run ids. One id on its own is accepted too.
Example
POST /cdna-api/hooks/batches/rerun HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json
{
"ids": [
101,
102
]
}