Download OpenAPI specification:
Whether you want to build a complete integration with your software development workflow or simply want to test GitGuardian's policy break detection on any text content, you can use our API.
https://api.gitguardian.com/v1 or https://api.eu1.gitguardian.com/v1 depending on your location.2020-03-16T04:46:00+00:00 # for date-time
GitGuardian supported wrappers:
GitGuardian provides you with GitGuardian Shield, a CLI application that uses the GitGuardian API through py-gitguardian to scan your files and detect potential secrets or issues in your code.
This CLI application can be used in many CIs (such as GitHub Actions, GitLab Pipelines, CircleCI,...) or as a pre-commit or pre-receive hook.
The GitGuardian API uses API keys to authenticate requests. For a detailed explanation, please refer to our dedicated documentation.
Use /v1/health to check the validity of your token if needed.
The GitGuardian API employs cursor-based pagination. For a detailed explanation, please refer to our dedicated documentation.
List audit logs.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| event_name | string   Example:  event_name=user.logged_in Entries matching this event name.  | 
| member_id | integer   Example:  member_id=3252 The id of the member to retrieve.  | 
| member_name | string   Example:  member_name=John Smith Entries matching this member name.  | 
| member_email | string   Example:  member_email=john.smith@example.org Entries matching this member email.  | 
| api_token_id | string <uuid>    Example:  api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Entries matching this API token id.  | 
| ip_address | string   Example:  ip_address=8.8.8.8 Entries matching this IP address.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "member_email": "eric@gitguardian.com",
 - "member_name": "Eric",
 - "member_id": 1243,
 - "api_token_id": "41f016f9-d44b-451c-a816-df041c057c6b",
 - "ip_address": "string",
 - "target_ids": [
- "1243",
 - "2bb559aa-bd72-48ca-b4ba-bf09b1c9a658"
 
], - "action_type": "READ",
 - "event_name": "user.logged_in",
 - "data": "{type: github_sso}"
 
} 
]This endpoint allows you to create a custom tag.
| key | string   | 
| value | string or null   | 
{- "key": "env",
 - "value": "prod"
 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
}This endpoint allows you to retrieve an existing custom tag.
| custom_tag_id required  | string <uuid>   The id of the custom tag  | 
{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
}This endpoint allows you to update a specific custom tag. It replaces the entire custom tag (key and value).
This does not impact other custom tags sharing the same key.
| custom_tag_id required  | string <uuid>   The id of the custom tag  | 
| key | string   | 
| value | string or null   | 
{- "key": "env",
 - "value": "prod"
 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
}This endpoint allows you to partially update a specific custom tag. It updates only the specified fields (key or value), leaving the other fields unchanged.
This does not impact other custom tags sharing the same key.
| custom_tag_id required  | string <uuid>   The id of the custom tag  | 
| key | string   | 
| value | string or null   | 
{- "key": "env",
 - "value": "prod"
 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
}This endpoint allows you to delete a specific custom tag.
This does not impact other custom tags sharing the same key.
| custom_tag_id required  | string <uuid>   The id of the custom tag  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}This endpoint allows you to list all the honeytokens of your workspace.
The response contains the list of honeytokens and a pagination cursor to retrieve the next page.
The honeytokens are sorted by id.
If you are using a personal access token, you need to have an access level superior or equal to manager.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| status | string  Enum: triggered active revoked   Status of a honeytoken.  | 
| type | string  Value: AWS   Type of a honeytoken.  | 
| search | string  Search honeytokens based on their name and/or description.  | 
| creator_id | number  Member id of the honeytoken creator.  | 
| revoker_id | number  Member id of the honeytoken revoker.  | 
| creator_api_token_id | string  Token id of the honeytoken creator.  | 
| revoker_api_token_id | string  Token id of the honeytoken creator.  | 
| tags | string  Comma-separated list of tags to filter on.  | 
| ordering | string  Enum: created_at -created_at triggered_at -triggered_at revoked_at -revoked_at name -name   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| show_token | boolean  Default:  false  Show token details (  | 
[- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "name": "honeytoken A",
 - "description": "honeytoken used in the repository AA",
 - "created_at": "2019-08-22T14:15:22Z",
 - "status": "active",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "revoked_at": "2019-08-22T14:15:22Z",
 - "open_events_count": 122,
 - "type": "AWS",
 - "creator_id": 122,
 - "revoker_id": 122,
 - "creator_api_token_id": "f74ffca5-d06d-45c2-a3d8-e8e95d15a464",
 - "revoker_api_token_id": "19058e4a-0fab-4dcc-8ed6-4e2ec9fb2e44",
 - "token": {
- "access_token_id": "AAAA",
 - "secret_key": "BBB"
 
}, - "tags": [
- "publicly_exposed"
 
], - "labels": [
- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
} 
]This endpoint allows you to create a honeytoken of a type.
If you are using a personal access token, you need to have an access level superior or equal to manager.
| name required  | string  honeytoken name.  | 
| description | string  honeytoken description.  | 
| type required  | string  Value: AWS   honeytoken type  | 
Array of objects (Honeytoken Label)   Deprecated   Custom tags to set on the honeytoken. If the custom tag doesn't exist, it will be created. This field is deprecated; use the   | |
Array of objects  Custom tags to set on the honeytoken. If the custom tag doesn't exist, it will be created.  | 
{- "name": "honeytoken name",
 - "description": "This honeytoken was placed in the repository test",
 - "type": "AWS",
 - "labels": [
- {
- "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "key": "env",
 - "value": "prod"
 
} 
] 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "name": "honeytoken A",
 - "description": "honeytoken used in the repository AA",
 - "created_at": "2019-08-22T14:15:22Z",
 - "status": "active",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "revoked_at": "2019-08-22T14:15:22Z",
 - "open_events_count": 122,
 - "type": "AWS",
 - "creator_id": 122,
 - "revoker_id": 122,
 - "creator_api_token_id": "f74ffca5-d06d-45c2-a3d8-e8e95d15a464",
 - "revoker_api_token_id": "19058e4a-0fab-4dcc-8ed6-4e2ec9fb2e44",
 - "token": {
- "access_token_id": "AAAA",
 - "secret_key": "BBB"
 
}, - "tags": [
- "publicly_exposed"
 
], - "labels": [
- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}This endpoint allows you to create a honeytoken of a given type within a context. The context is a realistic file in which your honeytoken is inserted.
If language, project_extensions and filename are not provided, a random context will be generated.
| name required  | string  Honeytoken name.  | 
| description | string  Honeytoken description.  | 
| type required  | string  Value: AWS   Honeytoken type.  | 
Array of objects (Honeytoken Label)   Labels to set on the honeytoken. If the label doesn't exist, it will be created.  | |
| language | string  Language to use for the context. If not set but   | 
| filename | string  Filename to use for the context.  | 
| project_extensions | Array of strings  An array of file extensions that can be used for the context.  | 
{- "name": "honeytoken name",
 - "description": "This honeytoken was placed in the repository test",
 - "type": "AWS",
 - "labels": [
- {
- "key": "env",
 - "value": "production"
 
} 
], - "language": "python",
 - "filename": "test_config.py",
 - "project_extensions": [
- ".c",
 - ".h"
 
] 
}{- "content": "string",
 - "filepath": "config_prod.py",
 - "language": "python",
 - "suggested_commit_message": "adding test config",
 - "honeytoken_id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 
}Retrieve an existing honeytoken.
If you are using a personal access token, you need to have an access level greater or equal to manager.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| show_token | boolean  Default:  false  Show token details (  | 
{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "name": "honeytoken A",
 - "description": "honeytoken used in the repository AA",
 - "created_at": "2019-08-22T14:15:22Z",
 - "status": "active",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "revoked_at": "2019-08-22T14:15:22Z",
 - "open_events_count": 122,
 - "type": "AWS",
 - "creator_id": 122,
 - "revoker_id": 122,
 - "creator_api_token_id": "f74ffca5-d06d-45c2-a3d8-e8e95d15a464",
 - "revoker_api_token_id": "19058e4a-0fab-4dcc-8ed6-4e2ec9fb2e44",
 - "token": {
- "access_token_id": "AAAA",
 - "secret_key": "BBB"
 
}, - "tags": [
- "publicly_exposed"
 
], - "labels": [
- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Update a name or descriptions of an existing honeytoken.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| name | string  A new honeytoken name  | 
| description | string  A new honeytoken description  | 
Array of objects (Honeytoken Label)   Deprecated   A new set of custom tags for the honeytoken. Will completely override the former custom tags. This field is deprecated; use the   | |
Array of objects  A new set of custom tags for the honeytoken. Will completely override the former custom tags.  | 
{- "name": "test-honeytoken",
 - "description": "honeytoken in repository test",
 - "labels": [
- {
- "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "key": "env",
 - "value": "prod"
 
} 
] 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "name": "honeytoken A",
 - "description": "honeytoken used in the repository AA",
 - "created_at": "2019-08-22T14:15:22Z",
 - "status": "active",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "revoked_at": "2019-08-22T14:15:22Z",
 - "open_events_count": 122,
 - "type": "AWS",
 - "creator_id": 122,
 - "revoker_id": 122,
 - "creator_api_token_id": "f74ffca5-d06d-45c2-a3d8-e8e95d15a464",
 - "revoker_api_token_id": "19058e4a-0fab-4dcc-8ed6-4e2ec9fb2e44",
 - "token": {
- "access_token_id": "AAAA",
 - "secret_key": "BBB"
 
}, - "tags": [
- "publicly_exposed"
 
], - "labels": [
- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Resets a triggered honeytoken. All the associated events will be closed.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "name": "honeytoken A",
 - "description": "honeytoken used in the repository AA",
 - "created_at": "2019-08-22T14:15:22Z",
 - "status": "active",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "revoked_at": "2019-08-22T14:15:22Z",
 - "open_events_count": 122,
 - "type": "AWS",
 - "creator_id": 122,
 - "revoker_id": 122,
 - "creator_api_token_id": "f74ffca5-d06d-45c2-a3d8-e8e95d15a464",
 - "revoker_api_token_id": "19058e4a-0fab-4dcc-8ed6-4e2ec9fb2e44",
 - "token": {
- "access_token_id": "AAAA",
 - "secret_key": "BBB"
 
}, - "tags": [
- "publicly_exposed"
 
], - "labels": [
- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Revokes an active or triggered honeytoken. All the associated events will be closed.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "name": "honeytoken A",
 - "description": "honeytoken used in the repository AA",
 - "created_at": "2019-08-22T14:15:22Z",
 - "status": "active",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "revoked_at": "2019-08-22T14:15:22Z",
 - "open_events_count": 122,
 - "type": "AWS",
 - "creator_id": 122,
 - "revoker_id": 122,
 - "creator_api_token_id": "f74ffca5-d06d-45c2-a3d8-e8e95d15a464",
 - "revoker_api_token_id": "19058e4a-0fab-4dcc-8ed6-4e2ec9fb2e44",
 - "token": {
- "access_token_id": "AAAA",
 - "secret_key": "BBB"
 
}, - "tags": [
- "publicly_exposed"
 
], - "labels": [
- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}List events related to all honeytokens of the workspace.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| ordering | string  Enum: triggered_at -triggered_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'  | 
| honeytoken_id | string <uuid>    Example:  honeytoken_id=d45a123f-b15d-4fea-abf6-ff2a8479de5b Filter by honeytoken id  | 
| status | string  Default:  open  Enum: open archived allowed   Filter by status  | 
| ip_address | string   Example:  ip_address=8.8.8.8 Filter by ip address  | 
| tags | string  Comma-separated list of tags to filter on  | 
| search | string   Example:  search=I revoked this Search events based on the   | 
[- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "honeytoken_id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "triggered_at": "2019-08-22T14:15:22Z",
 - "status": "open",
 - "ip_address": "8.8.8.8",
 - "action": "string",
 - "data": { },
 - "tags": [
- "publicly_exposed"
 
] 
} 
]List notes left on a honeytoken in chronological order.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| ordering | string  Enum: created_at -created_at updated_at -updated_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| member_id | integer   Example:  member_id=1 Filter by member id.  | 
| api_token_id | string <uuid>    Example:  api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Entries matching this API token id.  | 
| search | string   Example:  search=I revoked this Search notes based on the comment field content.  | 
[- {
- "id": "1b99892e-6254-4f8a-9e98-559ed810b7da",
 - "honeytoken_id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "member_id": 38,
 - "api_token_id": "37d5b0d7-9f89-4b80-9070-261e26637836",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret"
 
} 
]Add a note on a honeytoken.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| comment required  | string  <= 10000 characters   Content of the honeytoken note  | 
{- "comment": "I revoked this honeytoken"
 
}{- "id": "1b99892e-6254-4f8a-9e98-559ed810b7da",
 - "honeytoken_id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "member_id": 38,
 - "api_token_id": "37d5b0d7-9f89-4b80-9070-261e26637836",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret"
 
}Update an existing comment on a honeytoken. Only honeytoken notes created by the current API key can be updated.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| note_id required  | string <uuid>   The id of the honeytoken note to update  | 
| comment required  | string  <= 10000 characters   Content of the honeytoken note  | 
{- "comment": "I revoked this"
 
}{- "id": "1b99892e-6254-4f8a-9e98-559ed810b7da",
 - "honeytoken_id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "member_id": 38,
 - "api_token_id": "37d5b0d7-9f89-4b80-9070-261e26637836",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret"
 
}Delete an existing comment on a honeytoken. Only honeytoken notes created by the current API key can be deleted.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| note_id required  | string <uuid>   The id of the honeytoken note to update  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List sources where a honeytoken appears.
| honeytoken_id required  | string <uuid>   The id of the honeytoken to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| ordering | string  Enum: source_id -source_id   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "type": "github",
 - "name": "gitguardian/gg-shield",
 - "open_issues_count": 3,
 - "total_files_count": 2,
 - "files": [
- ".env"
 
], - "source_id": 0
 
} 
]Manage labels for honeytokens. Labels provide a flexible way to organize honeytokens. You can create your own labels in the form of keys and values, assign them to honeytokens, and use them to filter and search for honeytokens based on specific characteristics.
List labels created for honeytokens in chronological order.
DEPRECATED: This endpoint has been replaced by this one as per introduction of the custom tags feature.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string   Example:  search=env:production Search string to filter only labels which contains the search string in either its key or value. The search string can also be in the key:value format.  | 
| key | string   Example:  key=env Filter only labels which have the given key.  | 
[- {
- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
} 
]Create a label for honeytokens.
DEPRECATED: This endpoint has been replaced by this one as per introduction of the custom tags feature.
| key required  | string  Label's key's content.  | 
| value required  | string  Label's value's content.  | 
{- "key": "env",
 - "value": "production"
 
}{- "id": "0cad1887-d616-4a46-8b5e-4c7b3a70dbaf",
 - "key": "env",
 - "value": "production"
 
}Rename a label key. It will be renamed in all the labels using this key.
DEPRECATED: This endpoint has been replaced by this one as per introduction of the custom tags feature.
| old_key required  | string   Example:  old_key=env an existing key that we want to rename  | 
| new_key required  | string   Example:  new_key=env prod a new name of the key  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}Delete a key. All the labels using this key will be deleted.
DEPRECATED: This endpoint has been replaced by this one as per introduction of the custom tags feature.
| key | string   Example:  key=env A specified key to use to delete all labels which have the key matched.  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}Rename the value of a label.
DEPRECATED: This endpoint has been replaced by this one as per introduction of the custom tags feature.
| label_id required  | string   Example:  5ddaad0c-5a0c-4674-beb5-1cd198d13360 Id of the label.  | 
| value required  | string  New value for the label.  | 
{- "value": "production"
 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}Delete a label for honeytokens.
DEPRECATED: This endpoint has been replaced by this one as per introduction of the custom tags feature.
| label_id required  | string   Example:  5ddaad0c-5a0c-4674-beb5-1cd198d13360 Id of the label.  | 
{- "detail": "Invalid API key."
 
}This endpoint allows you to list all the IP allowlist rules of your workspace.
The response contains the list of IP allowlist rules and a pagination cursor to retrieve the next page.
If you are using a personal access token, you need to have an access level superior or equal to manager.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string  Search IP allowlist rules based on their tag and/or the IP ranges.  | 
| ordering | string  Enum: created_at -created_at tag -tag   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "tag": "Main office",
 - "created_at": "2019-08-22T14:15:22Z",
 - "ip_ranges": [
- "35.153.173.97",
 - "10.0.0.0/24"
 
] 
} 
]This endpoint allows you to create an IP allowlist rule.
If you are using a personal access token, you need to have an access level superior or equal to manager.
| tag required  | string  <= 48 characters   Tag for the IP allowlist rule  | 
| ip_ranges required  | Array of strings  The IP addresses (individual IPs or CIDR notation) to include in the IP allowlist rule  | 
{- "tag": "Main office",
 - "ip_ranges": [
- "35.153.173.97",
 - "10.0.0.0/24"
 
] 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "tag": "Main office",
 - "created_at": "2019-08-22T14:15:22Z",
 - "ip_ranges": [
- "35.153.173.97",
 - "10.0.0.0/24"
 
] 
}Retrieve an existing IP allowlist rule.
If you are using a personal access token, you need to have an access level greater or equal to manager.
| ip_allowlist_rule_id required  | string <uuid>   The id of the IP allowlist rule  | 
{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "tag": "Main office",
 - "created_at": "2019-08-22T14:15:22Z",
 - "ip_ranges": [
- "35.153.173.97",
 - "10.0.0.0/24"
 
] 
}Update the tag or the IP ranges of an existing IP allowlist rule.
| ip_allowlist_rule_id required  | string <uuid>   The id of the IP allowlist rule  | 
| tag | string  <= 48 characters   A new tag  | 
| ip_ranges | Array of strings  The IP addresses (individual IPs or CIDR notation) to include in the IP allowlist rule  | 
{- "tag": "Satellite office",
 - "ip_ranges": [
- "35.45.64.56",
 - "10.0.0.0/24"
 
] 
}{- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "tag": "Main office",
 - "created_at": "2019-08-22T14:15:22Z",
 - "ip_ranges": [
- "35.153.173.97",
 - "10.0.0.0/24"
 
] 
}List secret incidents detected by the GitGuardian dashboard. Occurrences are not returned in this route.
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| exclude_tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  exclude_tags=TEST_FILE,FALSE_POSITIVE Exclude incidents with any of the following tags (comma-separated). Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Incidents with the given custom tag key.  | 
| custom_tag_value | string  Incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
| feedback | boolean  Incidents with or without feedback.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]Retrieve secret incident detected by the GitGuardian dashboard with its occurrences.
| incident_id required  | integer  The id of the incident to retrieve  | 
| with_occurrences | integer  [ 0 .. 100 ]   Default:  20  Retrieve a number of occurrences of this incident.  | 
{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": [
- {
- "id": 4421,
 - "incident_id": 3759,
 - "kind": "realtime",
 - "source": {
- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
}, - "author_name": "Eric",
 - "author_info": "eric@gitguardian.com",
 - "date": "2021-05-20T12:40:55.662949Z",
 - "matches": [
- {
- "name": "apikey",
 - "indice_start": 32,
 - "indice_end": 79,
 - "pre_line_start": null,
 - "pre_line_end": null,
 - "post_line_start": 1,
 - "post_line_end": 1
 
} 
], - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "sha": "d670460b4b4aece5915caf5c68d12f560a9fe3e4",
 - "presence": "present",
 - "filepath": "test_data/12123testfile.txt"
 
} 
] 
}Update a secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| severity | string  Enum: critical high medium low info unknown    | 
Array of objects   | 
{- "severity": "high",
 - "custom_tags": [
- {
- "key": "env",
 - "value": "prod"
 
} 
] 
}{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
}Retrieve where a secret has been publicly leaked.
| incident_id required  | integer  The id of the incident to retrieve  | 
[- {
- "source": "github",
 - "name": "GitGuardian / ggshield",
 
} 
]Assign secret incident detected by the GitGuardian dashboard to a workspace member by email.
| incident_id required  | integer  The id of the incident to retrieve  | 
| send_email | boolean  Default:  true  Whether to notify the assignee.  | 
string  email of the member to assign. This parameter is mutually exclusive with   | |
| member_id | number  id of the member to assign. This parameter is mutually exclusive with   | 
{- "email": "eric@gitguardian.com",
 - "member_id": 4295
 
}{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
}Unassign secret incident from a workspace member by email.
| incident_id required  | integer  The id of the incident to retrieve  | 
{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
}Resolve a secret incident detected by the GitGuardian dashboard.
| incident_id required  | integer  The id of the incident to retrieve  | 
| secret_revoked required  | boolean   | 
{- "secret_revoked": true
 
}{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
}Ignore a secret incident detected by the GitGuardian dashboard.
| incident_id required  | integer  The id of the incident to retrieve  | 
| ignore_reason required  | string  Enum: test_credential false_positive low_risk invalid    | 
{- "ignore_reason": "low_risk"
 
}{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
}Unresolve or unignore a secret incident detected by the GitGuardian dashboard.
| incident_id required  | integer  The id of the incident to retrieve  | 
{- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
}| incident_id required  | integer  The id of the incident to retrieve  | 
string  Email address of a user or invitee. This parameter is mutually exclusive
with   | |
| member_id | number  Id of a member. This parameter is mutually exclusive with   | 
| invitation_id | number  Id of an invitation. This parameter is mutually exclusive with   | 
| team_id | number  Id of a team, except for the global team. This parameter is mutually
exclusive with   | 
| incident_permission | string  Enum: can_view can_edit full_access    | 
{- "member_id": 1492,
 - "incident_permission": "can_edit"
 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}| incident_id required  | integer  The id of the incident to retrieve  | 
