Skip to content

GitHub: Projects schemas

15 GitHub schemas with complete fields and constraints.

← Projects operations · All schemas

Add field to user owned project — request body — body / data_type: iteration iteration configuration

FieldTypePresenceDescription and constraints
$objectRootThe configuration for iteration fields.
durationintegerRequired within parentThe default duration for iterations in days. Individual iterations can override this value.
iterationsarrayOptionalZero or more iterations for the field.
iterations[]objectEach itemAdditional keys: not allowed
iterations[].durationintegerRequired within parentThe duration of the iteration in days.
iterations[].start_datestringRequired within parentThe start date of the iteration.
Format: date
iterations[].titlestringRequired within parentThe title of the iteration.
start_datestringRequired within parentThe start date of the first iteration.
Format: date

Add field to user owned project — request body — body / data_type: single select

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
data_typestringRequired within parentThe field's data type.
One of: single_select
namestringRequired within parentThe name of the field.
single_select_optionsarrayRequired within parentThe options available for single select fields. At least one option must be provided when creating a single select field.
single_select_options[]ModelEach itemExpand Add field to user owned project — request body — body / data_type: single select single select options item

Referenced models: Add field to user owned project — request body — body / data_type: single select single select options item

Add field to user owned project — request body — body / data_type: single select single select options item

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
colorstringOptionalThe color associated with the option.
One of: BLUE, GRAY, GREEN, ORANGE, PINK, PURPLE, RED, YELLOW
descriptionstringOptionalThe description of the option.
namestringOptionalThe display name of the option.

Add item to user owned project — request body — body

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
idintegerOptionalThe unique identifier of the issue or pull request to add to the project.
numberintegerOptionalThe issue or pull request number.
ownerstringOptionalThe repository owner login.
repostringOptionalThe repository name.
typestringRequired within parentThe type of item to add to the project. Must be either Issue or PullRequest.
One of: Issue, PullRequest
$ (oneOf 1)JSONAlternative
$ (oneOf 2)JSONAlternative

Add item to user owned project — response body

FieldTypePresenceDescription and constraints
$objectRootAn item belonging to a project
archived_atJSONRequired within parent
archived_at (anyOf 1)stringAlternativeThe time when the item was archived.
Format: date-time
archived_at (anyOf 2)nullAlternative
contentJSONOptionalThe content represented by the item.
content (anyOf 1)ModelAlternativeExpand Get an issue — response body
content (anyOf 2)ModelAlternativeExpand Request reviewers for a pull request — response body
content (anyOf 3)ModelAlternativeExpand Add item to user owned project — response body — content Draft Issue
content_typestringRequired within parentThe type of content tracked in a project item
Known values: Issue, PullRequest, DraftIssue
created_atstringRequired within parentThe time when the item was created.
Format: date-time
creatorModelOptionalExpand List users — response body — item
idJSONRequired within parent
id (anyOf 1)numberAlternativeThe unique identifier of the project item.
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
item_urlstringOptionalThe URL of the item in the project.
Format: uri
node_idstringOptionalThe node ID of the project item.
project_urlstringOptionalThe URL of the project this item belongs to.
Format: uri
updated_atstringRequired within parentThe time when the item was last updated.
Format: date-time

Referenced models: Get an issue — response body, Add item to user owned project — response body — content Draft Issue, Request reviewers for a pull request — response body, List users — response body — item

Add item to user owned project — response body — content Draft Issue

FieldTypePresenceDescription and constraints
$objectRootA draft issue in a project
bodyJSONOptional
body (anyOf 1)stringAlternativeThe body content of the draft issue
body (anyOf 2)nullAlternative
created_atstringRequired within parentThe time the draft issue was created
Format: date-time
idJSONRequired within parent
id (anyOf 1)numberAlternativeThe ID of the draft issue
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
node_idstringRequired within parentThe node ID of the draft issue
titlestringRequired within parentThe title of the draft issue
updated_atstringRequired within parentThe time the draft issue was last updated
Format: date-time
userModelRequired within parentExpand Get an issue — response body — user

Referenced models: Get an issue — response body — user

