GET
GET /repos/{owner}/{repo}/secret-scanning/alerts — GitHub API
GitHub token (required); https://api.github.com
GitHub APIList secret scanning alerts for a repository
- Base URL
- https://api.github.com
- Auth
- Authorization: Bearer <GITHUB_API_KEY>
- Last verified
- 2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 400 tokens · Vary: Accept
→ 400 tokens · Vary: Accept
Critical gotchas
GitHub recommends an Accept: application/vnd.github+json header and an explicit X-GitHub-Api-Version header.
Fine-grained tokens only authorize repositories and permissions selected when the token is created.
cURL
curl -X GET 'https://api.github.com/repos/example-owner/example-repo/secret-scanning/alerts?state=open&secret_type=example-secret-type&exclude_secret_types=example-exclude-secret-types&exclude_providers=example-exclude-providers&providers=example-providers&resolution=example-resolution&assignee=example-assignee&sort=created&direction=desc&page=1&per_page=30&before=example-before&after=example-after&validity=example-validity&is_publicly_leaked=false&is_multi_repo=false&hide_secret=false&is_bypassed=true&included_metadata=example-included-metadata&owner_email_hash=example-owner-email-hash' \ -H "Authorization: Bearer $GITHUB_TOKEN" \ -H 'Accept: application/vnd.github+json' \ -H 'X-GitHub-Api-Version: 2026-03-10'
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| owner | path | string | Yes | The account owner of the repository. The name is not case sensitive. |
| repo | path | string | Yes | The name of the repository without the `.git` extension. The name is not case sensitive. |
| state | query | string | No | Set to `open` or `resolved` to only list secret scanning alerts in a specific state. |
| secret_type | query | string | No | A comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter. See "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)" for a complete list of secret types. |
| exclude_secret_types | query | string | No | A comma-separated list of secret types to exclude from the results. All default secret patterns are returned except those matching the specified types. Cannot be combined with the `secret_type` parameter. See "[Supported secret scanning patterns](https://docs.github.com/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)" for a complete list of secret types. |
| exclude_providers | query | string | No | A comma-separated list of provider slugs to exclude from the results. Provider slugs use lowercase with underscores (e.g., `github_secret_scanning`, `clojars`). You can find the provider slug in the `provider_slug` field of each alert. Cannot be combined with the `providers` parameter. |
| providers | query | string | No | A comma-separated list of provider slugs to filter by. Provider slugs use lowercase with underscores (e.g., `github_secret_scanning`, `clojars`). You can find the provider slug in the `provider_slug` field of each alert. Cannot be combined with the `exclude_providers` parameter. |
| resolution | query | string | No | A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. |
| assignee | query | string | No | Filters alerts by assignee. Use `*` to get all assigned alerts, `none` to get all unassigned alerts, or a GitHub username to get alerts assigned to a specific user. |
| sort | query | string | No | The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. |
| direction | query | string | No | The direction to sort the results by. |
| page | query | integer | No | The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." |
| per_page | query | integer | No | The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." |
| before | query | string | No | A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. |
| after | query | string | No | A cursor, as given in the [Link header](https://docs.github.com/rest/guides/using-pagination-in-the-rest-api#using-link-headers). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. |
| validity | query | string | No | A comma-separated list of validities that, when present, will return alerts that match the validities in this list. Valid options are `active`, `inactive`, and `unknown`. |
| is_publicly_leaked | query | boolean | No | A boolean value representing whether or not to filter alerts by the publicly-leaked tag being present. |
| is_multi_repo | query | boolean | No | A boolean value representing whether or not to filter alerts by the multi-repo tag being present. |
| hide_secret | query | boolean | No | A boolean value representing whether or not to hide literal secrets in the results. |
| is_bypassed | query | boolean | No | A boolean value (`true` or `false`) indicating whether to filter alerts by their push protection bypass status. When set to `true`, only alerts that were created because a push protection rule was bypassed will be returned. When set to `false`, only alerts that were not caused by a push protection bypass will be returned. |
| included_metadata | query | string | No | A comma-separated list of metadata fields to filter alerts by. Only alerts that have all of the specified metadata fields attached will be returned. Possible values are: `owner-email`, `owner-id`, `owner-name`, `secret-id`, `secret-name`, `secret-issued-date`, `secret-expiration-date`, `organization-name`, `organization-id`, `last-used-date`, and `has-organization-access`. |
| owner_email_hash | query | string | No | Filters alerts to only those whose attached `owner_email` metadata field matches the provided value. The value must be the lowercase hex-encoded SHA-256 hash of the email address to match (for example, the SHA-256 of `[email protected]`). Only alerts that have an `owner_email` metadata value whose SHA-256 hash equals this parameter are returned. |
Response 200 OK
[
{
"number": 0,
"created_at": "2026-09-03T00:00:00Z",
"updated_at": "2026-09-03T00:00:00Z",
"url": "https://example.com",
"html_url": "https://example.com",
"locations_url": "https://example.com",
"state": "open",
"resolution": "false_positive",
"resolved_at": "2026-09-03T00:00:00Z",
"resolved_by": {
"name": "string",
"email": "string",
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "41d064eb2195891e12d0413f63227ea7",
"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": true,
"starred_at": "\"2020-07-09T00:17:55Z\"",
"user_view_type": "public"
},
"resolution_comment": "string",
"secret_type": "string",
"secret_type_display_name": "string",
"provider": "string",
"provider_slug": "string",
"secret": "string",
"push_protection_bypassed": true,
"push_protection_bypassed_by": {
"name": "string",
"email": "string",
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "41d064eb2195891e12d0413f63227ea7",
"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": true,
"starred_at": "\"2020-07-09T00:17:55Z\"",
"user_view_type": "public"
},
"push_protection_bypassed_at": "2026-09-03T00:00:00Z",
"push_protection_bypass_request_reviewer": {
"name": "string",
"email": "string",
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "41d064eb2195891e12d0413f63227ea7",
"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": true,
"starred_at": "\"2020-07-09T00:17:55Z\"",
"user_view_type": "public"
},
"push_protection_bypass_request_reviewer_comment": "string",
"push_protection_bypass_request_comment": "string",
"push_protection_bypass_request_html_url": "https://example.com",
"validity": "active",
"publicly_leaked": true,
"multi_repo": true,
"is_base64_encoded": true,
"first_location_detected": {
"path": "/example/secrets.txt",
"start_line": 0,
"end_line": 0,
"start_column": 0,
"end_column": 0,
"blob_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b",
"blob_url": "string",
"commit_sha": "af5626b4a114abcb82d63db7c8082c3c4756e51b",
"commit_url": "string",
"html_url": "https://github.com/octocat/Hello-World/blob/af5626b/example/secrets.txt#L1-L1"
},
"has_more_locations": true,
"assigned_to": {
"name": "string",
"email": "string",
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "41d064eb2195891e12d0413f63227ea7",
"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": true,
"starred_at": "\"2020-07-09T00:17:55Z\"",
"user_view_type": "public"
},
"closure_request_comment": "string",
"closure_request_reviewer_comment": "string",
"closure_request_reviewer": {
"name": "string",
"email": "string",
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "41d064eb2195891e12d0413f63227ea7",
"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": true,
"starred_at": "\"2020-07-09T00:17:55Z\"",
"user_view_type": "public"
}
}
] Get a free GitHub API key → sponsored Affiliate link - we may earn a commission, at no extra cost to you.