string  Email address of a user or invitee. This parameter is mutually exclusive
with   | |
| member_id | number  Id of a member. This parameter is mutually exclusive with   | 
| invitation_id | number  Id of an invitation. This parameter is mutually exclusive with   | 
| team_id | number  Id of a team, except for the global team. This parameter is mutually
exclusive with   | 
{- "member_id": 1492
 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List all the members having access to a secret incident.
DEPRECATED: This endpoint has been replaced by /v1/secret-incidents/{incident_id}/members
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| member_id | number   Example:  member_id=1234 filter on a specific member id.  | 
| incident_permission | string  Enum: can_view can_edit full_access    Example:  incident_permission=can_view  | 
| role | string  Deprecated   Enum: owner manager member restricted   Filter members based on their access level.  | 
| search | string  Deprecated   Search members based on their name or email.  | 
[- {
- "member_id": 3252,
 - "incident_id": 3252,
 - "incident_permission": "can_edit",
 - "id": 1234,
 - "name": "John Smith",
 - "email": "john.smith@example.org",
 - "role": "owner"
 
} 
]List all the teams having access to a secret incident.
DEPRECATED: This endpoint has been replaced by /v1/secret-incidents/{incident_id}/teams
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| team_id | number   Example:  team_id=1234 filter on a specific team id.  | 
| incident_permission | string  Enum: can_view can_edit full_access    Example:  incident_permission=can_view  | 
[- {
- "team_id": 3252,
 - "incident_id": 3252,
 - "incident_permission": "can_edit"
 
} 
]List all the invitations having access to a Secret Incident.
DEPRECATED: This endpoint has been replaced by /v1/secret-incidents/{incident_id}/invitations
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| invitation_id | number   Example:  invitation_id=1234 filter on a specific invitation id.  | 
| incident_permission | string  Enum: can_view can_edit full_access    Example:  incident_permission=can_view filter accesses with a specific permission.  | 
[- {
- "invitation_id": 3252,
 - "incident_id": 3252,
 - "incident_permission": "can_edit"
 
} 
]Retrieve metrics about the impacted perimeter of a secret incident detected by the GitGuardian dashboard.
| incident_id required  | integer  The id of the incident to retrieve  | 
{- "id": 1,
 - "status": "TRIGGERED",
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "sources": [
- {
- "id": 1,
 - "type": "github",
 - "full_name": "GitGuardian/ggshield",
 - "files": {
- "files_requiring_code_fix": [
- {
- "filepath": "foo.txt",
 - "mentions_count": 1,
 
} 
], - "files_pending_merge": [
- {
- "filepath": "bar.txt",
 - "mentions_count": 1,
 
} 
], - "files_fixed": [
- {
- "filepath": "baz.txt",
 - "mentions_count": 1,
 
} 
] 
} 
} 
] 
}List members that have access to a secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| role | string  Deprecated   Enum: owner manager member restricted   Filter members based on their access level. Use   | 
| access_level | string  Enum: owner manager member restricted   Filter members based on their access level.  | 
| search | string  Search members based on their name or email.  | 
| ordering | string  Enum: created_at -created_at last_login -last_login   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| direct_access | boolean  Filter on direct or indirect accesses.  | 
[- {
- "id": 3252,
 - "name": "John Smith",
 - "email": "john.smith@example.org",
 - "role": "owner",
 - "access_level": "owner",
 - "active": true,
 - "created_at": "2023-06-28T16:40:26.897Z",
 - "last_login": "2023-06-28T16:40:26.897Z"
 
} 
]List teams that have access to a secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string  Search teams based on their name and/or description.  | 
| direct_access | boolean  Filter on direct or indirect accesses.  | 
[- {
- "id": 3252,
 - "name": "feature team A",
 - "description": "Description of my team",
 - "is_global": false,
 - "external_provider_id": "123-456-7890"
 
} 
]List invitations that have access to a secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string  Search invitations based on the email field.  | 
| ordering | string  Enum: date -date   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| direct_access | boolean  Filter on direct or indirect accesses.  | 
[- {
- "id": 3252,
 - "email": "john.smith@example.org",
 - "role": "manager",
 - "access_level": "manager",
 - "date": "2019-08-22T14:15:22Z"
 
} 
]Retrieve the information, including its clear text value, of a secret by its ID.
Prerequisites:
| secret_id required  | integer  The ID of the secret to retrieve  | 
{- "id": 37,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "matches": {
- "apikey": "sk-xxxxxxxxxxxxxxxx"
 
} 
}List secret incidents linked to a source. Occurrences are not returned in this route.
| source_id required  | integer   Example:  5523 The id of the source to filter on.  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Incidents with the given custom tag key.  | 
| custom_tag_value | string  Incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
| feedback | boolean  Incidents with or without feedback.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]List secret incidents of a particular team. Occurrences are not returned in this route.
DEPRECATED: THis endpoint has been replaced by /v1/teams/{team_id}/secret-incidents
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Incidents with the given custom tag key.  | 
| custom_tag_value | string  Incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]List occurrences of secrets in the monitored perimeter.
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| source_id | integer   Example:  source_id=5523 Filter on the source ID.  | 
| source_name | string   Example:  source_name=gitguardian/test-repository Entries matching this source name search.  | 
| source_type | string  Enum: bitbucket bitbucket_cloud github gitlab azure_devops slack jira_cloud confluence_cloud microsoft_teams confluence_data_center jira_data_center aws_ecr azure_cr google_artifact jfrog_artifact docker_hub servicenow sharepoint_online sharepoint_online_drive sharepoint_online_pages microsoft_onedrive custom_source    Example:  source_type=github Filter by source type.  | 
| incident_id | integer  Filter by incident ID.  | 
| presence | string  Enum: present removed   Entries that have the following presence status.  | 
| author_name | string  >= 3 characters    Example:  author_name=John Doe Entries matching this author name search.  | 
| author_info | string  >= 3 characters    Example:  author_info=john.doe@gitguardian.com Entries matching this author email search.  | 
| sha | string  >= 3 characters    Example:  sha=fccebf0562698ab99dc10dcb2e864fc563b25ac4 Entries starting with the commit sha search string.  | 
| filepath | string  >= 3 characters    Example:  filepath=myfile.txt Entries matching this filepath search.  | 
| severity | string  Enum: critical high medium low info unknown    Example:  severity=critical,high Filter occurrences by the severity of their related incident. Can specify multiple values separated by commas.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED    Example:  status=TRIGGERED,ASSIGNED Filter occurrences by the status of their related incident. Can specify multiple values separated by commas.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown    Example:  validity=valid,invalid Filter occurrences by the validity of their related secret. Can specify multiple values separated by commas.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Occurrences with one of the following tags. Use   | 
| exclude_tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  exclude_tags=TEST_FILE,FALSE_POSITIVE Exclude occurrences with any of the following tags (comma-separated). Use   | 
| ordering | string  Enum: date -date   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": 4421,
 - "incident_id": 3759,
 - "kind": "realtime",
 - "source": {
- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
}, - "author_name": "Eric",
 - "author_info": "eric@gitguardian.com",
 - "date": "2021-05-20T12:40:55.662949Z",
 - "matches": [
- {
- "name": "apikey",
 - "indice_start": 32,
 - "indice_end": 79,
 - "pre_line_start": null,
 - "pre_line_end": null,
 - "post_line_start": 1,
 - "post_line_end": 1
 
} 
], - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "sha": "d670460b4b4aece5915caf5c68d12f560a9fe3e4",
 - "presence": "present",
 - "filepath": "test_data/12123testfile.txt"
 
} 
]List notes left on a secret incident in chronological order.
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| ordering | string  Enum: created_at -created_at updated_at -updated_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| member_id | integer   Example:  member_id=1 Filter by member id.  | 
| search | string   Example:  search=I revoked this Search notes based on the comment field content.  | 
[- {
- "id": 17,
 - "incident_id": 42,
 - "member_id": 38,
 - "api_token": null,
 - "api_token_id": "3220d951-00ce-446c-ac90-9822f0f9b71e",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret",
 - "issue_id": 42,
 - "user_id": 38
 
} 
]Add a note on a secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| comment required  | string  <= 10000 characters   Content of the incident note  | 
{- "comment": "I revoked this secret"
 
}{- "id": 17,
 - "incident_id": 42,
 - "member_id": 38,
 - "api_token": null,
 - "api_token_id": "3220d951-00ce-446c-ac90-9822f0f9b71e",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret",
 - "issue_id": 42,
 - "user_id": 38
 
}Update an existing comment on a secret incident. Only incident notes created by the current API key can be updated.
| incident_id required  | integer  The id of the incident to retrieve  | 
| note_id required  | integer  The id of the incident note to update  | 
| comment required  | string  <= 10000 characters   Content of the incident note  | 
{- "comment": "I revoked this secret"
 
}{- "id": 17,
 - "incident_id": 42,
 - "member_id": 38,
 - "api_token": null,
 - "api_token_id": "3220d951-00ce-446c-ac90-9822f0f9b71e",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret",
 - "issue_id": 42,
 - "user_id": 38
 
}Delete an existing comment on a secret incident. Only incident notes created by the current API key can be deleted.
| incident_id required  | integer  The id of the incident to retrieve  | 
| note_id required  | integer  The id of the incident note to delete  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List public secret incidents detected by the GitGuardian dashboard.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Public secret incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Public secret incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Public secret incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter public secret incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Public secret incident with the following validity.  | 
| tags | string  Enum: SENSITIVE_FILE TEST_FILE MINIFIED_FILE PROD WHITELISTED DECODED_BASE64 DECRYPTED JWT_PROPERTIES COMPANY_DOMAIN COMPANY_NAME_IN_COMMIT FROM_HISTORICAL_SCAN FROM_SECRET_GRASPER FROM_EXPLORE FALSE_POSITIVE IS_COMPANY_CONTEXT INTERNALLY_LEAKED    Example:  tags=FROM_HISTORICAL_SCAN,INTERNALLY_LEAKED Public secret incidents with one of the following tags. Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Public secret incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Public secret incidents with the given custom tag key.  | 
| custom_tag_value | string  Public secret incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Public secret incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Public secret incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Public secret incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Public secret incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Public secret incidents resolved by this API token id.  | 
| feedback | boolean  Public secret incidents with or without feedback.  | 
| declarative_secret_status | string  Enum: revoked active test_credential false_positive low_risk   Public secret incidents with the following declarative secret status.  | 
[- {
- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
} 
]Retrieve public secret incident detected by the GitGuardian dashboard
| incident_id required  | integer  The id of the incident to retrieve  | 
{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Resolve a public secret incident detected by the GitGuardian dashboard.
| incident_id required  | integer  The id of the incident to retrieve  | 
| resolve_reason required  | string  Enum: revoked dmca_request source_deleted   Comma-separated list of reasons for resolving the incident  | 
{- "resolve_reason": "revoked"
 
}{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Ignore a public secret incident detected by the GitGuardian dashboard.
| incident_id required  | integer  The id of the incident to retrieve  | 
| ignore_reason required  | string  Enum: test_credential false_positive low_risk invalid ignore_actor ignore_secret   Comma-separated list of reasons for ignoring the incident  | 
{- "ignore_reason": "test_credential,ignore_actor"
 
}{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Reopen a public secret incident that was previously resolved or ignored.
| incident_id required  | integer  The id of the incident to retrieve  | 
{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Assign a public secret incident to a workspace member by email or member ID.
| incident_id required  | integer  The id of the incident to retrieve  | 
| send_email | boolean  Default:  true  Whether to notify the assignee.  | 
string  email of the member to assign. This parameter is mutually exclusive with   | |
| member_id | number  id of the member to assign. This parameter is mutually exclusive with   | 
{- "email": "eric@gitguardian.com",
 - "member_id": 4295
 
}{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Unassign a public secret incident from its current assignee.
| incident_id required  | integer  The id of the incident to retrieve  | 
{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}Set the severity of a public secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| severity required  | string  Enum: critical high medium low info   The severity level to set  | 
{- "severity": "high"
 
}{- "id": 3759,
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "date": "2019-08-22T14:15:22Z",
 - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "occurrences_count": 4,
 - "status": "IGNORED",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignore_reason": "test_credential,ignore_actor",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolved_at": null,
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "validity": "valid",
 - "severity": "high",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "declarative_secret_status": "revoked",
 - "resolve_reason": "revoked",
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "INTERNALLY_LEAKED"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
] 
}List notes left on a public secret incident in chronological order.
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| ordering | string  Enum: created_at -created_at updated_at -updated_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| member_id | integer   Example:  member_id=1 Filter by member id.  | 
| search | string   Example:  search=I revoked this Search notes based on the comment field content.  | 
[- {
- "id": 17,
 - "incident_id": 42,
 - "member_id": 38,
 - "api_token_id": "3220d951-00ce-446c-ac90-9822f0f9b71e",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret"
 
} 
]Add a note on a public secret incident.
| incident_id required  | integer  The id of the incident to retrieve  | 
| comment required  | string  <= 10000 characters   Content of the incident note  | 
{- "comment": "I revoked this secret"
 
}{- "id": 17,
 - "incident_id": 42,
 - "member_id": 38,
 - "api_token_id": "3220d951-00ce-446c-ac90-9822f0f9b71e",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret"
 
}Update an existing comment on a public secret incident. Only incident notes created by the current API key can be updated.
| incident_id required  | integer  The id of the incident to retrieve  | 
| note_id required  | integer  The id of the incident note to update  | 
| comment required  | string  <= 10000 characters   Content of the incident note  | 
{- "comment": "I revoked this secret"
 
}{- "id": 17,
 - "incident_id": 42,
 - "member_id": 38,
 - "api_token_id": "3220d951-00ce-446c-ac90-9822f0f9b71e",
 - "created_at": "2019-08-22T14:15:22Z",
 - "updated_at": null,
 - "comment": "I revoked this secret"
 
}Delete an existing comment on a public secret incident. Only incident notes created by the current API key can be deleted.
| incident_id required  | integer  The id of the incident to retrieve  | 
| note_id required  | integer  The id of the incident note to delete  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List occurrences of a public secret incident detected by the GitGuardian dashboard
| incident_id required  | integer  The id of the incident to retrieve  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| source_id | integer   Example:  source_id=5523 Filter on the source ID.  | 
| presence | string  Enum: present removed   Entries that have the following presence status.  | 
| sha | string  >= 3 characters    Example:  sha=fccebf0562 Entries starting with the commit sha search string.  | 
| filepath | string  >= 3 characters    Example:  filepath=myfile.txt Entries matching this filepath search.  | 
| attachment_reason | string  Enum: by_dev_from_perimeter on_github_org_in_perimeter from_secret_grasper    Example:  attachment_reason=by_dev_from_perimeter,on_github_org_in_perimeter Occurrences with one of the following attachment reasons.  | 
| severity | string  Enum: critical high medium low info unknown    Example:  severity=critical,high Filter occurrences by the severity of their related incident. Can specify multiple values separated by commas.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED    Example:  status=TRIGGERED,ASSIGNED Filter occurrences by the status of their related incident. Can specify multiple values separated by commas.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown    Example:  validity=valid,invalid,no_checker Filter occurrences by the validity of their related secret. Can specify multiple values separated by commas.  | 
| tags | string  Enum: SENSITIVE_FILE TEST_FILE MINIFIED_FILE PROD WHITELISTED DECODED_BASE64 DECRYPTED JWT_PROPERTIES COMPANY_DOMAIN COMPANY_NAME_IN_COMMIT FROM_HISTORICAL_SCAN FROM_SECRET_GRASPER FROM_EXPLORE FALSE_POSITIVE IS_COMPANY_CONTEXT INTERNALLY_LEAKED    Example:  tags=FROM_HISTORICAL_SCAN,INTERNALLY_LEAKED Public secret incidents with one of the following tags. Use   | 
| ordering | string  Enum: id -id date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": 12345,
 - "incident_id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "filepath": "src/config/database.yml",
 - "kind": "realtime",
 - "presence": "present",
 - "matches": [
- {
- "name": "apikey",
 - "indice_start": 32,
 - "indice_end": 79,
 - "pre_line_start": null,
 - "pre_line_end": null,
 - "post_line_start": 1,
 - "post_line_end": 1
 
} 
], - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "sha": "fccebf0562698ab99dc10dcb2e864fc563b25ac4",
 - "source": {
- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
}, - "actor": {
- "id": 12345,
 - "type": "github_user",
 - "name": "John Doe",
 - "email": "john.doe@example.com",
 
}, - "attachment_reasons": [
- "by_dev_from_perimeter"
 
] 
} 
]Retrieve a specific occurrence of a public secret incident detected by the GitGuardian dashboard
| incident_id required  | integer  The id of the incident to retrieve  | 
| occurrence_id required  | integer   Example:  12345 The ID of the occurrence to retrieve  | 
{- "id": 12345,
 - "incident_id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "filepath": "src/config/database.yml",
 - "kind": "realtime",
 - "presence": "present",
 - "matches": [
- {
- "name": "apikey",
 - "indice_start": 32,
 - "indice_end": 79,
 - "pre_line_start": null,
 - "pre_line_end": null,
 - "post_line_start": 1,
 - "post_line_end": 1
 
} 
], - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "sha": "fccebf0562698ab99dc10dcb2e864fc563b25ac4",
 - "source": {
- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
}, - "actor": {
- "id": 12345,
 - "type": "github_user",
 - "name": "John Doe",
 - "email": "john.doe@example.com",
 
}, - "attachment_reasons": [
- "by_dev_from_perimeter"
 
] 
}Check the status of the API and your token without spending your quota.
curl --request GET \ --url https://api.gitguardian.com/v1/health \ --header 'authorization: Token <Insert API Key>'
{- "detail": "Valid API key."
 
}List sources known by GitGuardian.
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string   Example:  search=test-repository Sources matching this search.  | 
| last_scan_status | string  Enum: pending running canceled failed too_large timeout pending_timeout finished   Filter sources based on the status of their latest historical scan.  | 
| health | string  Enum: safe unknown at_risk   Filter sources based on their health status.  | 
| type | string  Enum: bitbucket bitbucket_cloud github gitlab azure_devops slack jira_cloud confluence_cloud microsoft_teams confluence_data_center jira_data_center aws_ecr azure_cr google_artifact jfrog_artifact docker_hub servicenow sharepoint_online sharepoint_online_drive sharepoint_online_pages microsoft_onedrive custom_source    Example:  type=github Filter by source type.  | 
| ordering | string  Enum: last_scan_date -last_scan_date   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| visibility | string  Enum: public private internal    Example:  visibility=public Filter by visibility status.  | 
| external_id | string   Example:  external_id=1 Filter by specific external id.  | 
| source_criticality | string  Enum: critical high medium low unknown    Example:  source_criticality=critical Filter by source criticality.  | 
| monitored | boolean   Example:  monitored=true Filter by monitored value.  | 
[- {
- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
} 
]Retrieve a source known by GitGuardian.
| source_id required  | integer   Example:  5523 The id of the source to retrieve.  | 
{- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
}Update some source attributes such as monitored status and source criticality.
The monitored status can be updated for all source types except Custom Sources.
⚠️ Note: some sources types are supported on this endpoint, but cannot be updated yet on the dashboard.
Business sources can't be updated if your account doesn't have access to them.
| source_id required  | integer   Example:  5523 The id of the source to retrieve.  | 
| source_criticality | string  Criticality of the source.  | 
| monitored | boolean  Whether the source is currently monitored by GitGuardian.  | 
{- "source_criticality": "critical",
 - "monitored": true
 
}{- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
}List secret incidents linked to a source. Occurrences are not returned in this route.
| source_id required  | integer   Example:  5523 The id of the source to filter on.  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Incidents with the given custom tag key.  | 
| custom_tag_value | string  Incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
| feedback | boolean  Incidents with or without feedback.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]List custom sources for the authenticated account.
⚠️ Beta Version: This endpoint is in beta and may be subject to changes in future releases.
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string   Example:  search=my-custom-source Custom sources matching this search.  | 
| ordering | string  Enum: id -id name -name   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": "123",
 - "source_uuid": "550e8400-e29b-41d4-a716-446655440000",
 - "name": "My Custom Source",
 - "description": "A custom source for testing purposes"
 
} 
]Create a new custom source for the authenticated account.
⚠️ Beta Version: This endpoint is in beta and may be subject to changes in future releases.
| name required  | string  [ 1 .. 500 ] characters   The name of the custom source  | 
| description | string or null  [ 1 .. 500 ] characters   The description of the custom source  | 
{- "name": "My Custom Source",
 - "description": "A custom source for testing purposes"
 
}{- "id": "123",
 - "source_uuid": "550e8400-e29b-41d4-a716-446655440000",
 - "name": "My Custom Source",
 - "description": "A custom source for testing purposes"
 
}Get a custom source by ID.
⚠️ Beta Version: This endpoint is in beta and may be subject to changes in future releases.
| custom_source_id required  | string   Example:  123 The id of the custom source to retrieve.  | 
{- "id": "123",
 - "source_uuid": "550e8400-e29b-41d4-a716-446655440000",
 - "name": "My Custom Source",
 - "description": "A custom source for testing purposes"
 
}Update a custom source's name and description.
⚠️ Beta Version: This endpoint is in beta and may be subject to changes in future releases.
| custom_source_id required  | string   Example:  123 The id of the custom source to update.  | 
| name required  | string  [ 1 .. 500 ] characters   The name of the custom source  | 
| description | string or null  [ 1 .. 500 ] characters   The description of the custom source  | 
{- "name": "My Custom Source",
 - "description": "A custom source for testing purposes"
 
}{- "id": "123",
 - "source_uuid": "550e8400-e29b-41d4-a716-446655440000",
 - "name": "My Custom Source",
 - "description": "A custom source for testing purposes"
 
}Delete a custom source. This will also delete the related integration if no other sources exist.
⚠️ Beta Version: This endpoint is in beta and may be subject to changes in future releases.
| custom_source_id required  | string   Example:  123 The id of the custom source to delete.  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List developers in the public perimeter.
| search | string  Developers matching this search.  | 
| ordering | string  Enum: github_login -github_login name -name emails -emails is_active -is_active   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": 0,
 - "type": "github_user",
 - "emails": [
- "user@example.com"
 
], - "first_linked_at": "2019-08-24T14:15:22Z",
 - "is_active": true,
 - "github_id": 0,
 - "github_login": "string",
 - "name": "string",
 - "reasons": [
- {
- "reason": "github_organization",
 - "deactivated_at": "2019-08-24T14:15:22Z",
 - "metadata": { }
 
} 
] 
} 
]System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of user identity information between identity domains, or IT systems.
Create a new workspace member (using SCIM Protocol).
| schemas required  | Array of strings Items Value: urn:ietf:params:scim:schemas:core:2.0:User    | 
| userName required  | string  Unique identifier from the IDP Config, this should match the member's email  | 
| active required  | boolean  Whether the User is activated on the application.  | 
required  | object   | 
required  | Array of objects   | 
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
], - "userName": "string",
 - "active": true,
 - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "emails": [
- {
- "value": "string",
 - "primary": false
 
} 
] 
}{- "active": true,
 - "emails": [
- {
- "primary": true,
 - "value": "string"
 
} 
], - "externalId": "string",
 - "id": "string",
 - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
], - "userName": "string"
 
}List members of the workspace (using SCIM Protocol).
| filter | string   Examples: 
 Filter users using SCIM filtering DSL.  | 