Create a view for a user-owned project — request body — body

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
filterstringOptionalThe filter query for the view. See [Filtering projects](https://docs.github.com/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects) for more information.
group_byarrayOptionalThe field IDs to group items by (horizontal grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on.
Maximum items: 1
group_by[]integerEach item
layoutstringRequired within parentThe layout of the view.
One of: table, board, roadmap
namestringRequired within parentThe name of the view.
sort_byarrayOptionalSorting configuration for the view. Each element is a two-element array of `[field_id, direction]` where `direction` is `"asc"` or `"desc"`. Supports multiple sort criteria applied in order.
sort_by[]arrayEach itemMaximum items: 2
Minimum items: 2
sort_by[][]JSONEach item
sort_by[][] (oneOf 1)integerAlternative
sort_by[][] (oneOf 2)stringAlternative
vertical_group_byarrayOptionalThe field IDs to use as columns in `board` layout (vertical grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on.
Maximum items: 1
vertical_group_by[]integerEach item
visible_fieldsarrayOptional`visible_fields` is not applicable to `roadmap` layout views.
For `table` and `board` layouts, this represents the field IDs that should be visible in the view. If not provided, the default visible fields will be used.
visible_fields[]integerEach item

Create a view for a user-owned project — response body

FieldTypePresenceDescription and constraints
$objectRootA view inside a projects v2 project
created_atstringRequired within parentThe time when the view was created.
Format: date-time
creatorJSONRequired within parent
creator (allOf 1)ModelAll variants applyExpand List users — response body — item
filterJSONOptional
filter (anyOf 1)stringAlternativeThe filter query for the view.
filter (anyOf 2)nullAlternative
group_byarrayRequired within parentThe list of field IDs used for horizontal grouping.
group_by[]JSONEach item
group_by[] (anyOf 1)integerAlternative
group_by[] (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
html_urlstringRequired within parentThe web URL of the view.
Format: uri
idJSONRequired within parent
id (anyOf 1)integerAlternativeThe unique identifier of the view.
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
layoutstringRequired within parentThe layout of the view.
Known values: table, board, roadmap
namestringRequired within parentThe name of the view.
node_idstringRequired within parentThe node ID of the view.
numberJSONRequired within parent
number (anyOf 1)integerAlternativeThe number of the view within the project.
number (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
project_urlstringRequired within parentThe API URL of the project that contains the view.
sort_byarrayRequired within parentThe sorting configuration for the view. Each element is a tuple of [field_id, direction] where direction is "asc" or "desc".
sort_by[]arrayEach itemMaximum items: 2
Minimum items: 2
sort_by[][]JSONEach item
sort_by[][] (anyOf 1)JSONAlternative
sort_by[][] (anyOf 1) (anyOf 1)integerAlternative
sort_by[][] (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
sort_by[][] (anyOf 2)stringAlternative
updated_atstringRequired within parentThe time when the view was last updated.
Format: date-time
vertical_group_byarrayRequired within parentThe list of field IDs used for vertical grouping (board layout).
vertical_group_by[]JSONEach item
vertical_group_by[] (anyOf 1)integerAlternative
vertical_group_by[] (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
visible_fieldsarrayRequired within parentThe list of field IDs that are visible in the view.
visible_fields[]JSONEach item
visible_fields[] (anyOf 1)integerAlternative
visible_fields[] (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: List users — response body — item

Get project field for user — response body

FieldTypePresenceDescription and constraints
$objectRootA field inside a projects v2 project
configurationobjectOptionalConfiguration for iteration fields.
configuration.durationJSONOptional
configuration.duration (anyOf 1)integerAlternativeThe duration of the iteration in days.
configuration.duration (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
configuration.iterationsarrayOptional
configuration.iterations[]ModelEach itemExpand Get project field for user — response body — configuration iterations item
configuration.start_dayJSONOptional
configuration.start_day (anyOf 1)integerAlternativeThe day of the week when the iteration starts.
configuration.start_day (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
created_atstringRequired within parentThe time when the field was created.
Format: date-time
data_typestringRequired within parentThe field's data type.
Known values: assignees, linked_pull_requests, reviewers, labels, milestone, repository, title, text, single_select, number, date, iteration, issue_type, parent_issue, sub_issues_progress
idJSONRequired within parent
id (anyOf 1)integerAlternativeThe unique identifier of the field.
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
issue_field_idJSONOptional
issue_field_id (anyOf 1)integerAlternativeThe ID of the issue field.
issue_field_id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
namestringRequired within parentThe name of the field.
node_idstringOptionalThe node ID of the field.
optionsarrayOptionalThe options available for single select fields.
options[]ModelEach itemExpand Get project field for user — response body — options item
project_urlstringRequired within parentThe API URL of the project that contains the field.
updated_atstringRequired within parentThe time when the field was last updated.
Format: date-time

Referenced models: Get project field for user — response body — configuration iterations item, Get project field for user — response body — options item

Get project field for user — response body — configuration iterations item

FieldTypePresenceDescription and constraints
$objectRootAn iteration setting for an iteration field
completedbooleanRequired within parentWhether the iteration has been completed.
durationJSONRequired within parent
duration (anyOf 1)integerAlternativeThe duration of the iteration in days.
duration (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
idstringRequired within parentThe unique identifier of the iteration setting.
start_datestringRequired within parentThe start date of the iteration.
Format: date
titleobjectRequired within parentThe iteration title, in raw text and HTML formats.
title.htmlstringRequired within parent
title.rawstringRequired within parent

Get project field for user — response body — options item

FieldTypePresenceDescription and constraints
$objectRootAn option for a single select field
colorstringRequired within parentThe color associated with the option.
descriptionobjectRequired within parentThe description of the option, in raw text and HTML formats.
description.htmlstringRequired within parent
description.rawstringRequired within parent
idstringRequired within parentThe unique identifier of the option.
nameobjectRequired within parentThe display name of the option, in raw text and HTML formats.
name.htmlstringRequired within parent
name.rawstringRequired within parent

Get project for user — response body

FieldTypePresenceDescription and constraints
$objectRootA projects v2 project
closed_atJSONRequired within parent
closed_at (anyOf 1)stringAlternativeThe time when the project was closed.
Format: date-time
closed_at (anyOf 2)nullAlternative
created_atstringRequired within parentThe time when the project was created.
Format: date-time
creatorModelRequired within parentExpand List users — response body — item
deleted_atJSONRequired within parent
deleted_at (anyOf 1)stringAlternativeThe time when the project was deleted.
Format: date-time
deleted_at (anyOf 2)nullAlternative
deleted_byModelRequired within parentExpand Get an issue — response body — user
descriptionJSONRequired within parent
description (anyOf 1)stringAlternativeA short description of the project.
description (anyOf 2)nullAlternative
idJSONRequired within parent
id (anyOf 1)numberAlternativeThe unique identifier of the project.
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
is_templatebooleanOptionalWhether this project is a template
latest_status_updateModelOptionalExpand Get project for user — response body — latest status update
node_idstringRequired within parentThe node ID of the project.
numberJSONRequired within parent
number (anyOf 1)integerAlternativeThe project number.
number (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
ownerModelRequired within parentExpand List users — response body — item
publicbooleanRequired within parentWhether the project is visible to anyone with access to the owner.
short_descriptionJSONRequired within parent
short_description (anyOf 1)stringAlternativeA concise summary of the project.
short_description (anyOf 2)nullAlternative
statestringOptionalThe current state of the project.
Known values: open, closed
titlestringRequired within parentThe project title.
updated_atstringRequired within parentThe time when the project was last updated.
Format: date-time

Referenced models: Get project for user — response body — latest status update, Get an issue — response body — user, List users — response body — item

Get project for user — response body — latest status update

FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeAn status update belonging to a project
$ (anyOf 1).bodyJSONOptional
$ (anyOf 1).body (anyOf 1)stringAlternativeBody of the status update
$ (anyOf 1).body (anyOf 2)nullAlternative
$ (anyOf 1).created_atstringRequired within parentThe time when the status update was created.
Format: date-time
$ (anyOf 1).creatorModelOptionalExpand List users — response body — item
$ (anyOf 1).idJSONRequired within parent
$ (anyOf 1).id (anyOf 1)numberAlternativeThe unique identifier of the status update.
$ (anyOf 1).id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
$ (anyOf 1).node_idstringRequired within parentThe node ID of the status update.
$ (anyOf 1).project_node_idstringOptionalThe node ID of the project that this status update belongs to.
$ (anyOf 1).start_datestringOptionalThe start date of the period covered by the update.
Format: date
$ (anyOf 1).statusJSONOptional
$ (anyOf 1).status (anyOf 1)stringAlternativeThe current status.
Known values: INACTIVE, ON_TRACK, AT_RISK, OFF_TRACK, COMPLETE
$ (anyOf 1).status (anyOf 2)nullAlternative
$ (anyOf 1).target_datestringOptionalThe target date associated with the update.
Format: date
$ (anyOf 1).updated_atstringRequired within parentThe time when the status update was last updated.
Format: date-time
$ (anyOf 2)nullAlternative

Referenced models: List users — response body — item

Update project item for user — request body — body

FieldTypePresenceDescription and constraints
$objectRoot
fieldsarrayRequired within parentA list of field updates to apply.
fields[]objectEach item
fields[].idintegerRequired within parentThe ID of the project field to update.
fields[].valueJSONRequired within parent
fields[].value (anyOf 1)JSONAlternativeThe new value for the field:
- For text, number, and date fields, provide the new value directly.
- For single select and iteration fields, provide the ID of the option or iteration.
- To clear the field, set this to null.
fields[].value (anyOf 1) (oneOf 1)stringAlternative
fields[].value (anyOf 1) (oneOf 2)numberAlternative
fields[].value (anyOf 2)nullAlternative

Update project item for user — response body

FieldTypePresenceDescription and constraints
$objectRootAn item belonging to a project
archived_atJSONRequired within parent
archived_at (anyOf 1)stringAlternativeThe time when the item was archived.
Format: date-time
archived_at (anyOf 2)nullAlternative
contentJSONOptional
content (anyOf 1)objectAlternativeThe content of the item, which varies by content type.
Additional keys: allowed
content (anyOf 2)nullAlternative
content_typestringRequired within parentThe type of content tracked in a project item
Known values: Issue, PullRequest, DraftIssue
created_atstringRequired within parentThe time when the item was created.
Format: date-time
creatorModelOptionalExpand List users — response body — item
fieldsarrayOptionalThe fields and values associated with this item.
fields[]objectEach itemAdditional keys: allowed
idJSONRequired within parent
id (anyOf 1)numberAlternativeThe unique identifier of the project item.
id (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
item_urlJSONOptional
item_url (anyOf 1)stringAlternativeThe API URL of this item.
Format: uri
item_url (anyOf 2)nullAlternative
node_idstringOptionalThe node ID of the project item.
project_urlstringOptionalThe API URL of the project that contains this item.
Format: uri
updated_atstringRequired within parentThe time when the item was last updated.
Format: date-time

Referenced models: List users — response body — item

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.