Skip to content

Edit a view

PATCH
/v1/views/{viewId}
curl --request PATCH \
--url https://api.pealboard.com/v1/views/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "layout": "list", "filter": { "q": "example", "repository": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "state": "open", "label": [ "example" ], "assignee": [ "example" ], "milestone": [ "example" ], "project": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "type": [ "example" ], "field": { "additionalProperty": "example" }, "updatedSince": "example", "closedSince": "example", "noProjectStatus": true, "hasPortalRequest": true }, "sort": { "key": "updated", "order": "asc" }, "groupBy": { "kind": "project_field", "fieldNodeId": "example", "fieldName": "example", "projectId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }, "columns": [], "shared": false }'

Only the fields sent are changed. A shared view may be edited by an admin or by the member who made it; a personal view only by its owner.

Changing shared moves the view between the workspace and the person: sharing one needs the admin role, and unsharing one gives it to the member doing the unsharing.

Access. Requires the member role or above (member, admin, owner). Editing a view is a change to the workspace a viewer does not make. API-key scope: views:write.

viewId
required

From GET /v1/views.

string format: uuid

From GET /v1/views.

Media typeapplication/json
object
name
string
>= 1 characters <= 80 characters
layout

board groups by the view’s groupBy; the other two do not.

string
default: list
Allowed values: list board table
filter
object
q

Full text over title, number, label names and body.

string
repository

Repository ids. Any of them matches.

Array<string>
state
string
Allowed values: open closed all
label

Label names. An issue must carry every one of them.

Array<string>
assignee

GitHub logins, @me for the caller, or none for unassigned. Any of them matches.

Array<string>
milestone

Milestone ids, or none.

Array<string>
project

Project ids. Any of them matches.

Array<string>
type

Issue type names, or none.

Array<string>
field

Project field node id to the value it must hold, or none for not set. Every entry must match.

object
key
additional properties
string
updatedSince

An ISO 8601 instant, or a window such as -7d, -24h, -2w.

string
closedSince

The same forms as updatedSince.

string
noProjectStatus

Issues on no project, or on one whose Status field is not set.

boolean
hasPortalRequest

Issues that are a request in at least one portal.

boolean
sort
object
key
string
default: updated
Allowed values: updated created number title comments
order
string
default: desc
Allowed values: asc desc
groupBy
One of:
object
kind
required
string
Allowed values: project_field
fieldNodeId
string
fieldName

For a view saved before any project existed. Resolved when the board is run.

string
projectId

A UUID this API issued.

string format: uuid
columns

The columns the table layout shows, in order.

Array<string>
default:
shared

Shared with the workspace, so it appears for every member. A view that is not shared is visible only to you.

boolean

The view.

Media typeapplication/json
object
id
required

A UUID this API issued.

string format: uuid
name
required
string
layout
required

board groups by the view’s groupBy; the other two do not.

string
Allowed values: list board table
filter
required
object
q

Full text over title, number, label names and body.

string
repository

Repository ids. Any of them matches.

Array<string>
state
string
Allowed values: open closed all
label

Label names. An issue must carry every one of them.

Array<string>
assignee

GitHub logins, @me for the caller, or none for unassigned. Any of them matches.

Array<string>
milestone

Milestone ids, or none.

Array<string>
project

Project ids. Any of them matches.

Array<string>
type

Issue type names, or none.

Array<string>
field

Project field node id to the value it must hold, or none for not set. Every entry must match.

object
key
additional properties
string
updatedSince

An ISO 8601 instant, or a window such as -7d, -24h, -2w.

string
closedSince

The same forms as updatedSince.

string
noProjectStatus

Issues on no project, or on one whose Status field is not set.

boolean
hasPortalRequest

Issues that are a request in at least one portal.

boolean
sort
required
object
key
string
default: updated
Allowed values: updated created number title comments
order
string
default: desc
Allowed values: asc desc
groupBy
required
One of:
object
kind
required
string
Allowed values: project_field
fieldNodeId
string
fieldName

For a view saved before any project existed. Resolved when the board is run.

string
projectId

A UUID this API issued.

string format: uuid
columns
required

The columns the table layout shows, in order. Empty means the client’s own default set.

Array<string>
shared
required

Shared with the workspace. A view that is not shared is visible only to the member who owns it.

boolean
ownerMembershipId
required

Null for a shared view.

string | null format: uuid
builtIn
required

Which of the six seeded views this started as, or null for one somebody made.

string | null
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{
"id": "3c9a1f52-7b8e-4d21-9f03-6a5b4c3d2e1f",
"name": "Needs triage",
"layout": "list",
"filter": {
"state": "open",
"noProjectStatus": true
},
"sort": {
"key": "created",
"order": "desc"
},
"groupBy": null,
"columns": [],
"shared": true,
"ownerMembershipId": null,
"builtIn": "needs_triage",
"createdAt": "2026-09-09T10:00:00.000Z",
"updatedAt": "2026-09-09T10:00:00.000Z"
}

No valid credentials.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": {
"additionalProperty": "example"
},
"remedy": "example",
"requestId": "example"
}
}

Authenticated, but not permitted.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": {
"additionalProperty": "example"
},
"remedy": "example",
"requestId": "example"
}
}

No such resource, or it is not visible to you.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": {
"additionalProperty": "example"
},
"remedy": "example",
"requestId": "example"
}
}

The request conflicts with the current state.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": {
"additionalProperty": "example"
},
"remedy": "example",
"requestId": "example"
}
}

The request did not match the expected shape.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": {
"additionalProperty": "example"
},
"remedy": "example",
"requestId": "example"
}
}

Rate limited. Retry after the interval in the header.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
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.

Media typeapplication/json
object
error
required
object
code
required

A stable identifier for the kind of failure. Safe to branch on.

string
message
required

What went wrong, written for a person.

string
detail

Structured particulars, when there are any.

object
key
additional properties
remedy

What to do about it, when there is something to do.

string
requestId
required

Quote this when asking about a specific failure.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": {
"additionalProperty": "example"
},
"remedy": "example",
"requestId": "example"
}
}