| startIndex | integer  >= 1   Default:  1  The 1-based index of the first result in the current set of list results.  | 
| count | integer  [ 1 .. 100 ]   Default:  10  Specifies the desired maximum number of query results per page.  | 
{- "Resources": [
- {
- "active": true,
 - "emails": [
- {
- "primary": true,
 - "value": "string"
 
} 
], - "externalId": "string",
 - "id": "string",
 - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
], - "userName": "string"
 
} 
], - "itemsPerPage": 0,
 - "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
 
], - "startIndex": 1,
 - "totalResults": 0
 
}Detail of a workspace member (using SCIM Protocol).
| id required  | string   | 
{- "active": true,
 - "emails": [
- {
- "primary": true,
 - "value": "string"
 
} 
], - "externalId": "string",
 - "id": "string",
 - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
], - "userName": "string"
 
}Update of a workspace member (using SCIM Protocol).
| id required  | string   | 
| active required  | boolean  Whether the User is activated on the application.  | 
| userName required  | string  Unique identifier from the IDP Config, this should match the member's email  | 
required  | object   | 
| schemas required  | Array of strings Items Value: urn:ietf:params:scim:schemas:core:2.0:User    | 
{- "active": true,
 - "userName": "string",
 - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
] 
}{- "active": true,
 - "emails": [
- {
- "primary": true,
 - "value": "string"
 
} 
], - "externalId": "string",
 - "id": "string",
 - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
], - "userName": "string"
 
}Update of a workspace member (using SCIM Protocol).
| id required  | string   | 
required  | Array of objects  See https://www.rfc-editor.org/rfc/rfc7644#section-3.5.2 for more details. Currently, only updating the active status, first name and last name is supported.  | 
| schemas required  | Array of strings Items Value: urn:ietf:params:scim:api:messages:2.0:PatchOp    | 
{- "Operations": [
- {
- "op": "replace",
 - "path": "userName",
 - "value": true
 
} 
], - "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:PatchOp"
 
] 
}{- "active": true,
 - "emails": [
- {
- "primary": true,
 - "value": "string"
 
} 
], - "externalId": "string",
 - "id": "string",
 - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": {
- "familyName": "string",
 - "givenName": "string"
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:User"
 
], - "userName": "string"
 
}Delete a workspace member (using SCIM Protocol).
| id required  | string   | 
{- "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:Error"
 
], - "detail": "string",
 - "status": "400",
 - "scimType": "uniqueness"
 
}System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of group identity information between identity domains, or IT systems.
List groups (teams in GIM) of the workspace using the SCIM Protocol.
| filter | string   Examples: 
 Filter groups using the SCIM filtering DSL.  | 
