GitHub Actions Variables
Use the REST API to interact with variables in GitHub Actions.
About variables in GitHub Actions
You can use the REST API to create, update, delete, and retrieve information about variables that can be used in workflows in GitHub Actions. Variables allow you to store non-sensitive information, such as a username, in your repository, repository environments, or organization.
These endpoints are available for authenticated users, OAuth Apps, and GitHub Apps. Access tokens require repo scope for private repositories and public_repo scope for public repositories. GitHub Apps must have the actions_variables/environments/organization_actions_variables permission to use these endpoints. Authenticated users must have collaborator access to a repository to create, update, or read variables.
List organization variables
Lists all organization variables. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the organization_actions_variables:read organization permission to use this endpoint.
Parameters for "List organization variables"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
| Query parameters |
| Name, Type, Description |
per_pageintegerThe number of results per page (max 30). Default: |
pageintegerPage number of the results to fetch. Default: |
HTTP response status codes for "List organization variables"
| Status code | Description |
|---|---|
200 | OK |
Code samples for "List organization variables"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variablesResponse
Status: 200{
"total_count": 3,
"variables": [
{
"name": "USERNAME",
"value": "octocat",
"created_at": "2019-08-10T14:59:22Z",
"updated_at": "2020-01-10T14:59:22Z",
"visibility": "private"
},
{
"name": "ACTIONS_RUNNER_DEBUG",
"value": true,
"created_at": "2019-08-10T14:59:22Z",
"updated_at": "2020-01-10T14:59:22Z",
"visibility": "all"
},
{
"name": "ADMIN_EMAIL",
"value": "octocat@github.com",
"created_at": "2019-08-10T14:59:22Z",
"updated_at": "2020-01-10T14:59:22Z",
"visibility": "selected",
"selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/variables/ADMIN_EMAIL/repositories"
}
]
}Create an organization variable
Creates an organization variable that you can reference in a GitHub Actions workflow.
You must authenticate using an access token with the admin:org scope to use this endpoint.
GitHub Apps must have the organization_actions_variables:write organization permission to use this endpoint.
Parameters for "Create an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
| Body parameters |
| Name, Type, Description |
namestringRequiredThe name of the variable. |
valuestringRequiredThe value of the variable. |
visibilitystringRequiredThe type of repositories in the organization that can access the variable. Can be one of: |
selected_repository_idsarray of integersAn array of repository ids that can access the organization variable. You can only provide a list of repository ids when the |
HTTP response status codes for "Create an organization variable"
| Status code | Description |
|---|---|
201 | Response when creating a variable |
Code samples for "Create an organization variable"
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables \
-d '{"name":"USERNAME","value":"octocat","visibility":"selected","selected_repository_ids":[1296269,1296280]}'Response when creating a variable
Status: 201Get an organization variable
Gets a specific variable in an organization. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the organization_actions_variables:read organization permission to use this endpoint.
Parameters for "Get an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
HTTP response status codes for "Get an organization variable"
| Status code | Description |
|---|---|
200 | OK |
Code samples for "Get an organization variable"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAMEResponse
Status: 200{
"name": "USERNAME",
"value": "octocat",
"created_at": "2019-08-10T14:59:22Z",
"updated_at": "2020-01-10T14:59:22Z",
"visibility": "selected",
"selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/variables/USERNAME/repositories"
}Update an organization variable
Updates an organization variable that you can reference in a GitHub Actions workflow.
You must authenticate using an access token with the admin:org scope to use this endpoint.
GitHub Apps must have the organization_actions_variables:write organization permission to use this endpoint.
Parameters for "Update an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
| Body parameters |
| Name, Type, Description |
namestringThe name of the variable. |
valuestringThe value of the variable. |
visibilitystringThe type of repositories in the organization that can access the variable. Can be one of: |
selected_repository_idsarray of integersAn array of repository ids that can access the organization variable. You can only provide a list of repository ids when the |
HTTP response status codes for "Update an organization variable"
| Status code | Description |
|---|---|
204 | No Content |
Code samples for "Update an organization variable"
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAME \
-d '{"name":"USERNAME","value":"octocat","visibility":"selected","selected_repository_ids":[1296269,1296280]}'Response
Status: 204Delete an organization variable
Deletes an organization variable using the variable name.
You must authenticate using an access token with the admin:org scope to use this endpoint.
GitHub Apps must have the organization_actions_variables:write organization permission to use this endpoint.
Parameters for "Delete an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
HTTP response status codes for "Delete an organization variable"
| Status code | Description |
|---|---|
204 | No Content |
Code samples for "Delete an organization variable"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAMEResponse
Status: 204List selected repositories for an organization variable
Lists all repositories that can access an organization variable that is available to selected repositories. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the organization_actions_variables:read organization permission to use this endpoint.
Parameters for "List selected repositories for an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
| Query parameters |
| Name, Type, Description |
pageintegerPage number of the results to fetch. Default: |
per_pageintegerThe number of results per page (max 100). Default: |
HTTP response status codes for "List selected repositories for an organization variable"
| Status code | Description |
|---|---|
200 | OK |
409 | Response when the visibility of the variable is not set to |
Code samples for "List selected repositories for an organization variable"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAME/repositoriesResponse
Status: 200{
"total_count": 1,
"repositories": [
{
"id": 1296269,
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"owner": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false
},
"private": false,
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"fork": false,
"url": "https://api.github.com/repos/octocat/Hello-World",
"archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
"blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
"collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
"commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
"compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
"contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
"deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
"downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
"events_url": "https://api.github.com/repos/octocat/Hello-World/events",
"forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
"git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
"git_url": "git:github.com/octocat/Hello-World.git",
"issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
"issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
"keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
"labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
"languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
"merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
"milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
"notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
"pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
"releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
"ssh_url": "git@github.com:octocat/Hello-World.git",
"stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
"statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
"subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
"tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
"teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
"trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
"hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks"
}
]
}Set selected repositories for an organization variable
Replaces all repositories for an organization variable that is available to selected repositories. Organization variables that are available to selected repositories have their visibility field set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the organization_actions_variables:write organization permission to use this endpoint.
Parameters for "Set selected repositories for an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
| Body parameters |
| Name, Type, Description |
selected_repository_idsarray of integersRequiredThe IDs of the repositories that can access the organization variable. |
HTTP response status codes for "Set selected repositories for an organization variable"
| Status code | Description |
|---|---|
204 | No Content |
409 | Response when the visibility of the variable is not set to |
Code samples for "Set selected repositories for an organization variable"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAME/repositories \
-d '{"selected_repository_ids":[64780797]}'Response
Status: 204Add selected repository to an organization variable
Adds a repository to an organization variable that is available to selected repositories. Organization variables that are available to selected repositories have their visibility field set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the organization_actions_variables:write organization permission to use this endpoint.
Parameters for "Add selected repository to an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
repository_idintegerRequired |
HTTP response status codes for "Add selected repository to an organization variable"
| Status code | Description |
|---|---|
204 | No Content |
409 | Response when the visibility of the variable is not set to |
Code samples for "Add selected repository to an organization variable"
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAME/repositories/REPOSITORY_IDResponse
Status: 204Remove selected repository from an organization variable
Removes a repository from an organization variable that is available to selected repositories. Organization variables that are available to selected repositories have their visibility field set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the organization_actions_variables:write organization permission to use this endpoint.
Parameters for "Remove selected repository from an organization variable"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
namestringRequiredThe name of the variable. |
repository_idintegerRequired |
HTTP response status codes for "Remove selected repository from an organization variable"
| Status code | Description |
|---|---|
204 | No Content |
409 | Response when the visibility of the variable is not set to |
Code samples for "Remove selected repository from an organization variable"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/actions/variables/NAME/repositories/REPOSITORY_IDResponse
Status: 204List repository variables
Lists all repository variables. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions_variables:read repository permission to use this endpoint.
Parameters for "List repository variables"
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
ownerstringRequiredThe account owner of the repository. The name is not case sensitive. |
repostringRequiredThe name of the repository. The name is not case sensitive. |
| Query parameters |
| Name, Type, Description |
per_pageintegerThe number of results per page (max 30). Default: |
pageintegerPage number of the results to fetch. Default: |
HTTP response status codes for "List repository variables"
| Status code | Description |
|---|---|
200 | OK |
Code samples for "List repository variables"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/OWNER/REPO/actions/variablesResponse
Status: 200{
"total_count": 2,
"variables": [