GitHub Projects API

The GitHub Projects API enables developers to programmatically create and manage GitHub Projects, which are flexible tools for planning and tracking work using customizable boards, tables, and roadmaps. Through these REST API endpoints, you can create projects at the repository, organization, or user level, add and organize items like issues and pull requests, manage project fields and views, update item statuses and metadata, and automate project workflows.

Operations 25

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /orgs/{org}/projects List an organization's project boards · GitHub List Organization Projects #
Ask an LLM
“Which classic project boards does an organization have?”
“Can I list only the closed project boards in an org?”
Tell an agent
List the project boards in the {org} organization.
Show {state} projects belonging to organization {org}.
POST /orgs/{org}/projects Create an organization project board · GitHub Create an Organization Project #
Ask an LLM
“How do I create a new project board owned by an organization?”
“Why would creating an org project board return 410 Gone?”
Tell an agent
Create a project board named {name} in organization {org}.
Set up org project {name} for {org} with description {body}.
GET /projects/columns/cards/{card_id} Get a project card · GitHub Get a Project Card #
Ask an LLM
“What's on a specific project card, and which column is it in?”
“Can I look up a project board card by its id?”
Tell an agent
Get project card {card_id}.
Show the note and column of card {card_id} on the project board.
PATCH /projects/columns/cards/{card_id} Edit or archive a project card · GitHub Update an Existing Project Card #
Ask an LLM
“How do I archive a project card without deleting it?”
“Can I change the note text on an existing project card?”
Tell an agent
Change the note on project card {card_id} to {note}.
Set archived to {archived} on project card {card_id}.
DELETE /projects/columns/cards/{card_id} Delete a project card · GitHub Delete a Project Card #
Ask an LLM
“Can I permanently remove a card from a project board instead of archiving it?”
“What's the way to delete a project card by id?”
Tell an agent destructive · confirm first
Delete project card {card_id}.
Permanently remove card {card_id} from its project board.
POST /projects/columns/cards/{card_id}/moves Move a card within or between project columns · GitHub Move a Project Card #
Ask an LLM
“How do I move a project card to the top or bottom of a column?”
“Can I move a card into a different column on the board?”
Tell an agent
Move project card {card_id} to position {position}.
Move card {card_id} into column {column_id} at position {position}.
GET /projects/columns/{column_id} Get a project column · GitHub Get a Project Column #
Ask an LLM
“What are the details of a specific column on a project board?”
“Can I look up a project column by its id?”
Tell an agent
Get project column {column_id}.
Show the name and project of board column {column_id}.
PATCH /projects/columns/{column_id} Rename a project column · GitHub Update an Existing Project Column #
Ask an LLM
“How do I rename a column on a project board?”
“Can I change a column's title from To Do to Backlog?”
Tell an agent
Rename project column {column_id} to {name}.
Change the title of board column {column_id} to {name}.
DELETE /projects/columns/{column_id} Delete a project column · GitHub Delete a Project Column #
Ask an LLM
“Can I delete a whole column from a project board?”
“What's the way to remove an unused column from a board?”
Tell an agent destructive · confirm first
Delete project column {column_id}.
Remove column {column_id} from its project board.
GET /projects/columns/{column_id}/cards List the cards in a project column · GitHub List Project Cards #
Ask an LLM
“What cards are sitting in a given project column?”
“Can I include archived cards when listing a column?”
Tell an agent
List the cards in project column {column_id}.
Show {archived_state} cards in column {column_id}.
POST /projects/columns/{column_id}/cards Add a card to a project column · GitHub Create a Project Card #
Ask an LLM
“How do I add a new card to a column on a project board?”
“Can I put a card straight into a specific project column?”
Tell an agent
Create a new card in project column {column_id}.
Add a card to board column {column_id}.
POST /projects/columns/{column_id}/moves Reorder a column on a project board · GitHub Move a Project Column #
Ask an LLM
“Can I change the order of columns on a project board?”
“How do I move a column to be first or last on the board?”
Tell an agent
Move project column {column_id} to position {position}.
Reorder board column {column_id} so it sits at {position}.
GET /projects/{project_id} Get a project board · GitHub Get a Project #
Ask an LLM
“What are the details of a specific project board?”
“Why would fetching a project return 404 or 401?”
Tell an agent
Get project {project_id}.
Show the name, state and description of project board {project_id}.
PATCH /projects/{project_id} Update or close a project board · GitHub Update a Project #
Ask an LLM
“How do I close or rename a project board?”
“Can I make an organization project private or change the default org permission on it?”
Tell an agent
Rename project {project_id} to {name}.
Set project board {project_id} to state {state}.
DELETE /projects/{project_id} Delete a project board · GitHub Delete a Project #
Ask an LLM
“Can I delete an entire project board?”
“What's the way to remove a project board I no longer use?”
Tell an agent destructive · confirm first
Delete project board {project_id}.
Permanently remove project {project_id} and its board.
GET /projects/{project_id}/collaborators List a project's collaborators · GitHub List Project Collaborators #
Ask an LLM
“Who has access to an organization project board?”
“Can I list only the outside collaborators on a project?”
Tell an agent
List the collaborators on project {project_id}.
Show {affiliation} collaborators of project board {project_id}.
PUT /projects/{project_id}/collaborators/{username} Add a collaborator to a project · GitHub Add Project Collaborator #
Ask an LLM
“How do I give someone access to an organization project board?”
“Can I set a collaborator's permission level on a project to write or admin?”
Tell an agent
Add {username} as a collaborator on project {project_id}.
Give {username} {permission} permission on project board {project_id}.
DELETE /projects/{project_id}/collaborators/{username} Remove a collaborator from a project · GitHub Remove User as a Collaborator #
Ask an LLM
“Can I revoke someone's access to an organization project board?”
“Who is allowed to remove a collaborator from a project?”
Tell an agent destructive · confirm first
Remove {username} as a collaborator from project {project_id}.
Revoke access for {username} on project board {project_id}.
GET /projects/{project_id}/collaborators/{username}/permission Check a user's permission on a project · GitHub Get Project Permission for a User #
Ask an LLM
“What permission level does a given person have on a project board?”
“Is a collaborator an admin, writer or reader on this project?”
Tell an agent
Get the permission {username} has on project {project_id}.
Tell me whether {username} is admin, write, read or none on project board {project_id}.
GET /projects/{project_id}/columns List the columns of a project board · GitHub List Project Columns #
Ask an LLM
“What columns does a project board have?”
“Can I see a board's column layout before adding cards?”
Tell an agent
List the columns in project {project_id}.
Show every column on project board {project_id}.
POST /projects/{project_id}/columns Add a column to a project board · GitHub Create a Project Column #
Ask an LLM
“How do I add a new column like In Review to a project board?”
“Can I create a project column with just a name?”
Tell an agent
Add a column named {name} to project {project_id}.
Create a new column {name} on project board {project_id}.
GET /repos/{owner}/{repo}/projects List a repository's project boards · GitHub List Repository Projects #
Ask an LLM
“Which project boards are attached to a repository?”
“Can I list only a repo's open project boards?”
Tell an agent
List the project boards in {owner}/{repo}.
Show {state} projects for repository {owner}/{repo}.
POST /repos/{owner}/{repo}/projects Create a repository project board · GitHub Create a Repository Project #
Ask an LLM
“How do I create a project board inside a single repository?”
“What does it mean when creating a repo project returns 410 Gone?”
Tell an agent
Add a repository-level project board called {name} to {owner}/{repo}.
Set up repo project {name} for {owner}/{repo} described as {body}.
POST /user/projects Create a personal project board · GitHub Create a User Project #
Ask an LLM
“Can I create a project board on my own user account rather than an org or repo?”
“Why does creating a user project fail when I have no classic projects?”
Tell an agent
Create a personal project board named {name} on my account.
Make me a user project {name} with description {body}.
GET /users/{username}/projects List a user's project boards · GitHub List User Projects #
Ask an LLM
“Which project boards does a particular user own?”
“Can I see only someone's closed personal projects?”
Tell an agent
List the project boards owned by {username}.
Show {state} projects for user {username}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/github-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

github-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.1.4
  title: GitHub v3 REST Projects API
  description: GitHub's v3 REST API.
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://docs.github.com/articles/github-terms-of-service
  contact:
    name: Support
    url: https://support.github.com/contact?tags=dotcom-rest-api
  x-github-plan: ghes
  x-github-release: 3.9
servers:
- url: '{protocol}://{hostname}/api/v3'
  variables:
    hostname:
      description: Self-hosted Enterprise Server hostname
      default: HOSTNAME
    protocol:
      description: Self-hosted Enterprise Server protocol
      default: http
tags:


# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/github/refs/heads/main/openapi/github-projects-api-openapi.yml