Codespaces machines
The Codespaces machines API allows a user to determine which machine types are available to create a codespace, either on a given repository or as an authenticated user.
About the Codespaces machines API
The Codespaces machines API allows a user to determine which machine types are available to create a codespace, either on a given repository or as an authenticated user. For more information, see "About machine types."
You can also use this information when changing the machine of an existing codespace by updating its machine
property. The machine update will take place the next time the codespace is restarted. For more information, see "Changing the machine type for your codespace."
List available machine types for a repository
List the machine types available for a given repository based on its configuration.
You must authenticate using an access token with the codespace
scope to use this endpoint.
GitHub Apps must have write access to the codespaces_metadata
repository permission to use this endpoint.
Parameters
Headers |
---|
Name, Type, Description |
accept stringSetting to |
Path parameters |
Name, Type, Description |
owner stringRequiredThe account owner of the repository. The name is not case sensitive. |
repo stringRequiredThe name of the repository. The name is not case sensitive. |
Query parameters |
Name, Type, Description |
location stringThe location to check for available machines. Assigned by IP if not provided. |
client_ip stringIP for location auto-detection when proxying a request |
HTTP response status codes
Status code | Description |
---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
500 | Internal Error |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/OWNER/REPO/codespaces/machines
Response
Status: 200
{
"total_count": 2,
"machines": [
{
"name": "standardLinux",
"display_name": "4 cores, 8 GB RAM, 64 GB storage",
"operating_system": "linux",
"storage_in_bytes": 68719476736,
"memory_in_bytes": 8589934592,
"cpus": 4
},
{
"name": "premiumLinux",
"display_name": "8 cores, 16 GB RAM, 64 GB storage",
"operating_system": "linux",
"storage_in_bytes": 68719476736,
"memory_in_bytes": 17179869184,
"cpus": 8
}
]
}
List machine types for a codespace
List the machine types a codespace can transition to use.
You must authenticate using an access token with the codespace
scope to use this endpoint.
GitHub Apps must have read access to the codespaces_metadata
repository permission to use this endpoint.
Parameters
Headers |
---|
Name, Type, Description |
accept stringSetting to |
Path parameters |
Name, Type, Description |
codespace_name stringRequiredThe name of the codespace. |
HTTP response status codes
Status code | Description |
---|---|
200 | OK |
304 | Not modified |
401 | Requires authentication |
403 | Forbidden |
404 | Resource not found |
500 | Internal Error |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/user/codespaces/CODESPACE_NAME/machines
Response
Status: 200
{
"total_count": 2,
"machines": [
{
"name": "standardLinux",
"display_name": "4 cores, 8 GB RAM, 64 GB storage",
"operating_system": "linux",
"storage_in_bytes": 68719476736,
"memory_in_bytes": 8589934592,
"cpus": 4
},
{
"name": "premiumLinux",
"display_name": "8 cores, 16 GB RAM, 64 GB storage",
"operating_system": "linux",
"storage_in_bytes": 68719476736,
"memory_in_bytes": 17179869184,
"cpus": 8
}
]
}