{"meta":{"title":"워크플로 작업에 대한 REST API 엔드포인트","intro":"REST API를 사용하여 GitHub Actions에 대한 워크플로 작업과 상호 작용합니다.","product":"REST API","breadcrumbs":[{"href":"/ko/rest","title":"REST API"},{"href":"/ko/rest/actions","title":"작업"},{"href":"/ko/rest/actions/workflow-jobs","title":"워크플로 작업"}],"documentType":"article"},"body":"# 워크플로 작업에 대한 REST API 엔드포인트\n\nREST API를 사용하여 GitHub Actions에 대한 워크플로 작업과 상호 작용합니다.\n\n## GitHub Actions\n\n워크플로 작업 정보\n\nREST API를 사용하면 GitHub Actions\n로그 및 워크플로 작업을 볼 수 있습니다. 워크플로 작업은 동일한 실행기에서 실행되는 단계의 집합입니다. 더 자세한 내용을 알고 싶으시다면 [GitHub Actions에 대한 워크플로 구문](/ko/actions/using-workflows/workflow-syntax-for-github-actions)을 참고하세요.\n\n> \\[!NOTE]\n> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2026-03-10`. Curl examples below omit these standard headers for brevity.\n\n## Get a job for a workflow run\n\n```\nGET /repos/{owner}/{repo}/actions/jobs/{job_id}\n```\n\nGets a specific job in a workflow run.\nAnyone with read access to the repository can use this endpoint.\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n* **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n* **`job_id`** (integer) (required)\n  The unique identifier of the job.\n\n### HTTP response status codes\n\n* **200** - OK\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/actions/jobs/JOB_ID\n```\n\n**Response schema (Status: 200):**\n\n* `id`: required, integer\n* `run_id`: required, integer\n* `run_url`: required, string\n* `run_attempt`: integer\n* `node_id`: required, string\n* `head_sha`: required, string\n* `url`: required, string\n* `html_url`: required, string or null\n* `status`: required, string, enum: `queued`, `in_progress`, `completed`, `waiting`, `requested`, `pending`\n* `conclusion`: required, string or null, enum: `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, `action_required`, `null`\n* `created_at`: required, string, format: date-time\n* `started_at`: required, string, format: date-time\n* `completed_at`: required, string or null, format: date-time\n* `name`: required, string\n* `steps`: array of objects:\n  * `status`: required, string, enum: `queued`, `in_progress`, `completed`\n  * `conclusion`: required, string or null\n  * `name`: required, string\n  * `number`: required, integer\n  * `started_at`: string or null, format: date-time\n  * `completed_at`: string or null, format: date-time\n* `check_run_url`: required, string\n* `labels`: required, array of string\n* `runner_id`: required, integer or null\n* `runner_name`: required, string or null\n* `runner_group_id`: required, integer or null\n* `runner_group_name`: required, string or null\n* `workflow_name`: required, string or null\n* `head_branch`: required, string or null\n\n## Download job logs for a workflow run\n\n```\nGET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\n```\n\nGets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look\nfor Location: in the response header to find the URL for the download.\nAnyone with read access to the repository can use this endpoint.\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n* **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n* **`job_id`** (integer) (required)\n  The unique identifier of the job.\n\n### HTTP response status codes\n\n* **302** - Found\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/actions/jobs/JOB_ID/logs\n```\n\n**Response schema (Status: 302):**\n\n## List jobs for a workflow run attempt\n\n```\nGET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\n```\n\nLists jobs for a specific workflow run attempt. You can use parameters to narrow the list of results. For more information\nabout using parameters, see Parameters.\nAnyone with read access to the repository can use this endpoint.\nOAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint  with a private repository.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n* **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n* **`run_id`** (integer) (required)\n  The unique identifier of the workflow run.\n\n* **`attempt_number`** (integer) (required)\n  The attempt number of the workflow run.\n\n* **`per_page`** (integer)\n  The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"\n  Default: `30`\n\n* **`page`** (integer)\n  The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"\n  Default: `1`\n\n### HTTP response status codes\n\n* **200** - OK\n\n* **404** - Resource not found\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/actions/runs/RUN_ID/attempts/ATTEMPT_NUMBER/jobs\n```\n\n**Response schema (Status: 200):**\n\n* `total_count`: required, integer\n* `jobs`: required, array of `Job`:\n  * `id`: required, integer\n  * `run_id`: required, integer\n  * `run_url`: required, string\n  * `run_attempt`: integer\n  * `node_id`: required, string\n  * `head_sha`: required, string\n  * `url`: required, string\n  * `html_url`: required, string or null\n  * `status`: required, string, enum: `queued`, `in_progress`, `completed`, `waiting`, `requested`, `pending`\n  * `conclusion`: required, string or null, enum: `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, `action_required`, `null`\n  * `created_at`: required, string, format: date-time\n  * `started_at`: required, string, format: date-time\n  * `completed_at`: required, string or null, format: date-time\n  * `name`: required, string\n  * `steps`: array of objects:\n    * `status`: required, string, enum: `queued`, `in_progress`, `completed`\n    * `conclusion`: required, string or null\n    * `name`: required, string\n    * `number`: required, integer\n    * `started_at`: string or null, format: date-time\n    * `completed_at`: string or null, format: date-time\n  * `check_run_url`: required, string\n  * `labels`: required, array of string\n  * `runner_id`: required, integer or null\n  * `runner_name`: required, string or null\n  * `runner_group_id`: required, integer or null\n  * `runner_group_name`: required, string or null\n  * `workflow_name`: required, string or null\n  * `head_branch`: required, string or null\n\n## List jobs for a workflow run\n\n```\nGET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\n```\n\nLists jobs for a workflow run. You can use parameters to narrow the list of results. For more information\nabout using parameters, see Parameters.\nAnyone with read access to the repository can use this endpoint.\nOAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint with a private repository.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n* **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n* **`run_id`** (integer) (required)\n  The unique identifier of the workflow run.\n\n* **`filter`** (string)\n  Filters jobs by their completed\\_at timestamp. latest returns jobs from the most recent execution of the workflow run. all returns all jobs for a workflow run, including from old executions of the workflow run.\n  Default: `latest`\n  Can be one of: `latest`, `all`\n\n* **`per_page`** (integer)\n  The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"\n  Default: `30`\n\n* **`page`** (integer)\n  The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"\n  Default: `1`\n\n### HTTP response status codes\n\n* **200** - OK\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/actions/runs/RUN_ID/jobs\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [List jobs for a workflow run attempt](#list-jobs-for-a-workflow-run-attempt)."}