| startIndex | integer  >= 1   Default:  1  The 1-based index of the first result in the current set of list results.  | 
| count | integer  [ 1 .. 100 ]   Default:  10  Specifies the desired maximum number of query results per page.  | 
{- "Resources": [
- {
- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:Group"
 
], - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "id": "group-123456",
 - "externalId": "123-456-789",
 - "displayName": "Developers team",
 - "description": "Team grouping all my developers.",
 - "members": [
] 
} 
], - "itemsPerPage": 0,
 - "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
 
], - "startIndex": 1,
 - "totalResults": 0
 
}Detail of a group (team in GIM) using the SCIM Protocol.
| id required  | string  The identifier of the group. To comply with the SCIM unique identifier rule we use the team ID prefixed by 'group-'. e.g 'group-123456'  | 
{- "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:Group"
 
], - "meta": {
- "created": "2019-08-24T14:15:22Z",
 - "lastModified": "2019-08-24T14:15:22Z",
 - "location": "string",
 - "resourceType": "ResourceType"
 
}, - "id": "group-123456",
 - "externalId": "123-456-789",
 - "displayName": "Developers team",
 - "description": "Team grouping all my developers.",
 - "members": [
] 
}System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of user identity information between identity domains, or IT systems.
List the SCIM specification features available on a service provider.
{- "bulk": {
- "maxOperations": 0,
 - "maxPayloadSize": 0,
 - "supported": true
 
}, - "changePassword": {
- "supported": true
 
}, - "etag": {
- "supported": true
 
}, - "filter": {
- "maxResults": 0,
 - "supported": true
 
}, - "meta": {
- "location": "string",
 - "resourceType": "ResourceType"
 
}, - "patch": {
- "supported": true
 
}, - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
 
], - "sort": {
- "supported": true
 
}, - "authenticationSchemes": [
- {
- "description": "string",
 - "name": "string",
 - "primary": true,
 - "type": "oauth"
 
} 
] 
}{- "Resources": [
- {
- "description": "string",
 - "endpoint": "string",
 - "id": "string",
 - "meta": {
- "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": "string",
 - "schema": "string",
 - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
 
] 
} 
], - "itemsPerPage": 0,
 - "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
 
] 
}Detail of a Resource Types
| name required  | string   | 
{- "description": "string",
 - "endpoint": "string",
 - "id": "string",
 - "meta": {
- "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": "string",
 - "schema": "string",
 - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
 
] 
}{- "Resources": [
- {
- "attributes": [
- {
- "caseExact": true,
 - "description": "string",
 - "multiValued": true,
 - "mutability": "readOnly",
 - "name": "string",
 - "required": true,
 - "returned": "always",
 - "type": "binary",
 - "uniqueness": "none"
 
} 
], - "description": "string",
 - "id": "string",
 - "meta": {
- "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": "string",
 - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:Schema"
 
] 
} 
], - "itemsPerPage": 0,
 - "schemas": [
- "urn:ietf:params:scim:api:messages:2.0:ListResponse"
 
] 
}{- "attributes": [
- {
- "caseExact": true,
 - "description": "string",
 - "multiValued": true,
 - "mutability": "readOnly",
 - "name": "string",
 - "required": true,
 - "returned": "always",
 - "type": "binary",
 - "uniqueness": "none"
 
} 
], - "description": "string",
 - "id": "string",
 - "meta": {
- "location": "string",
 - "resourceType": "ResourceType"
 
}, - "name": "string",
 - "schemas": [
- "urn:ietf:params:scim:schemas:core:2.0:Schema"
 
] 
}Use GitGuardian's brain at your leisure.
Scanning API allows you to scan any content you want using GitGuardian's secrets detection algorithms.
Scan provided document content for policy breaks.
Request body shouldn't exceed 1MB.
This endpoint is stateless and as such will not store in our servers neither the documents nor the secrets found.
| filename | string  <= 256 characters    | 
| document required  | string   | 
{- "filename": ".env",
 - "document": "\nimport urllib.request\nurl = 'http://jen_barber:correcthorsebatterystaple@cake.gitguardian.com/isreal.json'\nresponse = urllib.request.urlopen(url)\nconsume(response.read())\n"
 
}{- "policy_break_count": 2,
 - "policies": [
- "Filename",
 - "File extensions",
 - "Secrets detection"
 
], - "policy_breaks": [
- {
- "type": ".env",
 - "policy": "Filenames",
 - "matches": [
- {
- "type": "filename",
 - "match": ".env"
 
} 
] 
}, - {
- "type": "Basic Auth String",
 - "policy": "Secrets detection",
 - "validity": "cannot_check",
 - "matches": [
- {
- "type": "username",
 - "match": "jen_barber",
 - "index_start": 52,
 - "index_end": 61,
 - "line_start": 2,
 - "line_end": 2
 
}, - {
- "type": "password",
 - "match": "correcthorsebatterystaple",
 - "index_start": 63,
 - "index_end": 87,
 - "line_start": 2,
 - "line_end": 2
 
}, - {
- "type": "host",
 - "match": "cake.gitguardian.com",
 - "index_start": 89,
 - "index_end": 108,
 - "line_start": 2,
 - "line_end": 2
 
} 
] 
} 
] 
}Scan provided document contents for policy breaks. Multiple documents are returned by the same index order.
There should not be more than 20 documents in the payload. Individual documents should not exceed 1MB.
Quota usage is based on requests and not on the content size. One request to this endpoint will consume 1 API call. Also note that the quota is set on a rolling month and not on a calendar month. See this documentation for more details.
This endpoint is stateless and as such will not store in our servers neither the documents nor the secrets found.
| filename | string  <= 256 characters    | 
| document required  | string   | 
[- {
- "filename": ".env",
 - "document": "import urllib.request\nurl = 'http://jen_barber:correcthorsebatterystaple@cake.gitguardian.com/isreal.json'\nresponse = urllib.request.urlopen(url)\nconsume(response.read())\n"
 
}, - {
- "filename": "tasks.py",
 - "document": "__version__=\"1.0.0\""
 
} 
][- {
- "policy_break_count": 2,
 - "policies": [
- "Filename",
 - "File extensions",
 - "Secrets detection"
 
], - "policy_breaks": [
- {
- "type": ".env",
 - "policy": "Filenames",
 - "matches": [
- {
- "type": "filename",
 - "match": ".env"
 
} 
] 
}, - {
- "type": "Basic Auth String",
 - "policy": "Secrets detection",
 - "validity": "cannot_check",
 - "matches": [
- {
- "type": "username",
 - "match": "jen_barber",
 - "index_start": 52,
 - "index_end": 61,
 - "line_start": 2,
 - "line_end": 2
 
}, - {
- "type": "password",
 - "match": "correcthorsebatterystaple",
 - "index_start": 63,
 - "index_end": 87,
 - "line_start": 2,
 - "line_end": 2
 
}, - {
- "type": "host",
 - "match": "cake.gitguardian.com",
 - "index_start": 89,
 - "index_end": 108,
 - "line_start": 2,
 - "line_end": 2
 
} 
] 
} 
] 
}, - {
- "policy_break_count": 0,
 - "policies": [
- "Filename",
 - "File extensions",
 - "Secrets detection"
 
], - "policy_breaks": [ ]
 
} 
]Scan provided content for hardcoded secrets and create incidents that will be reflected on the GitGuardian dashboard.
⚠️ Beta Version: This endpoint is in beta and may be subject to changes in future releases.
This endpoint will:
Request body shouldn't exceed 1MB.
| source_uuid required  | string  Unique identifier for the custom source  | 
required  | Array of objects  non-empty   Array of documents to be processed  | 
{- "source_uuid": "550e8400-e29b-41d4-a716-446655440000",
 - "documents": [
- {
- "filename": "document.txt",
 - "document": ""
 
} 
] 
}{- "policy_break_count": 2,
 - "policies": [
- "Filename",
 - "File extensions",
 - "Secrets detection"
 
], - "policy_breaks": [
- {
- "type": ".env",
 - "policy": "Filenames",
 - "matches": [
- {
- "type": "filename",
 - "match": ".env"
 
} 
] 
}, - {
- "type": "Basic Auth String",
 - "policy": "Secrets detection",
 - "validity": "cannot_check",
 - "matches": [
- {
- "type": "username",
 - "match": "jen_barber",
 - "index_start": 52,
 - "index_end": 61,
 - "line_start": 2,
 - "line_end": 2
 
}, - {
- "type": "password",
 - "match": "correcthorsebatterystaple",
 - "index_start": 63,
 - "index_end": 87,
 - "line_start": 2,
 - "line_end": 2
 
}, - {
- "type": "host",
 - "match": "cake.gitguardian.com",
 - "index_start": 89,
 - "index_end": 108,
 - "line_start": 2,
 - "line_end": 2
 
} 
] 
} 
], - "created_incidents": [
- {
- "incident_id": 12345,
 - "status": "TRIGGERED",
 - "severity": "high"
 
} 
] 
}List secret detectors.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| is_active | boolean   Example:  is_active=true Filter only active or inactive detectors.  | 
| type | string  Enum: specific generic custom    Example:  type=generic Filter detectors on their type.  | 
| search | string   Example:  search=aws  | 
| ordering | string  Enum: name -name   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "name": "aws_iam",
 - "display_name": "AWS Keys",
 - "type": "specific",
 - "category": "Cloud Provider",
 - "is_active": true,
 - "scans_code_only": false,
 - "checkable": true,
 - "use_with_validity_check_disabled": true,
 - "frequency": "1O3.74",
 - "removed_at": null,
 - "open_incidents_count": 17,
 - "ignored_incidents_count": 9,
 - "resolved_incidents_count": 42
 
} 
]Get a secret detector.
| detector_name required  | string   Example:  aws_iam Name of the detector to retrieve  | 
{- "name": "aws_iam",
 - "display_name": "AWS Keys",
 - "type": "specific",
 - "category": "Cloud Provider",
 - "is_active": true,
 - "scans_code_only": false,
 - "checkable": true,
 - "use_with_validity_check_disabled": true,
 - "frequency": "1O3.74",
 - "removed_at": null,
 - "open_incidents_count": 17,
 - "ignored_incidents_count": 9,
 - "resolved_incidents_count": 42
 
}This endpoint allows you to list all the teams of your workspace.
The response contains the list of teams and a pagination cursor to retrieve the next page.
The teams are sorted by id.
If you are using a personal access token, you need to have an access level superior or equal to member.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| is_global | boolean  Filter on/exclude the "All-incidents" team.  | 
| search | string  Search teams based on their name and/or description.  | 
| linked_to_an_external_provider | boolean  Filter on/exclude teams that are linked to an external provider.  | 
[- {
- "id": 3252,
 - "name": "feature team A",
 - "description": "Description of my team",
 - "is_global": false,
 - "external_provider_id": "123-456-7890"
 
} 
]This endpoint allows you to create a team.
If you are using a personal access token, you need to have an access level superior or equal to manager.
If a personal access token is being used, the member is automatically added to the created team with permissions can_manage and full_access
| name required  | string   | 
| description | string or null  team description.  | 
| external_provider_id | string or null  ID of the external provider associated to the team.  | 
{- "name": "feature team A",
 - "description": "Description of my team",
 - "external_provider_id": "123-456-7890"
 
}{- "id": 3252,
 - "name": "feature team A",
 - "description": "Description of my team",
 - "is_global": false,
 - "external_provider_id": "123-456-7890"
 
}Retrieve an existing team.
If you are using a personal access token, you need to have an access level greater or equal to member.
| team_id required  | integer  The id of the team  | 
{- "id": 3252,
 - "name": "feature team A",
 - "description": "Description of my team",
 - "is_global": false,
 - "external_provider_id": "123-456-7890"
 
}Delete an existing team.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
The "All-incidents" team (is_global=true) cannot be deleted.
| team_id required  | integer  The id of the team  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}Update a team's name and/or its description.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
The "All-incidents" team (is_global=true) cannot be updated.
| team_id required  | integer  The id of the team  | 
| name | string   | 
| description | string or null  team description.  | 
| external_provider_id | string or null  ID of the external provider associated to the team.  | 
{- "name": "feature team A",
 - "description": "Description of my team",
 - "external_provider_id": "123-456-7890"
 
}{- "id": 3252,
 - "name": "feature team A",
 - "description": "Description of my team",
 - "is_global": false,
 - "external_provider_id": "123-456-7890"
 
}List secret incidents of a particular team. Occurrences are not returned in this route.
DEPRECATED: THis endpoint has been replaced by /v1/teams/{team_id}/secret-incidents
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Incidents with the given custom tag key.  | 
| custom_tag_value | string  Incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]Return the permission a team has on a resource.
For the global team, it will always be the highest possible permission.
| team_id required  | integer  The id of the team  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
{- "team_id": 1345,
 - "resource_id": 3252,
 - "resource_type": "secret-incidents",
 - "permission": "can_edit"
 
}This will create or update a direct access for the team on the resource. If the access to the resource is already given by the team's perimeter, an error is raised.
This endpoint is not allowed for the global team.
| team_id required  | integer  The id of the team  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
| send_email | boolean  Default:  true  Whether to notify the team members about the access.  | 
| permission | string  Enum: can_view can_edit full_access    | 
{- "permission": "can_edit"
 
}{- "team_id": 1345,
 - "resource_id": 3252,
 - "resource_type": "secret-incidents",
 - "permission": "can_edit"
 
}Revoke the access a team has to a resource.
This only works for direct accesses. If the access to the resource is given by the team's perimeter, an error is raised.
This endpoint is not allowed for the global team.
| team_id required  | integer  The id of the team  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
| permission | string  Enum: can_view can_edit full_access    | 
{- "permission": "can_edit"
 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List secret incidents that a team has access to.
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| custom_tags | string   Example:  custom_tags=d45a123f-b15d-4fea-abf6-ff2a8479de5b,55b349d7-8c3a-40c9-957c-e58f5c3a7391 Incidents with one of the following custom tag ids. To retrieve incidents containing several custom tags at once, this query parameter should be used several times to intersect the results.  | 
| custom_tag_key | string  Incidents with the given custom tag key.  | 
| custom_tag_value | string  Incidents with the given custom tag value.  | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
| feedback | boolean  Incidents with or without feedback.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]List all existing team invitations.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| invitation_id | integer  The id of an invitation to filter on  | 
| is_team_leader | boolean   Example:  is_team_leader=true Filter team invitations that will become team leaders  | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage    Example:  team_permission=can_manage Filter team invitations with a specific team permission team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    Example:  incident_permission=can_edit Filter team invitations with a specific incident permission  | 
[- {
- "id": 3252,
 - "invitation_id": 4851,
 - "team_id": 991,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
} 
]This endpoint allows you to create a team invitation from an existing team and invitation.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| invitation_id required  | integer   | 
| is_team_leader | boolean   | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage   team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    | 
{- "invitation_id": 4851,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}{- "id": 3252,
 - "invitation_id": 4851,
 - "team_id": 991,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}Update permissions of a team invitation.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| team_invitation_id required  | integer  The id of the team invitation  | 
