REST API endpoints for Copilot Spaces resources
Use the REST API to interact with Copilot Spaces resources.
List resources for an organization Copilot Space
Lists all resources attached to a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to view the space.
OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.
Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
Fine-grained access tokens for "List resources for an organization Copilot Space"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Copilot Spaces" organization permissions (read)
Parameters for "List resources for an organization Copilot Space"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
HTTP response status codes for "List resources for an organization Copilot Space"
| Status code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
Code samples for "List resources for an organization Copilot Space"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/orgs/ORG/copilot-spaces/SPACE_NUMBER/resourcesResponse
Status: 200{
"resources": [
{
"id": 1,
"resource_type": "repository",
"copilot_chat_attachment_id": null,
"metadata": {
"repository_id": 42
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
{
"id": 2,
"resource_type": "free_text",
"copilot_chat_attachment_id": null,
"metadata": {
"name": "notes.txt",
"text": "Some helpful notes"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
]
}Create a resource for an organization Copilot Space
Creates a new resource in a specific Copilot Space owned by an organization. The authenticated user must have write permissions on the space.
The following resource types are supported: repository, github_file, free_text, github_issue, github_pull_request.
The uploaded_text_file and media_content types are not supported via this endpoint.
For github_file resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a 200 status.
OAuth app tokens and personal access tokens (classic) need the write:org scope to use this endpoint.
Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being created.
Fine-grained access tokens for "Create a resource for an organization Copilot Space"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Copilot Spaces" organization permissions (write)
Parameters for "Create a resource for an organization Copilot Space"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
| Name, Type, Description |
|---|
resource_type string RequiredThe type of resource to create. Can be one of: |
metadata object RequiredResource-specific metadata. |
HTTP response status codes for "Create a resource for an organization Copilot Space"
| Status code | Description |
|---|---|
200 | Duplicate github_file resource already exists |
201 | Resource created |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Get a resource for an organization Copilot Space
Gets a specific resource attached to a Copilot Space owned by an organization. The authenticated user must have appropriate permissions to view the space.
OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.
Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
Fine-grained access tokens for "Get a resource for an organization Copilot Space"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Copilot Spaces" organization permissions (read)
Parameters for "Get a resource for an organization Copilot Space"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
space_resource_id integer RequiredThe unique identifier of the resource. |
HTTP response status codes for "Get a resource for an organization Copilot Space"
| Status code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
Code samples for "Get a resource for an organization Copilot Space"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/orgs/ORG/copilot-spaces/SPACE_NUMBER/resources/SPACE_RESOURCE_IDResponse
Status: 200{
"id": 1,
"resource_type": "free_text",
"copilot_chat_attachment_id": null,
"metadata": {
"name": "notes.txt",
"text": "Some helpful notes"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}Set a resource for an organization Copilot Space
Updates the metadata of a resource in a specific Copilot Space owned by an organization. The authenticated user must have write permissions on the space.
OAuth app tokens and personal access tokens (classic) need the write:org scope to use this endpoint.
Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being updated.
Fine-grained access tokens for "Set a resource for an organization Copilot Space"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Copilot Spaces" organization permissions (write)
Parameters for "Set a resource for an organization Copilot Space"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
space_resource_id integer RequiredThe unique identifier of the resource. |
| Name, Type, Description |
|---|
metadata object Updated resource-specific metadata. |
HTTP response status codes for "Set a resource for an organization Copilot Space"
| Status code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Set a resource for an organization Copilot Space"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/orgs/ORG/copilot-spaces/SPACE_NUMBER/resources/SPACE_RESOURCE_ID \
-d '{"metadata":{"name":"updated-notes.txt","text":"Updated content"}}'Response
Status: 200{
"id": 1,
"resource_type": "free_text",
"copilot_chat_attachment_id": null,
"metadata": {
"name": "updated-notes.txt",
"text": "Updated content"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T12:00:00Z"
}Delete a resource from an organization Copilot Space
Deletes a resource from a specific Copilot Space owned by an organization. The authenticated user must have write permissions on the space.
OAuth app tokens and personal access tokens (classic) need the write:org scope to use this endpoint.
Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
Fine-grained access tokens for "Delete a resource from an organization Copilot Space"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Copilot Spaces" organization permissions (write)
Parameters for "Delete a resource from an organization Copilot Space"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
space_resource_id integer RequiredThe unique identifier of the resource. |
HTTP response status codes for "Delete a resource from an organization Copilot Space"
| Status code | Description |
|---|---|
204 | No Content |
403 | Forbidden |
404 | Resource not found |
Code samples for "Delete a resource from an organization Copilot Space"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/orgs/ORG/copilot-spaces/SPACE_NUMBER/resources/SPACE_RESOURCE_IDResponse
Status: 204List resources for a Copilot Space for a user
Lists all resources attached to a specific Copilot Space owned by a user. The authenticated user must have appropriate permissions to view the space.
OAuth app tokens and personal access tokens (classic) need the read:user scope to use this endpoint.
Fine-grained access tokens for "List resources for a Copilot Space for a user"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "List resources for a Copilot Space for a user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
username string RequiredThe handle for the GitHub user account. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
HTTP response status codes for "List resources for a Copilot Space for a user"
| Status code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
Code samples for "List resources for a Copilot Space for a user"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/users/USERNAME/copilot-spaces/SPACE_NUMBER/resourcesResponse
Status: 200{
"resources": [
{
"id": 1,
"resource_type": "free_text",
"copilot_chat_attachment_id": null,
"metadata": {
"name": "notes.txt",
"text": "Some helpful notes"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
]
}Create a resource for a Copilot Space for a user
Creates a new resource in a specific Copilot Space owned by a user. The authenticated user must have write permissions on the space.
The following resource types are supported: repository, github_file, free_text, github_issue, github_pull_request.
The uploaded_text_file and media_content types are not supported via this endpoint.
For github_file resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a 200 status.
OAuth app tokens and personal access tokens (classic) need the write:user scope to use this endpoint.
Fine-grained access tokens for "Create a resource for a Copilot Space for a user"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Create a resource for a Copilot Space for a user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
username string RequiredThe handle for the GitHub user account. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
| Name, Type, Description |
|---|
resource_type string RequiredThe type of resource to create. Can be one of: |
metadata object RequiredResource-specific metadata. |
HTTP response status codes for "Create a resource for a Copilot Space for a user"
| Status code | Description |
|---|---|
200 | Duplicate github_file resource already exists |
201 | Resource created |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Get a resource for a Copilot Space for a user
Gets a specific resource attached to a Copilot Space owned by a user. The authenticated user must have appropriate permissions to view the space.
OAuth app tokens and personal access tokens (classic) need the read:user scope to use this endpoint.
Fine-grained access tokens for "Get a resource for a Copilot Space for a user"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get a resource for a Copilot Space for a user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
username string RequiredThe handle for the GitHub user account. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
space_resource_id integer RequiredThe unique identifier of the resource. |
HTTP response status codes for "Get a resource for a Copilot Space for a user"
| Status code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
Code samples for "Get a resource for a Copilot Space for a user"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/users/USERNAME/copilot-spaces/SPACE_NUMBER/resources/SPACE_RESOURCE_IDResponse
Status: 200{
"id": 1,
"resource_type": "free_text",
"copilot_chat_attachment_id": null,
"metadata": {
"name": "notes.txt",
"text": "Some helpful notes"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}Set a resource for a Copilot Space for a user
Updates the metadata of a resource in a specific Copilot Space owned by a user. The authenticated user must have write permissions on the space.
OAuth app tokens and personal access tokens (classic) need the write:user scope to use this endpoint.
Fine-grained access tokens for "Set a resource for a Copilot Space for a user"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set a resource for a Copilot Space for a user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
username string RequiredThe handle for the GitHub user account. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
space_resource_id integer RequiredThe unique identifier of the resource. |
| Name, Type, Description |
|---|
metadata object Updated resource-specific metadata. |
HTTP response status codes for "Set a resource for a Copilot Space for a user"
| Status code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Set a resource for a Copilot Space for a user"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/users/USERNAME/copilot-spaces/SPACE_NUMBER/resources/SPACE_RESOURCE_ID \
-d '{"metadata":{"name":"updated-notes.txt","text":"Updated content"}}'Response
Status: 200{
"id": 1,
"resource_type": "free_text",
"copilot_chat_attachment_id": null,
"metadata": {
"name": "updated-notes.txt",
"text": "Updated content"
},
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T12:00:00Z"
}Delete a resource from a Copilot Space for a user
Deletes a resource from a specific Copilot Space owned by a user. The authenticated user must have write permissions on the space.
OAuth app tokens and personal access tokens (classic) need the write:user scope to use this endpoint.
Fine-grained access tokens for "Delete a resource from a Copilot Space for a user"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Delete a resource from a Copilot Space for a user"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
username string RequiredThe handle for the GitHub user account. |
space_number integer RequiredThe unique identifier of the Copilot Space. |
space_resource_id integer RequiredThe unique identifier of the resource. |
HTTP response status codes for "Delete a resource from a Copilot Space for a user"
| Status code | Description |
|---|---|
204 | No Content |
403 | Forbidden |
404 | Resource not found |
Code samples for "Delete a resource from a Copilot Space for a user"
If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.
Request example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/users/USERNAME/copilot-spaces/SPACE_NUMBER/resources/SPACE_RESOURCE_IDResponse
Status: 204