Skip to content

Run a finished workflow run again, as a new attempt: every job, with failed_only the jobs that did not succeed, or with job one job (by its id in the latest attempt); each with the jobs that need them.

POST/repos/{owner}/{name}/actions/jobs/{job}/rerun

debug (or GitHub’s enable_debug_logging) runs the attempt with debug logging. The attempt before is kept, with its jobs’ logs. Needs the Write role or higher.

Runs the job again with every job that needs it, as a new attempt; the rest keep how they ended. A job of a matrix runs again with the rest of its matrix, and a job of a called workflow with the job that calls it. The run must have finished.

Name Type Required Description
owner string Yes The workspace that owns the repository.
name string Yes The repository’s name.
job string Yes One job to run again, by its id in the latest attempt, with the jobs that need it.

Send a JSON object. Names are snake_case, as in responses; the camelCase spelling is accepted too.

Name Type Required Description
id string No The run’s id. Not needed with job.
failed_only boolean No Only the jobs that did not succeed, and those that need them.
debug boolean No Run the new attempt with debug logging: RUNNER_DEBUG=1, and ACTIONS_STEP_DEBUG and ACTIONS_RUNNER_DEBUG set to true.
enable_debug_logging boolean No The same as debug, by GitHub’s name for it.
curl -X POST https://api.g1t.sh/repos/flagon-io/hello/actions/jobs/job_01kpx7b3d0e4f8g2h6j0k4m8ns/rerun \
-H "Authorization: Bearer $G1T_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enable_debug_logging": true
}'

A successful request answers 200 with:

{
"id": "run_01kpx7b3c6d9e2f5g8h1j4k7mr",
"workflow_id": "wfl_01kpw2c5d8e1f4g7h0j3k6m9np",
"path": ".g1t/workflows/ci.yml",
"name": "CI",
"title": "Greeting should name the caller",
"number": 12,
"attempt": 2,
"event": "push",
"ref": "refs/heads/main",
"sha": "9f2c4e1a7b3d5f60812a4c6e8b0d2f4a6c8e0b13",
"pull": null,
"status": "queued",
"conclusion": null,
"error": null,
"actor": "syntaqx",
"created_at": "2026-10-04T15:42:07.318Z",
"started_at": null,
"finished_at": null
}

A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.

Status Code When
401 unauthenticated A token is required, or the one sent is not valid.
403 forbidden The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository.
404 not_found It does not exist, or you cannot see it.
409 conflict The request conflicts with the current state.
422 invalid The input is not valid. message says which field and why.