REST API endpoints for Project items

Use the REST API to manage Project items

Note

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.

List items for an organization owned project

GET /orgs/{org}/projectsV2/{project_number}/items

List all items for a specific organization-owned project accessible by the authenticated user.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items

Response schema (Status: 200):

Array of Projects v2 Item:

Add item to organization owned project

POST /orgs/{org}/projectsV2/{project_number}/items

Add an issue or pull request item to the specified organization owned project.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Add an issue using its unique ID

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "Issue",
  "id": 3
}'

Response schema (Status: 201):

Add a pull request using its unique ID

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "PullRequest",
  "id": 3
}'

Response schema (Status: 201):

Add an issue using repository owner, name, and issue number

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "Issue",
  "owner": "octocat",
  "repo": "hello-world",
  "number": 42
}'

Response schema (Status: 201):

Add a pull request using repository owner, name, and PR number

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "PullRequest",
  "owner": "octocat",
  "repo": "hello-world",
  "number": 123
}'

Response schema (Status: 201):

Get an item for an organization owned project

GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}

Get a specific item from an organization-owned project.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID

Response schema (Status: 200):

Update project item for organization

PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}

Update a specific item in an organization-owned project.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Update a text field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 123,
      "value": "Updated text value"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update a number field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 456,
      "value": 42.5
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update a date field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 789,
      "value": "2023-10-05"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update a single select field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 789,
      "value": "47fc9ee4"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update an iteration field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 1011,
      "value": "866ee5b8"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Delete project item for organization

DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}

Delete a specific item from an organization-owned project.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/items/ITEM_ID

Response schema (Status: 204):

List items for an organization project view

GET /orgs/{org}/projectsV2/{project_number}/views/{view_number}/items

List items in an organization project with the saved view's filter applied.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/views/VIEW_NUMBER/items

Response schema (Status: 200):

Same response schema as List items for an organization owned project.

List items for a user owned project

GET /users/{username}/projectsV2/{project_number}/items

List all items for a specific user-owned project accessible by the authenticated user.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items

Response schema (Status: 200):

Same response schema as List items for an organization owned project.

Add item to user owned project

POST /users/{username}/projectsV2/{project_number}/items

Add an issue or pull request item to the specified user owned project.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Add an issue using its unique ID

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "Issue",
  "id": 3
}'

Response schema (Status: 201):

Same response schema as Add item to organization owned project.

Add a pull request using its unique ID

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "PullRequest",
  "id": 3
}'

Response schema (Status: 201):

Same response schema as Add item to organization owned project.

Add an issue using repository owner, name, and issue number

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "Issue",
  "owner": "octocat",
  "repo": "hello-world",
  "number": 42
}'

Response schema (Status: 201):

Same response schema as Add item to organization owned project.

Add a pull request using repository owner, name, and PR number

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items \
  -d '{
  "type": "PullRequest",
  "owner": "octocat",
  "repo": "hello-world",
  "number": 123
}'

Response schema (Status: 201):

Same response schema as Add item to organization owned project.

Get an item for a user owned project

GET /users/{username}/projectsV2/{project_number}/items/{item_id}

Get a specific item from a user-owned project.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update project item for user

PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}

Update a specific item in a user-owned project.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Update a text field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 123,
      "value": "Updated text value"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update a number field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 456,
      "value": 42.5
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update a date field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 789,
      "value": "2023-10-05"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update a single select field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 789,
      "value": "47fc9ee4"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Update an iteration field

Request:

curl -L \
  -X PATCH \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID \
  -d '{
  "fields": [
    {
      "id": 1011,
      "value": "866ee5b8"
    }
  ]
}'

Response schema (Status: 200):

Same response schema as Get an item for an organization owned project.

Delete project item for user

DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}

Delete a specific item from a user-owned project.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/items/ITEM_ID

Response schema (Status: 204):

List items for a user project view

GET /users/{username}/projectsV2/{project_number}/views/{view_number}/items

List items in a user project with the saved view's filter applied.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/views/VIEW_NUMBER/items

Response schema (Status: 200):

Same response schema as List items for an organization owned project.