REST API endpoints for Project (classic) columns
Use the REST API to create and manage columns on a project (classic).
Note
Projects (classic) has been removed. You can read more about this change on the GitHub Blog.
The new and improved Projects experience is available. For more information, see "About Projects."
These endpoints only interact with projects (classic). To manage Projects, use the GraphQL API. For more information, see "Using the API to manage Projects."
Note
The REST API to manage projects (classic) only supports authentication using a personal access token (classic). For more information, see "Managing your personal access tokens."
Get a project column
Gets information about a project column.
Fine-grained access tokens for "Get a project column"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have at least one of the following permission sets:
- "Projects" repository permissions (read)
- "Projects" organization permissions (read)
This endpoint can be used without authentication or the aforementioned permissions if only public resources are requested.
Parameters for "Get a project column"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
column_id integer RequiredThe unique identifier of the column. |
HTTP response status codes for "Get a project column"
Status code | Description |
---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
Code samples for "Get a project column"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/projects/columns/COLUMN_ID
Response
Status: 200
{
"url": "https://api.github.com/projects/columns/367",
"project_url": "https://api.github.com/projects/120",
"cards_url": "https://api.github.com/projects/columns/367/cards",
"id": 367,
"node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=",
"name": "To Do",
"created_at": "2016-09-05T14:18:44Z",
"updated_at": "2016-09-05T14:22:28Z"
}
Update an existing project column
Fine-grained access tokens for "Update an existing project column"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have at least one of the following permission sets:
- "Projects" repository permissions (write)
- "Projects" organization permissions (write)
Parameters for "Update an existing project column"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
column_id integer RequiredThe unique identifier of the column. |
Name, Type, Description |
---|
name string RequiredName of the project column |
HTTP response status codes for "Update an existing project column"
Status code | Description |
---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
Code samples for "Update an existing project column"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/projects/columns/COLUMN_ID \
-d '{"name":"To Do"}'
Response
Status: 200
{
"url": "https://api.github.com/projects/columns/367",
"project_url": "https://api.github.com/projects/120",
"cards_url": "https://api.github.com/projects/columns/367/cards",
"id": 367,
"node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=",
"name": "To Do",
"created_at": "2016-09-05T14:18:44Z",
"updated_at": "2016-09-05T14:22:28Z"
}
Delete a project column
Deletes a project column.
Fine-grained access tokens for "Delete a project column"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have at least one of the following permission sets:
- "Projects" repository permissions (write)
- "Projects" organization permissions (write)
Parameters for "Delete a project column"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
column_id integer RequiredThe unique identifier of the column. |
HTTP response status codes for "Delete a project column"
Status code | Description |
---|---|
204 | No Content |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
Code samples for "Delete a project column"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/projects/columns/COLUMN_ID
Response
Status: 204
Move a project column
Fine-grained access tokens for "Move a project column"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have at least one of the following permission sets:
- "Projects" repository permissions (write)
- "Projects" organization permissions (write)
Parameters for "Move a project column"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
column_id integer RequiredThe unique identifier of the column. |
Name, Type, Description |
---|
position string RequiredThe position of the column in a project. Can be one of: |
HTTP response status codes for "Move a project column"
Status code | Description |
---|---|
201 | Created |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Move a project column"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/projects/columns/COLUMN_ID/moves \
-d '{"position":"last"}'
Response
Status: 201
List project columns
Lists the project columns in a project.
Fine-grained access tokens for "List project columns"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have at least one of the following permission sets:
- "Projects" repository permissions (read)
- "Projects" organization permissions (read)
This endpoint can be used without authentication or the aforementioned permissions if only public resources are requested.
Parameters for "List project columns"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
project_id integer RequiredThe unique identifier of the project. |
Name, Type, Description |
---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "List project columns"
Status code | Description |
---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
Code samples for "List project columns"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/projects/PROJECT_ID/columns
Response
Status: 200
[
{
"url": "https://api.github.com/projects/columns/367",
"project_url": "https://api.github.com/projects/120",
"cards_url": "https://api.github.com/projects/columns/367/cards",
"id": 367,
"node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=",
"name": "To Do",
"created_at": "2016-09-05T14:18:44Z",
"updated_at": "2016-09-05T14:22:28Z"
}
]
Create a project column
Creates a new project column.
Fine-grained access tokens for "Create a project column"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have at least one of the following permission sets:
- "Projects" repository permissions (write)
- "Projects" organization permissions (write)
Parameters for "Create a project column"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
project_id integer RequiredThe unique identifier of the project. |
Name, Type, Description |
---|
name string RequiredName of the project column |
HTTP response status codes for "Create a project column"
Status code | Description |
---|---|
201 | Created |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Create a project column"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/projects/PROJECT_ID/columns \
-d '{"name":"Remaining tasks"}'
Response
Status: 201
{
"url": "https://api.github.com/projects/columns/367",
"project_url": "https://api.github.com/projects/120",
"cards_url": "https://api.github.com/projects/columns/367/cards",
"id": 367,
"node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=",
"name": "To Do",
"created_at": "2016-09-05T14:18:44Z",
"updated_at": "2016-09-05T14:22:28Z"
}