| is_team_leader | boolean   | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage   team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    | 
{- "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_view"
 
}{- "id": 3252,
 - "invitation_id": 4851,
 - "team_id": 991,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}Delete an existing team invitation.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| team_invitation_id required  | integer  The id of the team invitation  | 
{- "detail": "Invalid API key."
 
}List all the memberships of a team.
If you are using a personal access token, you need to be a workspace manager or be part of the team.
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| is_team_leader | boolean   Example:  is_team_leader=true Filter team memberships that are team leaders  | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage    Example:  team_permission=can_manage Filter team memberships with a specific team permission team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    Example:  incident_permission=can_edit Filter team memberships with a specific incident permission  | 
| member_id | number   Example:  member_id=1234 Filter team memberships on a specific member  | 
[- {
- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
} 
]Add a member to a team.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| send_email | boolean  Default:  true  Whether to notify the member about the team membership.  | 
| member_id | integer  Id of a workspace member.  | 
| is_team_leader | boolean   | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage   team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    | 
{- "member_id": 2489,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}{- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}Update permissions of a team membership.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| team_membership_id required  | integer  The id of the team membership  | 
| is_team_leader | boolean   | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage   team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    | 
{- "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_view"
 
}{- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}Remove a member from a team.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager, or be the member being removed.
| team_id required  | integer  The id of the team  | 
| team_membership_id required  | integer  The id of the team membership  | 
| send_email | boolean  Default:  true  Whether to notify the member about the removal from the team.  | 
{- "detail": "Invalid API key."
 
}List pending requests of a team.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| member_id | number   Example:  member_id=1234 Filter requests coming from a specific member  | 
[- {
- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285
 
} 
]Create an access request to a team.
You must be authenticated via a Personal Access Token. You must not already have a pending request on the team, be a member of the team, be a workspace manager or have the restricted access level.
| team_id required  | integer  The id of the team  | 
{- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285
 
}Cancel or decline a team request.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager, or be the member who created the request being cancelled.
| team_id required  | integer  The id of the team  | 
| team_request_id required  | integer  The id of the team request  | 
| send_email | boolean  Default:  true  Whether to notify the member about the request having been denied.  | 
{- "detail": "Invalid API key."
 
}Accept a team request by adding the member to the team.
If you are using a personal access token, you must have "can manage" permission on the team or be a workspace manager.
| team_id required  | integer  The id of the team  | 
| team_request_id required  | integer  The id of the team request  | 
| send_email | boolean  Default:  true  Whether to notify the member about the request having been accepted.  | 
| is_team_leader | boolean   | 
| team_permission | string  Deprecated   Enum: can_manage cannot_manage   team_permission is replaced by is_team_leader  | 
| incident_permission | string  Enum: can_view can_edit full_access    | 
{- "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_view"
 
}{- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
}List pending team requests of a member.
If you are using a personal access token, you need to be either a workspace manager or the member being queried.
| member_id required  | integer  The id of the workspace member  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| team_id | number   Example:  team_id=1234 Filter requests to a specific team  | 
[- {
- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285
 
} 
]List sources belonging to a team's perimeter.
| team_id required  | integer  The id of the team  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string   Example:  search=test-repository Sources matching this search.  | 
| last_scan_status | string  Enum: pending running canceled failed too_large timeout pending_timeout finished   Filter sources based on the status of their latest historical scan.  | 
| health | string  Enum: safe unknown at_risk   Filter sources based on their health status.  | 
| type | string  Enum: azure_devops bitbucket bitbucket_cloud github gitlab    Example:  type=github Filter by integration type.  | 
| ordering | string  Enum: last_scan_date -last_scan_date   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| visibility | string  Enum: public private internal    Example:  visibility=public Filter by visibility status.  | 
| external_id | string   Example:  external_id=1 Filter by specific external id.  | 
[- {
- "id": 6531,
 - "type": "github",
 - "full_name": "gitguardian/gg-shield",
 - "health": "at_risk",
 - "default_branch": "main",
 - "default_branch_head": "abcd97b4aaf927ea934504263322e75e86c31xyz",
 - "open_incidents_count": 3,
 - "closed_incidents_count": 2,
 - "secret_incidents_breakdown": {
- "open_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
}, - "closed_secret_incidents": {
- "total": 0,
 - "severity_breakdown": {
- "critical": 0,
 - "high": 0,
 - "medium": 0,
 - "low": 0,
 - "info": 0,
 - "unknown": 0
 
} 
} 
}, - "visibility": "public",
 - "external_id": "125",
 - "source_criticality": "critical",
 - "last_scan": {
- "date": "2021-05-20T12:40:55.662949Z",
 - "status": "finished",
 - "failing_reason": "DMCA takedown",
 - "commits_scanned": 123,
 - "branches_scanned": 2,
 - "duration": "1:30.454444"
 
}, - "monitored": true,
 - "deleted": true
 
} 
]This endpoint allows you to add and remove sources from the perimeter of a team.
If you are using a personal access token, you need to be a workspace manager.
| team_id required  | integer  The id of the team  | 
| sources_to_add | Array of integers  Ids of sources to add to the perimeter.  | 
| sources_to_remove | Array of integers  Ids of sources to remove from the perimeter.  | 
{- "sources_to_add": [
- 0
 
], - "sources_to_remove": [
- 0
 
] 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}{- "id": "5ddaad0c-5a0c-4674-beb5-1cd198d13360",
 - "name": "myTokenName",
 - "workspace_id": 42,
 - "type": "personal_access_token",
 - "status": "revoked",
 - "created_at": "2023-05-20T12:40:55.662949Z",
 - "last_used_at": "2023-05-24T12:40:55.662949Z",
 - "expire_at": null,
 - "revoked_at": "2023-05-27T12:40:55.662949Z",
 - "member_id": 22015,
 - "creator_id": 22015,
 - "scopes": [
- "incidents:read",
 - "scan"
 
] 
}List all the tokens in the workspace, some filters are available and described below.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| status | string  Enum: active expired revoked   Status of the token.  | 
| member_id | integer   Example:  member_id=1 Filter by member id.  | 
| creator_id | integer   Example:  creator_id=1 Filter by creator id.  | 
| scopes | string  Enum: scan incidents:read incidents:write incidents:share members:read members:write teams:read teams:write audit_logs:read honeytokens:read honeytokens:write api_tokens:read api_tokens:write ip_allowlist:read ip_allowlist:write sources:read sources:write nhi:send-inventory nhi:write-vault    Example:  scopes=incidents:read,api_tokens:read Tokens with one of the following scopes.  | 
| search | string  Search tokens based on their name.  | 
| ordering | string  Enum: created_at -created_at last_used_at -last_used_at expire_at -expire_at revoked_at -revoked_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": "5ddaad0c-5a0c-4674-beb5-1cd198d13360",
 - "name": "myTokenName",
 - "workspace_id": 42,
 - "type": "personal_access_token",
 - "status": "revoked",
 - "created_at": "2023-05-20T12:40:55.662949Z",
 - "last_used_at": "2023-05-24T12:40:55.662949Z",
 - "expire_at": null,
 - "revoked_at": "2023-05-27T12:40:55.662949Z",
 - "member_id": 22015,
 - "creator_id": 22015,
 - "scopes": [
- "incidents:read",
 - "scan"
 
] 
} 
]| token_id required  | string   Example:  5ddaad0c-5a0c-4674-beb5-1cd198d13360 Id of the token.  | 
{- "id": "5ddaad0c-5a0c-4674-beb5-1cd198d13360",
 - "name": "myTokenName",
 - "workspace_id": 42,
 - "type": "personal_access_token",
 - "status": "revoked",
 - "created_at": "2023-05-20T12:40:55.662949Z",
 - "last_used_at": "2023-05-24T12:40:55.662949Z",
 - "expire_at": null,
 - "revoked_at": "2023-05-27T12:40:55.662949Z",
 - "member_id": 22015,
 - "creator_id": 22015,
 - "scopes": [
- "incidents:read",
 - "scan"
 
] 
}Create a short lived JWT for authentication to specific GitGuardian services, including HasMySecretLeaked.
| audience required  | string  Audience of the JWT.  | 
| audience_type | string  Type of audience.  | 
{- "audience_type": "hmsl"
 
}{- "token": "eyJhbGciOiJS[...]"
 
}List members of the workspace.
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| role | string  Deprecated   Enum: owner manager member restricted   Filter members based on their access level. Use   | 
| access_level | string  Enum: owner manager member restricted   Filter members based on their access level.  | 
| active | boolean  Filter members based on their active status.  | 
| search | string  Search members based on their name or email.  | 
| ordering | string  Enum: created_at -created_at last_login -last_login   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": 3252,
 - "name": "John Smith",
 - "email": "john.smith@example.org",
 - "role": "owner",
 - "access_level": "owner",
 - "active": true,
 - "created_at": "2023-06-28T16:40:26.897Z",
 - "last_login": "2023-06-28T16:40:26.897Z"
 
} 
]Retrieve an existing workspace member.
If you are using a personal access token, you need to have an access level greater or equal to member.
| member_id required  | integer  The id of the workspace member  | 
{- "id": 3252,
 - "name": "John Smith",
 - "email": "john.smith@example.org",
 - "role": "owner",
 - "access_level": "owner",
 - "active": true,
 - "created_at": "2023-06-28T16:40:26.897Z",
 - "last_login": "2023-06-28T16:40:26.897Z"
 
}Delete an existing workspace member.
If you are using a personal access token, you need to have an access level greater or equal to manager.
| member_id required  | integer  The id of the workspace member  | 
| send_email | boolean  Default:  true  Whether to notify the member about the removal.  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}Update an existing workspace member.
If you are using a personal access token, you need to have an access level greater or equal to manager.
| member_id required  | integer  The id of the workspace member  | 
| send_email | boolean  Default:  true  Whether to notify the member about the update.  | 
| role | string  Deprecated   Enum: owner manager member restricted    | 
| access_level | string  Enum: owner manager member restricted    | 
| active | boolean  Whether this member is activated on the workspace.  | 
{- "role": "owner",
 - "access_level": "owner",
 - "active": true
 
}{- "id": 3252,
 - "name": "John Smith",
 - "email": "john.smith@example.org",
 - "role": "owner",
 - "access_level": "owner",
 - "active": true,
 - "created_at": "2023-06-28T16:40:26.897Z",
 - "last_login": "2023-06-28T16:40:26.897Z"
 
}List teams of a workspace member. The response contains the list of teams and a pagination cursor to retrieve the next page.
The teams are sorted by id.
If you are using a personal access token, you need to have an access level superior or equal to manager except if the requested member is yourself.
| member_id required  | integer  The id of the workspace member  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string  Search teams based on their name and/or description.  | 
| is_global | boolean  Filter on/exclude the "All-incidents" team.  | 
[- {
- "id": 3252,
 - "name": "feature team A",
 - "description": "Description of my team",
 - "is_global": false,
 - "external_provider_id": "123-456-7890"
 
} 
]Return the permission a member has on a resource.
The permission is the higher value between the different accesses the member can have (direct access, member's teams accesses, and administrator access).
| member_id required  | integer  The id of the workspace member  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
{- "member_id": 1345,
 - "resource_id": 3252,
 - "resource_type": "secret-incidents",
 - "permission": "can_edit"
 
}This will create or update a direct access for the member on the resource.
If the member has higher permission from another source, they will take precedence over those you have given.
| member_id required  | integer  The id of the workspace member  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
| send_email | boolean  Default:  true  Whether to notify the member about the access.  | 
| permission | string  Enum: can_view can_edit full_access    | 
{- "permission": "can_edit"
 
}{- "member_id": 1345,
 - "resource_id": 3252,
 - "resource_type": "secret-incidents",
 - "permission": "can_edit"
 
}Revoke a member access to a resource.
This only works for direct accesses. If the member has only indirect access, a 404 is returned.
| member_id required  | integer  The id of the workspace member  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
| permission | string  Enum: can_view can_edit full_access    | 
{- "permission": "can_edit"
 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List secret incidents that a member has access to.
| member_id required  | integer  The id of the workspace member  | 
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
| feedback | boolean  Incidents with or without feedback.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]Retrieve a member's email settings
If you are using a personal access token, you need to have access level greater than member to view other member's settings
| member_id required  | integer  The id of the workspace member  | 
{- "private_issue_realtime": {
- "is_active": true,
 - "settings": {
- "vcs_author_only": true,
 - "issue_type": "all_issues"
 
} 
}, - "weekly_recap": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_access": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_feedback_submitted": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_ignored_with_valid_secret": {
- "is_active": true,
 - "settings": { }
 
}, - "health_checks": {
- "is_active": true,
 - "settings": { }
 
}, - "team_updates": {
- "is_active": true,
 - "settings": { }
 
}, - "historical_scan_completion": {
- "is_active": true,
 - "settings": { }
 
} 
}Update a member's email settings
If you are using a personal access token, you need to have access level greater than member to edit other member's settings
| member_id required  | integer  The id of the workspace member  | 
| send_email | boolean  Default:  true  Whether to notify the member about the update.  | 
object   | |
object   | |
object   | |
object   | |
object   | |
object   | |
object   | |
object   | 
{- "private_issue_realtime": {
- "is_active": true,
 - "settings": {
- "vcs_author_only": true,
 - "issue_type": "all_issues"
 
} 
}, - "weekly_recap": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_access": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_feedback_submitted": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_ignored_with_valid_secret": {
- "is_active": true,
 - "settings": { }
 
}, - "health_checks": {
- "is_active": true,
 - "settings": { }
 
}, - "team_updates": {
- "is_active": true,
 - "settings": { }
 
}, - "historical_scan_completion": {
- "is_active": true,
 - "settings": { }
 
} 
}{- "private_issue_realtime": {
- "is_active": true,
 - "settings": {
- "vcs_author_only": true,
 - "issue_type": "all_issues"
 
} 
}, - "weekly_recap": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_access": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_feedback_submitted": {
- "is_active": true,
 - "settings": { }
 
}, - "private_issue_ignored_with_valid_secret": {
- "is_active": true,
 - "settings": { }
 
}, - "health_checks": {
- "is_active": true,
 - "settings": { }
 
}, - "team_updates": {
- "is_active": true,
 - "settings": { }
 
}, - "historical_scan_completion": {
- "is_active": true,
 - "settings": { }
 
} 
}List team memberships of a workspace member. The response contains the list of team memberships and a pagination cursor to retrieve the next page.
The team memberships are sorted by id.
If you are using a personal access token, you need to have an access level superior or equal to manager except if the requested member is yourself.
| member_id required  | integer  The id of the workspace member  | 
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| team_id | integer  The id of a team to filter on  | 
[- {
- "id": 1234,
 - "member_id": 2489,
 - "team_id": 4285,
 - "is_team_leader": false,
 - "team_permission": "cannot_manage",
 - "incident_permission": "can_edit"
 
} 
]This endpoint allows you to list all pending invitations.
The response contains the list of invitations and a pagination cursor to retrieve the next page.
The invitations are sorted by id.
If you are using a personal access token, you need to have an access level superior or equal to member.
| cursor | string  Pagination cursor.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| search | string  Search invitations based on the email field.  | 
| ordering | string  Enum: date -date   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
[- {
- "id": 3252,
 - "email": "john.smith@example.org",
 - "role": "manager",
 - "access_level": "manager",
 - "date": "2019-08-22T14:15:22Z"
 
} 
]This endpoint allows you to send an invitation to a user.
If you are using a personal access token, you need to have an access level superior or equal to member.
| send_email | boolean  Whether to send an email to the invitee with a link to accept the invitation.  | 
| email required  | string  email of the user to invite.  | 
| role | string  Deprecated   Default:  member  Enum: manager member restricted   Use   | 
| access_level | string  Default:  member  Enum: manager member restricted    | 
{- "email": "eric@gitguardian.com",
 - "role": "manager",
 - "access_level": "manager"
 
}{- "id": 3252,
 - "email": "john.smith@example.org",
 - "role": "manager",
 - "access_level": "manager",
 - "date": "2019-08-22T14:15:22Z"
 
}Retrieve an existing invitation.
If you are using a personal access token, you need to have an access level superior or equal to member.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
{- "id": 3252,
 - "email": "john.smith@example.org",
 - "role": "manager",
 - "access_level": "manager",
 - "date": "2019-08-22T14:15:22Z"
 
}Delete an existing invitation.
If you are using a personal access token, you need to have an access level superior or equal to manager.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}Resend an existing invitation.
If you are using a personal access token, you need to have an access level superior or equal to manager.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
{ }{- "detail": "Email sent"
 
}Return the permission an invitation has on a resource.
If the invitation has an admin access level, it will be the highest possible value.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
{- "invitation_id": 1345,
 - "resource_id": 3252,
 - "resource_type": "secret-incidents",
 - "permission": "can_edit"
 
}This will create or update a direct access for the invitation on the resource.
If the invitation has an administrator access level, it will take precedence over the permission you have given.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
| permission | string  Enum: can_view can_edit full_access    | 
{- "permission": "can_edit"
 
}{- "invitation_id": 1345,
 - "resource_id": 3252,
 - "resource_type": "secret-incidents",
 - "permission": "can_edit"
 
}Revoke an invitation access to a resource.
This only works for direct accesses. If the access is from the administrator access level of the invitation, a 404 is returned.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
| resource_type required  | string  Value: secret-incidents   The kind of resource of the access  | 
| resource_id required  | integer  The id of the resource of the access  | 
| permission | string  Enum: can_view can_edit full_access    | 
{- "permission": "can_edit"
 
}{- "detail": "Invalid data.",
 - "extra": {
- "field_1": [
- "error_message_1",
 - "error_message_2"
 
], - "field_2": [
- "error_message_3",
 - "error_message_4"
 
], - "non_field_errors": [
- "error_message_5",
 - "error_message_6"
 
] 
} 
}List secret incidents that an invitation has access to.
| invitation_id required  | integer  The id of the invitation to retrieve  | 
| cursor | string  Pagination cursor.  | 
| page | integer  >= 0   Deprecated   Default:  1  Page number.  | 
| per_page | integer  [ 1 .. 100 ]   Default:  20  Number of items to list per page.  | 
| date_before | string <datetime>    Example:  date_before=2019-08-30T14:15:22Z Entries found before this date.  | 
| date_after | string <datetime>    Example:  date_after=2019-08-22T14:15:22Z Entries found after this date.  | 
| assignee_email | string   Example:  assignee_email=eric@gitguardian.com Incidents assigned to this email.  | 
| assignee_id | integer   Example:  assignee_id=4932 Incidents assigned to this user id.  | 
| status | string  Enum: IGNORED TRIGGERED ASSIGNED RESOLVED   Incidents with the following status.  | 
| severity | string  Enum: critical high medium low info unknown   Filter incidents by severity.  | 
| validity | string  Enum: valid invalid failed_to_check no_checker unknown   Secrets with the following validity.  | 
| tags | string  Enum: DEFAULT_BRANCH FROM_HISTORICAL_SCAN CHECK_RUN_SKIP_FALSE_POSITIVE CHECK_RUN_SKIP_LOW_RISK CHECK_RUN_SKIP_TEST_CRED PUBLIC PUBLICLY_EXPOSED PUBLICLY_LEAKED REGRESSION SENSITIVE_FILE TEST_FILE FALSE_POSITIVE VAULTED NONE    Example:  tags=FROM_HISTORICAL_SCAN,SENSITIVE_FILE Incidents with one of the following tags. Use   | 
| ordering | string  Enum: date -date resolved_at -resolved_at ignored_at -ignored_at   Sort the results by their field value. The default sort is ASC, DESC if the field is preceded by a '-'.  | 
| detector_group_name | string   Example:  detector_group_name=slackbot_token Incidents belonging to the specified detector group.  | 
| ignorer_id | integer   Example:  ignorer_id=4932 Incidents ignored by this user id.  | 
| ignorer_api_token_id | string <uuid>    Example:  ignorer_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents ignored by this API token id.  | 
| resolver_id | integer   Example:  resolver_id=4932 Incidents resolved by this user id.  | 
| resolver_api_token_id | string <uuid>    Example:  resolver_api_token_id=fdf075f9-1662-4cf1-9171-af50568158a8 Incidents resolved by this API token id.  | 
| feedback | boolean  Incidents with or without feedback.  | 
[- {
- "id": 3759,
 - "date": "2019-08-22T14:15:22Z",
 - "detector": {
- "name": "slack_bot_token",
 - "display_name": "Slack Bot Token",
 - "nature": "specific",
 - "family": "apikey",
 - "detector_group_name": "slackbot_token",
 - "detector_group_display_name": "Slack Bot Token"
 
}, - "secret_id": 1,
 - "secret_hash": "Ri9FjVgdOlPnBmujoxP4XPJcbe82BhJXB/SAngijw/juCISuOMgPzYhV28m6OG24",
 - "hmsl_hash": "05975add34ddc9a38a0fb57c7d3e676ffed57080516fc16bf8d8f14308fedb86",
 - "regression": false,
 - "status": "IGNORED",
 - "assignee_id": 309,
 - "assignee_email": "eric@gitguardian.com",
 - "occurrences_count": 4,
 - "secret_presence": {
- "files_requiring_code_fix": 1,
 - "files_pending_merge": 1,
 - "files_fixed": 1,
 - "outside_vcs": 1,
 - "removed_outside_vcs": 0,
 - "in_vcs": 3,
 - "removed_in_vcs": 0
 
}, - "ignore_reason": "test_credential",
 - "triggered_at": "2019-05-12T09:37:49Z",
 - "ignored_at": "2019-08-24T14:15:22Z",
 - "ignorer_id": 309,
 - "ignorer_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "resolver_id": 395,
 - "resolver_api_token_id": "fdf075f9-1662-4cf1-9171-af50568158a8",
 - "secret_revoked": false,
 - "severity": "high",
 - "validity": "valid",
 - "resolved_at": null,
 - "tags": [
- "FROM_HISTORICAL_SCAN",
 - "SENSITIVE_FILE"
 
], - "custom_tags": [
- {
- "id": "d45a123f-b15d-4fea-abf6-ff2a8479de5b",
 - "key": "env",
 - "value": "prod"
 
} 
], - "feedback_list": [
- {
- "created_at": "2021-05-20T12:40:55.662949Z",
 - "updated_at": "2021-05-20T12:40:55.662949Z",
 - "member_id": 42,
 - "email": "eric@gitguardian.com",
 - "answers": [
- {
- "type": "boolean",
 - "field_ref": "actual_secret_yes_no",
 - "field_label": "Is it an actual secret?",
 - "boolean": true
 
} 
] 
} 
], - "occurrences": null
 
} 
]