REST API endpoints for Project fields

Use the REST API to manage Project fields

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 project fields for organization

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

List all fields for a specific 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/fields

Response schema (Status: 200):

Array of Projects v2 Field:

Add a field to an organization-owned project.

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

Add a field to an organization-owned project.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Create a text field

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Team notes",
  "data_type": "text"
}'

Response schema (Status: 201):

Create a number field

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Story points",
  "data_type": "number"
}'

Response schema (Status: 201):

Create a date field

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Due date",
  "data_type": "date"
}'

Response schema (Status: 201):

Create a single select field

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Priority",
  "data_type": "single_select",
  "single_select_options": [
    {
      "name": {
        "raw": "Low",
        "html": "Low"
      },
      "color": "GREEN",
      "description": {
        "raw": "Low priority items",
        "html": "Low priority items"
      }
    },
    {
      "name": {
        "raw": "Medium",
        "html": "Medium"
      },
      "color": "YELLOW",
      "description": {
        "raw": "Medium priority items",
        "html": "Medium priority items"
      }
    },
    {
      "name": {
        "raw": "High",
        "html": "High"
      },
      "color": "RED",
      "description": {
        "raw": "High priority items",
        "html": "High priority items"
      }
    }
  ]
}'

Response schema (Status: 201):

Create an iteration field

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Sprint",
  "data_type": "iteration",
  "iteration_configuration": {
    "start_date": "2022-07-01",
    "duration": 14,
    "iterations": [
      {
        "title": "Sprint 1",
        "start_date": "2022-07-01",
        "duration": 14
      },
      {
        "title": "Sprint 2",
        "start_date": "2022-07-15",
        "duration": 14
      }
    ]
  }
}'

Response schema (Status: 201):

Get project field for organization

GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}

Get a specific field for 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/fields/FIELD_ID

Response schema (Status: 200):

Same response schema as Add a field to an organization-owned project..

List project fields for user

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

List all fields for a specific 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/fields

Response schema (Status: 200):

Same response schema as List project fields for organization.

Add field to user owned project

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

Add a field to a specified user owned project.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Create a text field

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Team notes",
  "data_type": "text"
}'

Response schema (Status: 201):

Same response schema as Add a field to an organization-owned project..

Create a number field

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Story points",
  "data_type": "number"
}'

Response schema (Status: 201):

Same response schema as Add a field to an organization-owned project..

Create a date field

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Due date",
  "data_type": "date"
}'

Response schema (Status: 201):

Same response schema as Add a field to an organization-owned project..

Create a single select field

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Priority",
  "data_type": "single_select",
  "single_select_options": [
    {
      "name": {
        "raw": "Low",
        "html": "Low"
      },
      "color": "GREEN",
      "description": {
        "raw": "Low priority items",
        "html": "Low priority items"
      }
    },
    {
      "name": {
        "raw": "Medium",
        "html": "Medium"
      },
      "color": "YELLOW",
      "description": {
        "raw": "Medium priority items",
        "html": "Medium priority items"
      }
    },
    {
      "name": {
        "raw": "High",
        "html": "High"
      },
      "color": "RED",
      "description": {
        "raw": "High priority items",
        "html": "High priority items"
      }
    }
  ]
}'

Response schema (Status: 201):

Same response schema as Add a field to an organization-owned project..

Create an iteration field

Request:

curl -L \
  -X POST \
  https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER/fields \
  -d '{
  "name": "Sprint",
  "data_type": "iteration",
  "iteration_configuration": {
    "start_date": "2022-07-01",
    "duration": 14,
    "iterations": [
      {
        "title": "Sprint 1",
        "start_date": "2022-07-01",
        "duration": 14
      },
      {
        "title": "Sprint 2",
        "start_date": "2022-07-15",
        "duration": 14
      }
    ]
  }
}'

Response schema (Status: 201):

Same response schema as Add a field to an organization-owned project..

Get project field for user

GET /users/{username}/projectsV2/{project_number}/fields/{field_id}

Get a specific field for 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/fields/FIELD_ID

Response schema (Status: 200):

Same response schema as Add a field to an organization-owned project..