REST API endpoints for GitHub Actions OIDC
Use the REST API to interact with JWTs for OIDC subject claims in GitHub Actions.
About GitHub Actions OIDC
You can use the REST API to query and manage a customization template for an OpenID Connect (OIDC) subject claim. For more information, see OpenID Connect.
Set the GitHub Actions OIDC custom issuer policy for an enterprise
Sets the GitHub Actions OpenID Connect (OIDC) custom issuer policy for an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise administration" enterprise permissions (write)
Parameters for "Set the GitHub Actions OIDC custom issuer policy for an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
| Name, Type, Description |
|---|
include_enterprise_slug boolean Whether the enterprise customer requested a custom issuer URL. |
http_status_code
| status_code | Description |
|---|---|
204 | No Content |
code_samples
data_residency_notice
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/enterprises/ENTERPRISE/actions/oidc/customization/issuer \
-d '{"include_enterprise_slug":true}'Response
Status: 204List OIDC custom property inclusions for an enterprise
Lists the repository custom properties that are included in the OIDC token for repository actions in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise administration" enterprise permissions (read)
Parameters for "List OIDC custom property inclusions for an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
http_status_code
| status_code | Description |
|---|---|
200 | A JSON array of OIDC custom property inclusions |
403 | Forbidden |
404 | Resource not found |
code_samples
data_residency_notice
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/enterprises/ENTERPRISE/actions/oidc/customization/properties/repoA JSON array of OIDC custom property inclusions
Status: 200[
{
"custom_property_name": "environment",
"inclusion_source": "enterprise"
},
{
"custom_property_name": "team",
"inclusion_source": "enterprise"
}
]Create an OIDC custom property inclusion for an enterprise
Adds a repository custom property to be included in the OIDC token for repository actions in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise administration" enterprise permissions (write)
Parameters for "Create an OIDC custom property inclusion for an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
| Name, Type, Description |
|---|
custom_property_name string RequiredThe name of the custom property to include in the OIDC token |
http_status_code
| status_code | Description |
|---|---|
201 | OIDC custom property inclusion created |
400 | Invalid input |
403 | Forbidden |
422 | Property inclusion already exists |
code_samples
data_residency_notice
request_example
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/actions/oidc/customization/properties/repo \
-d '{"custom_property_name":"environment"}'OIDC custom property inclusion created
Status: 201{
"custom_property_name": "environment"
}Delete an OIDC custom property inclusion for an enterprise
Removes a repository custom property from being included in the OIDC token for repository actions in an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise administration" enterprise permissions (write)
Parameters for "Delete an OIDC custom property inclusion for an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
custom_property_name string RequiredThe name of the custom property to remove from OIDC token inclusion |
http_status_code
| status_code | Description |
|---|---|
204 | OIDC custom property inclusion deleted |
400 | Invalid input |
403 | Forbidden |
404 | Property inclusion not found |
code_samples
data_residency_notice
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/enterprises/ENTERPRISE/actions/oidc/customization/properties/repo/CUSTOM_PROPERTY_NAMEOIDC custom property inclusion deleted
Status: 204List OIDC custom property inclusions for an organization
Lists the repository custom properties that are included in the OIDC token for repository actions in an organization.
OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Administration" organization permissions (read)
Parameters for "List OIDC custom property inclusions for an organization"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
http_status_code
| status_code | Description |
|---|---|
200 | A JSON array of OIDC custom property inclusions |
403 | Forbidden |
404 | Resource not found |
code_samples
data_residency_notice
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/actions/oidc/customization/properties/repoA JSON array of OIDC custom property inclusions
Status: 200[
{
"property_name": "environment"
},
{
"property_name": "team"
}
]Create an OIDC custom property inclusion for an organization
Adds a repository custom property to be included in the OIDC token for repository actions in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Administration" organization permissions (write)
Parameters for "Create an OIDC custom property inclusion for an organization"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
| Name, Type, Description |
|---|
custom_property_name string RequiredThe name of the custom property to include in the OIDC token |
http_status_code
| status_code | Description |
|---|---|
201 | OIDC custom property inclusion created |
400 | Invalid input |
403 | Forbidden |
422 | Property inclusion already exists |
code_samples
data_residency_notice
request_example
curl -L \
-X POST \
-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/actions/oidc/customization/properties/repo \
-d '{"custom_property_name":"environment"}'OIDC custom property inclusion created
Status: 201{
"custom_property_name": "environment"
}Delete an OIDC custom property inclusion for an organization
Removes a repository custom property from being included in the OIDC token for repository actions in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Administration" organization permissions (write)
Parameters for "Delete an OIDC custom property inclusion for an organization"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
custom_property_name string RequiredThe name of the custom property to remove from OIDC token inclusion |
http_status_code
| status_code | Description |
|---|---|
204 | OIDC custom property inclusion deleted |
400 | Invalid input |
403 | Forbidden |
404 | Property inclusion not found |
code_samples
data_residency_notice
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/actions/oidc/customization/properties/repo/CUSTOM_PROPERTY_NAMEOIDC custom property inclusion deleted
Status: 204Get the customization template for an OIDC subject claim for an organization
Gets the customization template for an OpenID Connect (OIDC) subject claim.
OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Administration" organization permissions (read)
Parameters for "Get the customization template for an OIDC subject claim for an organization"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
http_status_code
| status_code | Description |
|---|---|
200 | A JSON serialized template for OIDC subject claim customization |
code_samples
data_residency_notice
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/actions/oidc/customization/subA JSON serialized template for OIDC subject claim customization
Status: 200{
"include_claim_keys": [
"repo",
"context"
]
}Set the customization template for an OIDC subject claim for an organization
Creates or updates the customization template for an OpenID Connect (OIDC) subject claim.
OAuth app tokens and personal access tokens (classic) need the write:org scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Administration" organization permissions (write)
Parameters for "Set the customization template for an OIDC subject claim for an organization"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
org string RequiredThe organization name. The name is not case sensitive. |
| Name, Type, Description |
|---|
include_claim_keys array of strings Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. |
use_immutable_subject boolean Whether to opt in to the immutable OIDC subject claim format for the organization. When |
http_status_code
| status_code | Description |
|---|---|
201 | Empty response |
403 | Forbidden |
404 | Resource not found |
code_samples
data_residency_notice
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/actions/oidc/customization/sub \
-d '{"include_claim_keys":["repo","context"]}'Empty response
Status: 201Get the customization template for an OIDC subject claim for a repository
Gets the customization template for an OpenID Connect (OIDC) subject claim.
OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Actions" repository permissions (read)
allows_public_read_access
Parameters for "Get the customization template for an OIDC subject claim for a repository"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
http_status_code
| status_code | Description |
|---|---|
200 | Status response |
400 | Bad Request |
404 | Resource not found |
code_samples
data_residency_notice
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/repos/OWNER/REPO/actions/oidc/customization/subStatus response
Status: 200{
"use_default": false,
"include_claim_keys": [
"repo",
"context"
]
}Set the customization template for an OIDC subject claim for a repository
Sets the customization template and opt-in or opt-out flag for an OpenID Connect (OIDC) subject claim for a repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Actions" repository permissions (write)
Parameters for "Set the customization template for an OIDC subject claim for a repository"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
| Name, Type, Description |
|---|
use_default boolean RequiredWhether to use the default template or not. If |
include_claim_keys array of strings Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. |
use_immutable_subject boolean Whether to opt in to the immutable OIDC subject claim format for this repository. When |
http_status_code
| status_code | Description |
|---|---|
201 | Empty response |
400 | Bad Request |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
code_samples
data_residency_notice
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/repos/OWNER/REPO/actions/oidc/customization/sub \
-d '{"use_default":false,"include_claim_keys":["repo","context"]}'Empty response
Status: 201