Set or clear a field value
const url = 'https://api.pealboard.com/v1/projects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/items/PVTI_lADOABCDEF4AbcDEzgAAAAA';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"fieldNodeId":"example","value":{"optionId":"example","optionName":"example","text":"example","number":1,"date":"2026-04-15","iterationId":"example","optionIds":["example"]}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://api.pealboard.com/v1/projects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/items/PVTI_lADOABCDEF4AbcDEzgAAAAA \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "fieldNodeId": "example", "value": { "optionId": "example", "optionName": "example", "text": "example", "number": 1, "date": "2026-04-15", "iterationId": "example", "optionIds": [ "example" ] } }'Sets one field on one item. This is what dragging a card between board columns does.
A single select takes optionId or optionName; a date takes YYYY-MM-DD; a number takes a number; text takes a string; an iteration takes iterationId. Send "value": null to clear the field.
Assignees, Labels, Milestone and Repository cannot be set this way — GitHub requires those to be changed on the issue itself, with PATCH /v1/issues/{issueId}.
Access. Requires the member role or above (member, admin, owner). Setting a field value changes the customer’s GitHub project. API-key scope: projects:write.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”From GET /v1/projects.
From GET /v1/projects.
The item’s GitHub node id, from GET /v1/projects/{projectId}/items. A node id rather than a Pealboard id, because that is what every Projects v2 mutation takes.
Example
PVTI_lADOABCDEF4AbcDEzgAAAAAThe item’s GitHub node id, from GET /v1/projects/{projectId}/items. A node id rather than a Pealboard id, because that is what every Projects v2 mutation takes.
Request Body
Section titled “Request Body”object
From the project’s fields, which is where every field’s node id is.
Null clears the field.
object
A single-select option id.
A single-select option by name, matched case-insensitively.
YYYY-MM-DD.
A multi-select field’s options.
Examplegenerated
{ "fieldNodeId": "example", "value": { "optionId": "example", "optionName": "example", "text": "example", "number": 1, "date": "2026-04-15", "iterationId": "example", "optionIds": [ "example" ] }}Responses
Section titled “Responses”The item.
object
A UUID this API issued.
What the card points at. Redacted is GitHub’s answer for an item in a repository the installation cannot see; its content is null and that is not an error.
object
Set when the item is an issue in a synced repository.
GitHub’s own word for whether the issue is open or closed.
object
object
object
object
object
object
object
Example
{ "content": { "type": "Issue", "state": "open" }, "fieldValues": { "additionalProperty": { "type": "text" } }}No valid credentials.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}Authenticated, but not permitted.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}No such resource, or it is not visible to you.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}The request conflicts with the current state.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}The request did not match the expected shape.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}Rate limited. Retry after the interval in the header.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}GitHub or another dependency refused or did not answer. Nothing in the workspace changed.
object
object
A stable identifier for the kind of failure. Safe to branch on.
What went wrong, written for a person.
Structured particulars, when there are any.
object
What to do about it, when there is something to do.
Quote this when asking about a specific failure.
Examplegenerated
{ "error": { "code": "example", "message": "example", "detail": { "additionalProperty": "example" }, "remedy": "example", "requestId": "example" }}