Security — entry 013 of 30

GitGuardian

Verified Sep 2026

GitGuardian continuously scans source code, commit history, and CI/CD pipelines for hardcoded secrets — API keys, database credentials, private certificates — before they leak into production or a public repository. The public API lets teams pull incidents, drive remediation workflows, and wire secret detection into their own tooling, authenticated with a bearer token issued from a workspace API key. A free tier covers small teams, with paid Business and Enterprise plans unlocking higher scan volume and governance controls.

secrets-detectioncode-securitydevsecopscompliance
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSDisabledBrowser calls need a server-side proxy.
PricingFreemiumA usable free tier exists, with paid plans for more volume.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score81out of 100
Authentication15/25API key required
Pricing17/20Freemium tier available
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 81 on greatapis.com
<a href="https://greatapis.com/api/gitguardian/"><img src="https://greatapis.com/badge/gitguardian.svg" alt="Scored 81 on greatapis.com"></a>

Auth quickstart

  1. Get a key at the provider
  2. Send it on every request as a headerAuthorization: Token <key>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.gitguardian.comhttps://api.eu1.gitguardian.com
Auth
api-key
API Tokens7

Manage API tokens.

GET/v1/api_tokensList API tokens.
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
statusqueryno—
member_idquerynointeger
creator_idquerynointeger
scopesquerynostring
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200API tokens list—
400Invalid data—
401Invalid API key—
POST/v1/api_tokensCreate an API token.
Request body

application/json (required)

Responses
StatusDescriptionSchema
201API token created—
400Invalid data—
401Invalid API key—
403Permission denied—
409Another token is already being created for this member or workspace. The call can be retried after a few seconds. —
GET/v1/api_tokens/selfRetrieve details of the current API token.
Responses
StatusDescriptionSchema
200Current token details—
401Invalid API key—
DELETE/v1/api_tokens/selfRevoke the current API token.
Responses
StatusDescriptionSchema
204Token revocation confirmation—
401Invalid API key—
GET/v1/api_tokens/{token_id}Retrieve details of an API token.
Parameters
NameInRequiredType
token_idpathyesstring
Responses
StatusDescriptionSchema
200Current token details—
401Invalid API key—
404API token not found—
DELETE/v1/api_tokens/{token_id}Revoke an API token.
Parameters
NameInRequiredType
token_idpathyesstring
Responses
StatusDescriptionSchema
204Token revocation confirmation—
401Invalid API key—
404API token not found—
POST/v1/auth/jwtCreate a JSON Web Token.
Request body

application/json

Responses
StatusDescriptionSchema
200Created JWT—
400Invalid data—
401Invalid API key—
Internal Secret Locations2

Retrieve the files that still hold a secret on the default branch of your sources, to know where the code has to change.

GET/v1/incidents/secrets/{incident_id}/locationsList locations of a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
sourcequerynostring
activequerynoboolean
number_of_mentions_minquerynointeger
number_of_mentions_maxquerynointeger
code_fix_request_statusquerynostring
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200Secret Incident Location List—
400Invalid data—
401Invalid API key—
403Permission denied—
503API under maintenance—
GET/v1/sources/{source_id}/locationsList locations of a source
Parameters
NameInRequiredType
source_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
activequerynoboolean
number_of_mentions_minquerynointeger
number_of_mentions_maxquerynointeger
code_fix_request_statusquerynostring
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200Source Location List—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource not found—
503API under maintenance—
Secret Detectors2

Retrieve details on detectors used for secret detection.

GET/v1/secret_detectorsList secret detectors
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
is_activequerynoboolean
typequeryno—
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200List of Secret Detectors—
400Invalid data—
401Invalid API key—
403Permission denied—
503API under maintenance—
GET/v1/secret_detectors/{detector_name}Get a secret detector
Parameters
NameInRequiredType
detector_namepathyesstring
Responses
StatusDescriptionSchema
200Secret Detector—
401Invalid API key—
403Permission denied—
404Secret Detector not found—
503API under maintenance—
Severity Rules1

List the severity rules that determine how incident severity is automatically assigned.

GET/v1/severity-rulesList severity rules
Responses
StatusDescriptionSchema
200List of Severity Rules—
401Invalid API key—
403Permission denied—
503API under maintenance—
Secrets3

Access information about individual secrets detected by GitGuardian.

GET/v1/secrets/{secret_id}/validityGet the validity of a secret
Parameters
NameInRequiredType
secret_idpathyesinteger
Responses
StatusDescriptionSchema
200The secret validity and validity override.—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
POST/v1/secrets/{secret_id}/validityOverride the validity of a secret
Parameters
NameInRequiredType
secret_idpathyesinteger
Request body

application/json (required)

Responses
StatusDescriptionSchema
200The validity override was set.—
400Invalid data—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
DELETE/v1/secrets/{secret_id}/validityRemove the validity override of a secret
Parameters
NameInRequiredType
secret_idpathyesinteger
Responses
StatusDescriptionSchema
204The validity override was removed.—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
Code Fixing1

Create automated code fix requests to remediate detected secrets via pull requests.

POST/v1/code-fix-requestsCreate code fix requests
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Code fix request(s) created successfully—
400Bad Request - Invalid input or business rule violation—
401Invalid API key—
403Forbidden - Insufficient permissions—
404Not Found - API key not configured (on-prem only)—
503API under maintenance—
Invitations9

Manage workspace invitations.

GET/v1/invitationsList invitations
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200List invitations—
400Invalid data—
401Invalid API key—
403Forbidden Call—
503API under maintenance—
POST/v1/invitationsCreate an invitation
Parameters
NameInRequiredType
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
201Invitation sent—
400Invalid data—
401Invalid API key—
403Forbidden Call—
409Data conflict—
503API under maintenance—
GET/v1/invitations/{invitation_id}Retrieve an invitation
Parameters
NameInRequiredType
invitation_idpathyesinteger
Responses
StatusDescriptionSchema
200Invitation details.—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Invitation not found—
503API under maintenance—
DELETE/v1/invitations/{invitation_id}Delete an invitation
Parameters
NameInRequiredType
invitation_idpathyesinteger
Responses
StatusDescriptionSchema
204The invitation was deleted successfully.—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Invitation not found—
503API under maintenance—
POST/v1/invitations/{invitation_id}/resendResend an invitation
Parameters
NameInRequiredType
invitation_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Invitation sent—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Invitation not found—
429Too many requests—
503API under maintenance—
GET/v1/invitations/{invitation_id}/secret-incidentsList secret incidents an invitation has access to
Parameters
NameInRequiredType
invitation_idpathyesinteger
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
feedbackquerynoboolean
only_on_provider_archived_sourcesquerynoboolean
Responses
StatusDescriptionSchema
200Secret Incident List—
400Invalid data—
401Invalid API key—
403Permission denied—
404Invitation not found—
503API under maintenance—
GET/v1/invitations/{invitation_id}/{resource_type}/{resource_id}Check invitation permission for a resource
Parameters
NameInRequiredType
invitation_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Responses
StatusDescriptionSchema
200Invitation Resource access details—
401Invalid API key—
403Permission denied—
404Resource or Invitation not found—
503API under maintenance—
PUT/v1/invitations/{invitation_id}/{resource_type}/{resource_id}Give an invitation access to a resource
Parameters
NameInRequiredType
invitation_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Request body

application/json (required)

Responses
StatusDescriptionSchema
200The access was updated successfully.—
201The access was granted successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource or Invitation not found—
503API under maintenance—
DELETE/v1/invitations/{invitation_id}/{resource_type}/{resource_id}Revoke an invitation's access to a resource
Parameters
NameInRequiredType
invitation_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Request body

application/json (required)

Responses
StatusDescriptionSchema
204The access was revoked successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource or Invitation not found—
503API under maintenance—
Sources10

Retrieve details on sources known by GitGuardian.

GET/v1/scans/{scan_id}/live-progressRetrieve a scan's live progress
Parameters
NameInRequiredType
scan_idpathyesstring
Responses
StatusDescriptionSchema
200Scan live progress—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Scan not found—
503API under maintenance—
GET/v1/sourcesList sources
Parameters
NameInRequiredType
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
searchquerynostring
last_scan_statusqueryno—
healthqueryno—
typequerynostring
orderingquerynostring
visibilityquerynostring
external_idquerynostring
source_criticalityquerynostring
monitoredquerynoboolean
provider_metadata_archivedquerynoboolean
team_idquerynointeger
monitoring_status__inquerynostring
monitoring_status__ninquerynostring
Responses
StatusDescriptionSchema
200Source List—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/sources/custom-sourcesList custom sources
Parameters
NameInRequiredType
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200Custom Source List—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/sources/custom-sourcesCreate custom source
Request body

application/json

Responses
StatusDescriptionSchema
201Custom source created successfully—
400Invalid data—
401Invalid API key—
403Forbidden—
503API under maintenance—
GET/v1/sources/custom-sources/{custom_source_id}Get a custom source
Parameters
NameInRequiredType
custom_source_idpathyesstring
Responses
StatusDescriptionSchema
200Custom source detail—
400Invalid data—
401Invalid API key—
404Resource not found—
503API under maintenance—
PATCH/v1/sources/custom-sources/{custom_source_id}Update a custom source
Parameters
NameInRequiredType
custom_source_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200The custom source was updated successfully—
400Invalid data—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
DELETE/v1/sources/custom-sources/{custom_source_id}Delete a custom source
Parameters
NameInRequiredType
custom_source_idpathyesstring
Responses
StatusDescriptionSchema
204The custom source was deleted successfully—
400Invalid data—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
POST/v1/sources/scansTrigger scans on sources
Request body

application/json (required)

Responses
StatusDescriptionSchema
202Accepted – scans have been queued.—
400Invalid data—
401Invalid API key—
403Forbidden—
503API under maintenance—
GET/v1/sources/{source_id}Retrieve a source
Parameters
NameInRequiredType
source_idpathyesinteger
Responses
StatusDescriptionSchema
200Source detail—
400Invalid data—
401Invalid API key—
503API under maintenance—
PATCH/v1/sources/{source_id}Update a source
Parameters
NameInRequiredType
source_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200The source was updated successfully—
400Invalid data—
401Invalid API key—
503API under maintenance—
Members12

Retrieve details about workspace members.

GET/v1/membersList members
Parameters
NameInRequiredType
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
rolequeryno—
access_levelqueryno—
activequerynoboolean
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200List members—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/members/{member_id}Retrieve a member
Parameters
NameInRequiredType
member_idpathyesinteger
Responses
StatusDescriptionSchema
200Workspace member details—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Member not found—
503API under maintenance—
PATCH/v1/members/{member_id}Update a member
Parameters
NameInRequiredType
member_idpathyesinteger
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
200Workspace member details—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Member not found—
503API under maintenance—
DELETE/v1/members/{member_id}Delete a member
Parameters
NameInRequiredType
member_idpathyesinteger
send_emailquerynoboolean
Responses
StatusDescriptionSchema
204The member was deleted successfully—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Member not found—
503API under maintenance—
GET/v1/members/{member_id}/email_notificationsRetrieve a member's email settings
Parameters
NameInRequiredType
member_idpathyesinteger
Responses
StatusDescriptionSchema
200Member notification settings—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Member not found—
503API under maintenance—
PATCH/v1/members/{member_id}/email_notificationsUpdate a member's email settings
Parameters
NameInRequiredType
member_idpathyesinteger
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
200Member notification settings—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Member not found—
503API under maintenance—
GET/v1/members/{member_id}/secret-incidentsList secret incidents a member has access to
Parameters
NameInRequiredType
member_idpathyesinteger
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
feedbackquerynoboolean
only_on_provider_archived_sourcesquerynoboolean
Responses
StatusDescriptionSchema
200Secret Incident List—
400Invalid data—
401Invalid API key—
403Permission denied—
404Member not found—
503API under maintenance—
GET/v1/members/{member_id}/team_membershipsList team memberships of a member
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
member_idpathyesinteger
team_idquerynointeger
Responses
StatusDescriptionSchema
200Team membership list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
GET/v1/members/{member_id}/teamsList teams of a member
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
searchquerynostring
is_globalquerynoboolean
member_idpathyesinteger
Responses
StatusDescriptionSchema
200List teams—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Not found—
503API under maintenance—
GET/v1/members/{member_id}/{resource_type}/{resource_id}Check member permission for a resource
Parameters
NameInRequiredType
member_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Responses
StatusDescriptionSchema
200Member resource access details—
401Invalid API key—
403Permission denied—
404Resource or Member not found—
503API under maintenance—
PUT/v1/members/{member_id}/{resource_type}/{resource_id}Give a member access to a resource
Parameters
NameInRequiredType
member_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
send_emailquerynoboolean
Request body

application/json (required)

Responses
StatusDescriptionSchema
200The access was updated successfully.—
201The access was granted successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource or Member not found—
503API under maintenance—
DELETE/v1/members/{member_id}/{resource_type}/{resource_id}Revoke a member's access to a resource
Parameters
NameInRequiredType
member_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Request body

application/json (required)

Responses
StatusDescriptionSchema
204The access was revoked successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource or Member not found—
503API under maintenance—
Scan Methods3

Use GitGuardian's brain at your leisure. Scanning API allows you to scan any content you want using GitGuardian's secrets detection algorithms.

POST/v1/multiscanMultiple content scan
Request body

application/json

Responses
StatusDescriptionSchema
200Successful Scan—
400Invalid data—
401Invalid API key—
403Quota limit reached—
503API under maintenance—
POST/v1/scanContent scan
Request body

application/json

Responses
StatusDescriptionSchema
200Successful Scan—
400Invalid data—
401Invalid API key—
403Quota limit reached—
503API under maintenance—
POST/v1/scan/create-incidentsScan content and create incidents
Request body

application/json

Responses
StatusDescriptionSchema
200Successful Scan and Incident Creation—
400Bad Request—
401Invalid API key—
403Forbidden—
503API under maintenance—
Quota1

Retrieve details about quota usage.

GET/v1/quotasQuota overview
Responses
StatusDescriptionSchema
200Quota Overview—
401Invalid API key—
503API under maintenance—
Status1

Check the status of the API and the overall system health.

GET/v1/healthAPI Health
Responses
StatusDescriptionSchema
200API on and key valid response—
401Invalid API key—
503API under maintenance—
Teams9

Manage teams.

GET/v1/teamsList teams
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
is_globalquerynoboolean
searchquerynostring
linked_to_an_external_providerquerynoboolean
Responses
StatusDescriptionSchema
200List teams—
400Invalid data—
401Invalid API key—
403Forbidden Call—
503API under maintenance—
POST/v1/teamsCreate a team
Request body

application/json

Responses
StatusDescriptionSchema
201Team created—
400Invalid data—
401Invalid API key—
403Forbidden Call—
409Data conflict—
503API under maintenance—
GET/v1/teams/{team_id}Retrieve a team
Parameters
NameInRequiredType
team_idpathyesinteger
Responses
StatusDescriptionSchema
200Team details—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Team not found—
503API under maintenance—
PATCH/v1/teams/{team_id}Update a team
Parameters
NameInRequiredType
team_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200The team was updated successfully.—
400Invalid data—
401Invalid API key—
503API under maintenance—
DELETE/v1/teams/{team_id}Delete a team
Parameters
NameInRequiredType
team_idpathyesinteger
Responses
StatusDescriptionSchema
204The team was deleted successfully.—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Team not found—
503API under maintenance—
GET/v1/teams/{team_id}/secret-incidentsList secret incidents a team has access to
Parameters
NameInRequiredType
team_idpathyesinteger
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
custom_tagsquerynostring
custom_tag_keyquerynostring
custom_tag_valuequerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
feedbackquerynoboolean
only_on_provider_archived_sourcesquerynoboolean
Responses
StatusDescriptionSchema
200Secret Incident List—
400Invalid data—
401Invalid API key—
403Permission denied—
404Team not found—
503API under maintenance—
GET/v1/teams/{team_id}/{resource_type}/{resource_id}Check team permission for a resource
Parameters
NameInRequiredType
team_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Responses
StatusDescriptionSchema
200Team Secret resource access details—
401Invalid API key—
403Permission denied—
404Resource or Team not found—
503API under maintenance—
PUT/v1/teams/{team_id}/{resource_type}/{resource_id}Give a team access to a resource
Parameters
NameInRequiredType
team_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
send_emailquerynoboolean
Request body

application/json (required)

Responses
StatusDescriptionSchema
200The access was updated successfully.—
201The access was granted successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource or Team not found—
503API under maintenance—
DELETE/v1/teams/{team_id}/{resource_type}/{resource_id}Revoke a team's access to a resource
Parameters
NameInRequiredType
team_idpathyesinteger
resource_typepathyesstring
resource_idpathyesinteger
Request body

application/json (required)

Responses
StatusDescriptionSchema
204The access was revoked successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource or Team not found.—
503API under maintenance—
Team Invitations4

Manage team invitations.

GET/v1/teams/{team_id}/team_invitationsList team invitations
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
team_idpathyesinteger
invitation_idquerynointeger
is_team_leaderquerynoboolean
team_permissionquerynostring
incident_permissionquerynostring
Responses
StatusDescriptionSchema
200Team invitation list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
POST/v1/teams/{team_id}/team_invitationsCreate a team invitation
Parameters
NameInRequiredType
team_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
201Team invitation created—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
409Data conflict—
503API under maintenance—
PATCH/v1/teams/{team_id}/team_invitations/{team_invitation_id}Update a team invitation
Parameters
NameInRequiredType
team_idpathyesinteger
team_invitation_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Team invitation was updated successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
DELETE/v1/teams/{team_id}/team_invitations/{team_invitation_id}Delete a team invitation
Parameters
NameInRequiredType
team_idpathyesinteger
team_invitation_idpathyesinteger
Responses
StatusDescriptionSchema
204Team invitation was deleted successfully.—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
Team Memberships4

Add or remove members from teams, or update their permissions.

GET/v1/teams/{team_id}/team_membershipsList team memberships
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
team_idpathyesinteger
is_team_leaderquerynoboolean
team_permissionquerynostring
incident_permissionquerynostring
member_idquerynonumber
Responses
StatusDescriptionSchema
200Team membership list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
POST/v1/teams/{team_id}/team_membershipsAdd a member to a team
Parameters
NameInRequiredType
team_idpathyesinteger
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
201Team membership created—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
409Data conflict—
503API under maintenance—
PATCH/v1/teams/{team_id}/team_memberships/{team_membership_id}Update a team membership
Parameters
NameInRequiredType
team_idpathyesinteger
team_membership_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Team membership was updated successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
DELETE/v1/teams/{team_id}/team_memberships/{team_membership_id}Remove a member from a team
Parameters
NameInRequiredType
team_idpathyesinteger
team_membership_idpathyesinteger
send_emailquerynoboolean
Responses
StatusDescriptionSchema
204Team membership was deleted successfully.—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
Health Checks3

Monitor the health of integration instances.

GET/v1/health-checksList health checks
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
typequerynostring
statusquerynostring
started_at_afterquerynostring
started_at_beforequerynostring
Responses
StatusDescriptionSchema
200Health check list—
400Invalid data—
401Invalid API key—
403Permission denied—
503API under maintenance—
GET/v1/health-checks/{type}/{instance_id}List health check history for an instance
Parameters
NameInRequiredType
typepathyesstring
instance_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
statusquerynostring
started_at_afterquerynostring
started_at_beforequerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200Health check instance history—
400Invalid data—
401Invalid API key—
403Permission denied—
404Resource not found—
503API under maintenance—
POST/v1/health-checks/{type}/{instance_id}/triggerTrigger a health check
Parameters
NameInRequiredType
typepathyesstring
instance_idpathyesinteger
Responses
StatusDescriptionSchema
200Health check enqueued successfully—
401Invalid API key—
403Permission denied—
404Resource not found—
429Health check triggered too recently—
503API under maintenance—
Honeytokens11

Manage honeytokens.

GET/v1/honeytokensList honeytokens
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
statusquerynostring
typequerynostring
searchquerynostring
creator_idquerynonumber
revoker_idquerynonumber
creator_api_token_idquerynostring
revoker_api_token_idquerynostring
tagsquerynostring
orderingquerynostring
show_tokenquerynoboolean
X-Privacy-Modeheadernostring
Responses
StatusDescriptionSchema
200List honeytokens—
400Invalid data—
401Invalid API key—
403Forbidden Call—
503API under maintenance—
POST/v1/honeytokensCreate a honeytoken
Request body

application/json

Responses
StatusDescriptionSchema
201Honeytoken created—
400Invalid data—
401Invalid API key—
403Forbidden Call—
409Data conflict—
503API under maintenance—
GET/v1/honeytokens/endpoint-deploymentsList a machine/user's honeytoken deployments (read-only)
Parameters
NameInRequiredType
machine_idqueryyesstring
usernamequeryyesstring
Responses
StatusDescriptionSchema
200The live honeytoken placements for this machine/user (possibly empty).—
400Invalid data—
401Invalid API key—
403Forbidden Call—
503API under maintenance—
POST/v1/honeytokens/endpoint-deploymentsReconcile (plant) honeytokens for a machine/user
Request body

application/json

Responses
StatusDescriptionSchema
200The desired honeytoken placements for this machine/user.—
400Invalid data—
401Invalid API key—
403Forbidden Call—
409The request carried an explicit `config` that conflicts with an already-active deployment for the same `(machine, user, method)`. Revoke it before changing the config. —
503API under maintenance—
PATCH/v1/honeytokens/endpoint-deployments/{id}Confirm a honeytoken endpoint deployment
Parameters
NameInRequiredType
idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Deployment updated—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Resource not found—
503API under maintenance—
POST/v1/honeytokens/prefixesBulk prefix lookup for honeytoken HMSL hashes
Request body

application/json (required)

Responses
StatusDescriptionSchema
200Matching honeytoken hints—
400Invalid request (bad prefix format or too many prefixes)—
401Invalid API key—
403Forbidden—
POST/v1/honeytokens/with-contextCreate a honeytoken within a context
Request body

application/json

Responses
StatusDescriptionSchema
200Honeytoken within a context created—
400Invalid data—
401Invalid API key—
403Forbidden Call—
409Data conflict—
503API under maintenance—
GET/v1/honeytokens/{honeytoken_id}Retrieve a honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
X-Privacy-Modeheadernostring
show_tokenquerynoboolean
Responses
StatusDescriptionSchema
200Honeytoken details—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404Honeytoken not found—
503API under maintenance—
PATCH/v1/honeytokens/{honeytoken_id}Update a honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
X-Privacy-Modeheadernostring
Request body

application/json

Responses
StatusDescriptionSchema
200The honeytoken was updated successfully.—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/honeytokens/{honeytoken_id}/resetReset the honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
X-Privacy-Modeheadernostring
Responses
StatusDescriptionSchema
200Honeytoken was successfully revoked.—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/honeytokens/{honeytoken_id}/revokeRevoke the honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
X-Privacy-Modeheadernostring
Responses
StatusDescriptionSchema
200Honeytoken was successfully revoked.—
400Invalid data—
401Invalid API key—
503API under maintenance—
Honeytoken Notes4

Manage notes on honeytokens.

GET/v1/honeytokens/{honeytoken_id}/notesList notes on an honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
member_idquerynointeger
api_token_idquerynostring
searchquerynostring
Responses
StatusDescriptionSchema
200Honeytoken Note List—
400Invalid data—
401Invalid API key—
404Honeytoken not found—
503API under maintenance—
POST/v1/honeytokens/{honeytoken_id}/notesCreate an honeytoken note
Parameters
NameInRequiredType
honeytoken_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
201The note was created successfully.—
400Invalid data—
401Invalid API key—
404Honeytoken not found.—
503API under maintenance—
PATCH/v1/honeytokens/{honeytoken_id}/notes/{note_id}Update a honeytoken note
Parameters
NameInRequiredType
honeytoken_idpathyesstring
note_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200The note was updated successfully.—
400Invalid data—
401Invalid API key—
403You cannot update an Honeytoken Note you that was not created by the current API key. —
404Honeytoken or Honeytoken Note not found.—
503API under maintenance—
DELETE/v1/honeytokens/{honeytoken_id}/notes/{note_id}Delete a honeytoken note
Parameters
NameInRequiredType
honeytoken_idpathyesstring
note_idpathyesstring
Responses
StatusDescriptionSchema
204The note was deleted successfully.—
400Invalid data—
401Invalid API key—
403You cannot delete an Honeytoken Note you that was not created by the current API key. —
404Honeytoken or Honeytoken Note not found.—
503API under maintenance—
Honeytokens Events1

Manage events on honeytokens.

GET/v1/honeytokens_eventsList all honeytokens events
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
honeytoken_idquerynostring
statusquerynostring
ip_addressquerynostring
tagsquerynostring
searchquerynostring
X-Privacy-Modeheadernostring
Responses
StatusDescriptionSchema
200Honeytokens Events List—
400Invalid data—
401Invalid API key—
503API under maintenance—
Honeytoken Sources1

Manage sources on honeytokens.

GET/v1/honeytokens/{honeytoken_id}/sourcesList sources on an honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
provider_metadata_archivedquerynoboolean
Responses
StatusDescriptionSchema
200Honeytoken Sources List—
400Invalid data—
401Invalid API key—
404Honeytoken not found—
503API under maintenance—
IP Allowlist5

Manage the IP allowlist for workspace access. Only available on SaaS.

GET/v1/ip-allowlistList IP allowlist rules
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200List IP allowlist rules—
400Invalid data—
401Invalid API key—
403Forbidden Call—
503API under maintenance—
POST/v1/ip-allowlistCreate an IP allowlist rule
Request body

application/json

Responses
StatusDescriptionSchema
201IP allowlist rule created—
400Invalid data—
401Invalid API key—
403Forbidden Call—
409Data conflict—
503API under maintenance—
GET/v1/ip-allowlist/{ip_allowlist_rule_id}Retrieve an IP allowlist rule
Parameters
NameInRequiredType
ip_allowlist_rule_idpathyesstring
Responses
StatusDescriptionSchema
200IP allowlist rule details—
400Invalid data—
401Invalid API key—
403Forbidden Call—
404IP allowlist rule not found—
503API under maintenance—
PATCH/v1/ip-allowlist/{ip_allowlist_rule_id}Update an IP allowlist rule
Parameters
NameInRequiredType
ip_allowlist_rule_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200The IP allowlist rule was updated successfully.—
400Invalid data—
401Invalid API key—
503API under maintenance—
DELETE/v1/ip-allowlist/{ip_allowlist_rule_id}Delete an IP allowlist rule
Parameters
NameInRequiredType
ip_allowlist_rule_idpathyesstring
Responses
StatusDescriptionSchema
204The IP allowlist rule was deleted successfully.—
401Invalid API key—
403Forbidden Call—
404Label not found—
503API under maintenance—
IPs1

Get GitGuardian's IP addresses for IP allowlisting. Use this endpoint to retrieve GitGuardian's egress IP addresses in CIDR notation. Allowlist these IPs in your firewalls, network security groups, or other access control systems to enable GitGuardian services to access your resources.

GET/v1/ipsList GitGuardian IP addresses
Responses
StatusDescriptionSchema
200Successfully returned IP addresses (or empty list if not configured)—
SCIM Users6

System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of user identity information between identity domains, or IT systems.

GET/v1/scim/v2/UsersList members (SCIM)
Parameters
NameInRequiredType
filterquerynostring
startIndexquerynointeger
countquerynointeger
Responses
StatusDescriptionSchema
200Member List—
400Bad Request—
403Forbidden—
POST/v1/scim/v2/UsersCreate a member (SCIM)
Request body

application/scim+json

Responses
StatusDescriptionSchema
201Member Created—
400Bad Request—
403Forbidden—
409Conflict—
GET/v1/scim/v2/Users/{id}Detail of a member (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Member Detail—
403Forbidden—
404Not Found—
PUT/v1/scim/v2/Users/{id}Update of a member (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Request body

application/scim+json

Responses
StatusDescriptionSchema
200Member Detail—
400Bad Request—
403Forbidden—
404Bad Request—
PATCH/v1/scim/v2/Users/{id}Update (partial) of a member (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Request body

application/scim+json

Responses
StatusDescriptionSchema
200Member Detail—
400Bad Request—
403Forbidden—
404Bad Request—
DELETE/v1/scim/v2/Users/{id}Delete a member (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
204No Content—
400Bad Request—
404Not Found—
SCIM Groups6

System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of group identity information between identity domains, or IT systems.

GET/v1/scim/v2/GroupsList groups (SCIM)
Parameters
NameInRequiredType
filterquerynostring
startIndexquerynointeger
countquerynointeger
Responses
StatusDescriptionSchema
200A list of groups—
400Bad Request—
403Forbidden—
POST/v1/scim/v2/GroupsCreate a group (SCIM)
Request body

application/scim+json

Responses
StatusDescriptionSchema
201Group Created—
400Bad Request—
403Forbidden—
409Conflict—
GET/v1/scim/v2/Groups/{id}Detail of a group (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200Group Detail—
403Forbidden—
404Not Found—
PUT/v1/scim/v2/Groups/{id}Update a group (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Request body

application/scim+json

Responses
StatusDescriptionSchema
200Group Detail—
400Bad Request—
403Forbidden—
404Bad Request—
PATCH/v1/scim/v2/Groups/{id}Partially update a group (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Request body

application/scim+json

Responses
StatusDescriptionSchema
200Group Detail—
400Bad Request—
403Forbidden—
404Bad Request—
DELETE/v1/scim/v2/Groups/{id}Delete a group (SCIM)
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
204No Content—
400Bad Request—
404Not Found—
SCIM Metadata5

System for Cross-domain Identity Management (SCIM) is a standard for automating the exchange of user identity information between identity domains, or IT systems.

GET/v1/scim/v2/ResourceTypesList Resource Types (SCIM)
Responses
StatusDescriptionSchema
200List of Resource Types—
403Forbidden—
GET/v1/scim/v2/ResourceTypes/{name}Resource Types (SCIM)
Parameters
NameInRequiredType
namepathyesstring
Responses
StatusDescriptionSchema
200Resource Type (SCIM)—
403Forbidden—
404Not Found—
GET/v1/scim/v2/SchemasList Schemas (SCIM)
Responses
StatusDescriptionSchema
200List of SCIM Schemas—
403Forbidden—
GET/v1/scim/v2/Schemas/{name}Schema (SCIM)
Parameters
NameInRequiredType
namepathyesstring
Responses
StatusDescriptionSchema
200SCIM Schema—
403Forbidden—
404Not Found—
GET/v1/scim/v2/ServiceProviderConfigService Provider Configuration (SCIM)
Responses
StatusDescriptionSchema
200Service Provider Configuration (SCIM)—
403Forbidden—
Custom Tags8

Manage custom tags. Linking a custom tag to resources occurs at the resource endpoints themselves. For example, you can apply a custom tag to an incident [here](#tag/Secret-Incidents/operation/update-secret-incident) or to a honeytoken [here](#tag/Honeytokens/operation/update-honeytoken).

GET/v1/custom_tagsList custom tags
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
keyquerynostring
Responses
StatusDescriptionSchema
200Custom tags list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
POST/v1/custom_tagsCreate a custom tag
Request body

application/json (required)

Responses
StatusDescriptionSchema
201The custom tag was created successfully—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
PATCH/v1/custom_tagsUpdate custom tags key
Parameters
NameInRequiredType
old_keyqueryyesstring
new_keyqueryyesstring
Responses
StatusDescriptionSchema
204Custom tags updated with the new key—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
DELETE/v1/custom_tagsDelete a custom tags key
Parameters
NameInRequiredType
keyqueryyesstring
Responses
StatusDescriptionSchema
204Custom tags using the given key were successfully deleted—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
GET/v1/custom_tags/{custom_tag_id}Retrieve a custom tag
Parameters
NameInRequiredType
custom_tag_idpathyesstring
Responses
StatusDescriptionSchema
200Custom tag was found successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
PUT/v1/custom_tags/{custom_tag_id}Full Update of a Custom Tag
Parameters
NameInRequiredType
custom_tag_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Custom tag was updated successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
PATCH/v1/custom_tags/{custom_tag_id}Partial update of a Custom Tag
Parameters
NameInRequiredType
custom_tag_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Custom tag was updated successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
DELETE/v1/custom_tags/{custom_tag_id}Deletion of a custom tag
Parameters
NameInRequiredType
custom_tag_idpathyesstring
Responses
StatusDescriptionSchema
204Custom tag was deleted successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
Developer1

Retrieve developers from the public perimeter.

GET/v1/public-perimeter/developersList developers
Parameters
NameInRequiredType
searchquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200Developers List—
400Invalid data—
401Invalid API key—
503API under maintenance—
OAuth25

OAuth 2.0 / OpenID Connect endpoints used to integrate third-party clients (such as MCP clients) with GitGuardian. The supported flow is **Authorization Code + PKCE** ([RFC 7636](https://www.rfc-editor.org/rfc/rfc7636)). The authorization endpoint itself is served by the GitGuardian dashboard; this group documents the API-side endpoints: - **[Token endpoint](#operation/public-oauth-token)** — exchanges an authorization code for a personal access token ([RFC 6749](https://www.rfc-editor.org/rfc/rfc6749)). - **[Dynamic Client Registration](#operation/public-oauth-register)** — lets clients register themselves ([RFC 7591](https://www.rfc-editor.org/rfc/rfc7591)). - **[Authorization Server Metadata](#operation/public-oauth-authorization-server-metadata)** — discovery document ([RFC 8414](https://www.rfc-editor.org/rfc/rfc8414)). - **[OpenID Connect Discovery](#operation/public-oidc-well-known-configuration)** — OIDC discovery document. - **[JWKS](#operation/public-jwks)** — public keys used to validate issued JWTs ([RFC 7517](https://www.rfc-editor.org/rfc/rfc7517)).

GET/.well-known/oauth-authorization-serverOAuth 2.0 Authorization Server Metadata.
Responses
StatusDescriptionSchema
200Authorization server metadata document.—
GET/.well-known/openid-configurationOpenID Connect discovery document.
Responses
StatusDescriptionSchema
200OIDC discovery document.—
GET/v1/auth/jwksList public keys used to sign JWTs.
Responses
StatusDescriptionSchema
200JSON Web Key Set.—
500No signing keys are configured on this instance.—
POST/v1/oauth/registerDynamically register an OAuth 2.0 client.
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Client successfully registered. ([RFC 7591 §3.2.1](https://www.rfc-editor.org/rfc/rfc7591#section-3.2.1)) —
400Invalid client metadata. ([RFC 7591 §3.2.2](https://www.rfc-editor.org/rfc/rfc7591#section-3.2.2)) —
404Dynamic Client Registration is disabled for this workspace. —
429Rate limit exceeded. The registration endpoint is throttled to prevent abuse. —
POST/v1/oauth/tokenExchange an authorization code for an access token.
Request body

application/x-www-form-urlencoded (required)

Responses
StatusDescriptionSchema
200Token successfully issued.—
400OAuth 2.0 error response ([RFC 6749 §5.2](https://www.rfc-editor.org/rfc/rfc6749#section-5.2)). Returned for example when the authorization code is invalid, expired, the PKCE verifier does not match, or the request is otherwise malformed. —
401OAuth 2.0 error response when client authentication fails (unknown `client_id` or invalid `client_secret`). —
Audit Logs2
GET/v1/audit_logsList audit Logs
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
event_namequerynostring
member_idquerynointeger
member_namequerynostring
member_emailquerynostring
api_token_idquerynostring
ip_addressquerynostring
Responses
StatusDescriptionSchema
200Audit logs List—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/audit_logs/event_namesList audit log event names
Responses
StatusDescriptionSchema
200List of audit log event names—
401Invalid API key—
403Forbidden—
Honeytoken Activity Logs1
GET/v1/honeytokens/{honeytoken_id}/activity-logsList activity logs of a honeytoken
Parameters
NameInRequiredType
honeytoken_idpathyesstring
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
member_idquerynointeger
api_token_idquerynostring
content_keyquerynostring
searchquerynostring
Responses
StatusDescriptionSchema
200Honeytoken Activity Log List—
400Invalid data—
401Invalid API key—
404Honeytoken not found—
503API under maintenance—
Internal Secret Incident Activity Logs1
GET/v1/incidents/secrets/{incident_id}/activity-logsList activity logs of a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
member_idquerynointeger
api_token_idquerynostring
content_keyquerynostring
searchquerynostring
Responses
StatusDescriptionSchema
200Incident Activity Log List—
400Invalid data—
401Invalid API key—
404Secret Incident not found—
503API under maintenance—
Internal Secret Incident Notes4
GET/v1/incidents/secrets/{incident_id}/notesList notes on a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
orderingquerynostring
member_idquerynointeger
searchquerynostring
Responses
StatusDescriptionSchema
200Incident Note List—
400Invalid data—
401Invalid API key—
404Secret Incident not found—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/notesCreate a secret incident note
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
201The note was created successfully.—
400Invalid data—
401Invalid API key—
404Secret Incident not found.—
503API under maintenance—
PATCH/v1/incidents/secrets/{incident_id}/notes/{note_id}Update a secret incident note
Parameters
NameInRequiredType
incident_idpathyesinteger
note_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200The note was updated successfully.—
400Invalid data—
401Invalid API key—
403You cannot update an Incident Note you that was not created by the current API key. —
404Secret Incident or Incident Note not found.—
503API under maintenance—
DELETE/v1/incidents/secrets/{incident_id}/notes/{note_id}Delete a secret incident note
Parameters
NameInRequiredType
incident_idpathyesinteger
note_idpathyesinteger
Responses
StatusDescriptionSchema
204The note was deleted successfully.—
400Invalid data—
401Invalid API key—
403You cannot delete an Incident Note you that was not created by the current API key. —
404Secret Incident or Incident Note not found.—
503API under maintenance—
Internal Secret Incidents25
GET/v1/incidents/secretsList secret incidents
Parameters
NameInRequiredType
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
triggered_at_beforequerynostring
triggered_at_afterquerynostring
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
exclude_tagsquerynostring
custom_tagsquerynostring
custom_tag_keyquerynostring
custom_tag_valuequerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
feedbackquerynoboolean
only_on_provider_archived_sourcesquerynoboolean
risk_score_minquerynointeger
risk_score_maxquerynointeger
Responses
StatusDescriptionSchema
200Secret Incident List—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}Retrieve a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
with_occurrencesquerynointeger
Responses
StatusDescriptionSchema
200Secret Incident Details—
400Invalid data—
401Invalid API key—
503API under maintenance—
PATCH/v1/incidents/secrets/{incident_id}Update a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Secret Incident Details without occurrences.—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/assignAssign a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
200Secret Incident Details without occurrences.—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/grant_accessGrant access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
204The access was granted successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
409Data conflict—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/ignoreIgnore a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Secret Incident Details without occurrences.—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}/impacted_perimeterRetrieve the impacted perimeter of a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Secret Incident Impacted Perimeter—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}/invitationsList invitations having access to a Secret Incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
invitation_idquerynonumber
incident_permissionquerynostring
Responses
StatusDescriptionSchema
200List of invitation accesses—
400Invalid data—
401Invalid API key—
403Permission denied—
404Secret Incident not found—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}/leaksRetrieve where a secret has been publicly leaked
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200List of the leaks of the incident—
401Invalid API key—
404Incident not found—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}/membersList members having access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
member_idquerynonumber
incident_permissionquerynostring
rolequeryno—
searchquerynostring
Responses
StatusDescriptionSchema
200List of members—
400Invalid data—
401Invalid API key—
404Secret Incident not found—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/reopenReopen a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Secret Incident Details without occurrences.—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/resolveResolve a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Secret Incident Details without occurrences.—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/revoke_accessRevoke access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
204The access was revoked successfully.—
400Invalid data—
401Invalid API key—
403Permission denied—
409Data conflict—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/shareShare a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Incident Sharing Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}/teamsList teams having access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
team_idquerynonumber
incident_permissionquerynostring
Responses
StatusDescriptionSchema
200List of team accesses—
400Invalid data—
401Invalid API key—
403Permission denied—
404Secret Incident not found—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/unassignUnassign a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Secret Incident Details without occurrences.—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/incidents/secrets/{incident_id}/unshareUnshare a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
204The public link was revoked successfully.—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
GET/v1/incidents/secrets/{incident_id}/vaultsGet vault information for a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Vault information for the secret incident—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
GET/v1/remediation-workflowRetrieve the remediation workflow
Responses
StatusDescriptionSchema
200Remediation Workflow—
401Invalid API key—
503API under maintenance—
GET/v1/secret-incidents/{incident_id}/invitationsList invitations with access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
searchquerynostring
orderingquerynostring
direct_accessquerynoboolean
Responses
StatusDescriptionSchema
200List invitations—
400Invalid data—
401Invalid API key—
403Permission denied—
404Secret Incident not found—
503API under maintenance—
GET/v1/secret-incidents/{incident_id}/membersList members with access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
rolequeryno—
access_levelqueryno—
searchquerynostring
orderingquerynostring
direct_accessquerynoboolean
Responses
StatusDescriptionSchema
200List members—
400Invalid data—
401Invalid API key—
403Permission denied—
404Secret Incident not found—
503API under maintenance—
GET/v1/secret-incidents/{incident_id}/teamsList teams with access to a secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
searchquerynostring
direct_accessquerynoboolean
Responses
StatusDescriptionSchema
200List teams—
400Invalid data—
401Invalid API key—
403Permission denied—
404Secret Incident not found—
503API under maintenance—
GET/v1/secrets/{secret_id}Retrieve a secret value
Parameters
NameInRequiredType
secret_idpathyesinteger
X-Privacy-Modeheadernostring
Responses
StatusDescriptionSchema
200Secret details—
400Invalid data—
401Invalid API key—
404Secret not found—
503API under maintenance—
GET/v1/sources/{source_id}/incidents/secretsList secret incidents of a source
Parameters
NameInRequiredType
source_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
custom_tagsquerynostring
custom_tag_keyquerynostring
custom_tag_valuequerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
feedbackquerynoboolean
only_on_provider_archived_sourcesquerynoboolean
Responses
StatusDescriptionSchema
200Secret Incident List—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/teams/{team_id}/incidents/secretsList secret incidents of a team
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
team_idpathyesinteger
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
custom_tagsquerynostring
custom_tag_keyquerynostring
custom_tag_valuequerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
only_on_provider_archived_sourcesquerynoboolean
Responses
StatusDescriptionSchema
200Secret Incident List—
400Invalid data—
401Invalid API key—
503API under maintenance—
Internal Secret Occurrences1
GET/v1/occurrences/secretsList secret occurrences
Parameters
NameInRequiredType
cursorquerynostring
pagequerynointeger
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
source_idquerynointeger
source_namequerynostring
source_typequerynostring
source_monitoring_statusquerynostring
incident_idquerynointeger
incident_assignee_idquerynointeger
presencequeryno—
author_namequerynostring
author_infoquerynostring
shaquerynostring
filepathquerynostring
severityqueryno—
statusqueryno—
validityqueryno—
tagsquerynostring
exclude_tagsquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200List occurrences—
400Invalid data—
401Invalid API key—
503API under maintenance—
Public Secret Incident Activity Logs1
GET/v1/public-incidents/secrets/{incident_id}/activity-logsList activity logs of a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
member_idquerynointeger
api_token_idquerynostring
content_keyquerynostring
searchquerynostring
Responses
StatusDescriptionSchema
200Public Incident Activity Log List—
400Invalid data—
401Invalid API key—
404Public Secret Incident not found—
503API under maintenance—
Public Secret Incident Notes4
GET/v1/public-incidents/secrets/{incident_id}/notesList notes on a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
orderingquerynostring
member_idquerynointeger
searchquerynostring
Responses
StatusDescriptionSchema
200Public Incident Note List—
400Invalid data—
401Invalid API key—
404Public Secret Incident not found—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/notesCreate a public secret incident note
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
201The note was created successfully.—
400Invalid data—
401Invalid API key—
404Public Secret Incident not found.—
503API under maintenance—
PATCH/v1/public-incidents/secrets/{incident_id}/notes/{note_id}Update a public secret incident note
Parameters
NameInRequiredType
incident_idpathyesinteger
note_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200The note was updated successfully.—
400Invalid data—
401Invalid API key—
403You cannot update an Incident Note you that was not created by the current API key. —
404Public Secret Incident or Incident Note not found.—
503API under maintenance—
DELETE/v1/public-incidents/secrets/{incident_id}/notes/{note_id}Delete a public secret incident note
Parameters
NameInRequiredType
incident_idpathyesinteger
note_idpathyesinteger
Responses
StatusDescriptionSchema
204The note was deleted successfully.—
400Invalid data—
401Invalid API key—
403You cannot delete an Incident Note you that was not created by the current API key. —
404Public Secret Incident or Incident Note not found.—
503API under maintenance—
Public Secret Incidents12
GET/v1/public-incidents/secretsList public secret incidents
Parameters
NameInRequiredType
X-Privacy-Modeheadernostring
cursorquerynostring
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
triggered_at_beforequerynostring
triggered_at_afterquerynostring
assignee_emailquerynostring
assignee_idquerynointeger
statusqueryno—
severityqueryno—
validityqueryno—
tagsquerynostring
custom_tagsquerynostring
custom_tag_keyquerynostring
custom_tag_valuequerynostring
orderingquerynostring
detector_group_namequerynostring
ignorer_idquerynointeger
ignorer_api_token_idquerynostring
resolver_idquerynointeger
resolver_api_token_idquerynostring
feedbackquerynoboolean
declarative_secret_statusqueryno—
risk_score_minquerynointeger
risk_score_maxquerynointeger
Responses
StatusDescriptionSchema
200Public Secret Incident List—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/public-incidents/secrets/{incident_id}Retrieve a public secret incident
Parameters
NameInRequiredType
X-Privacy-Modeheadernostring
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/assignAssign a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/ignoreIgnore a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/reopenReopen a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/resolveResolve a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/set_custom_tagsSet custom tags of a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/set_severitySet severity of a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/shareShare a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
200Issue Token Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/unassignUnassign a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Public Secret Incident Details—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
POST/v1/public-incidents/secrets/{incident_id}/unshareUnshare a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
204Share link deleted successfully—
400Invalid data—
401Invalid API key—
409Data conflict—
503API under maintenance—
GET/v1/public-incidents/secrets/{incident_id}/vaultsGet vault information for a public secret incident
Parameters
NameInRequiredType
incident_idpathyesinteger
Responses
StatusDescriptionSchema
200Vault information for the public secret incident—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
Public Secret Occurrences2
GET/v1/public-incidents/secrets/{incident_id}/occurrencesList public secret occurrences
Parameters
NameInRequiredType
incident_idpathyesinteger
cursorquerynostring
per_pagequerynointeger
date_beforequerynostring
date_afterquerynostring
source_idquerynointeger
presencequeryno—
shaquerynostring
filepathquerynostring
attachment_reasonquerynostring
severityqueryno—
statusqueryno—
validityqueryno—
tagsquerynostring
orderingquerynostring
Responses
StatusDescriptionSchema
200List public secret occurrences—
400Invalid data—
401Invalid API key—
503API under maintenance—
GET/v1/public-incidents/secrets/{incident_id}/occurrences/{occurrence_id}Retrieve a public secret occurrence
Parameters
NameInRequiredType
incident_idpathyesinteger
occurrence_idpathyesinteger
Responses
StatusDescriptionSchema
200Public Secret Occurrence Details—
400Invalid data—
401Invalid API key—
503API under maintenance—
Scans1
GET/v1/scans/{scan_id}/auditGet a scan's audit summary
Parameters
NameInRequiredType
scan_idpathyesstring
Responses
StatusDescriptionSchema
200Scan Audit Summary—
400Invalid data—
401Invalid API key—
403Forbidden—
404Resource not found—
503API under maintenance—
Team Requests5
GET/v1/members/{member_id}/team_requestsList team requests of a member
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
member_idpathyesinteger
team_idquerynonumber
Responses
StatusDescriptionSchema
200Team request list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
GET/v1/teams/{team_id}/team_requestsList team requests of a team
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
team_idpathyesinteger
member_idquerynonumber
Responses
StatusDescriptionSchema
200Team request list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
POST/v1/teams/{team_id}/team_requestsRequest access to a team
Parameters
NameInRequiredType
team_idpathyesinteger
Responses
StatusDescriptionSchema
201Team request created—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
409Data conflict—
503API under maintenance—
DELETE/v1/teams/{team_id}/team_requests/{team_request_id}Cancel or decline a team request
Parameters
NameInRequiredType
team_idpathyesinteger
team_request_idpathyesinteger
send_emailquerynoboolean
Responses
StatusDescriptionSchema
204Team request deleted—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
POST/v1/teams/{team_id}/team_requests/{team_request_id}/acceptAccept a team request
Parameters
NameInRequiredType
team_idpathyesinteger
team_request_idpathyesinteger
send_emailquerynoboolean
Request body

application/json

Responses
StatusDescriptionSchema
200Team request accepted—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
Team Sources2
GET/v1/teams/{team_id}/sourcesList team sources
Parameters
NameInRequiredType
cursorquerynostring
per_pagequerynointeger
team_idpathyesinteger
searchquerynostring
last_scan_statusqueryno—
healthqueryno—
typequeryno—
orderingquerynostring
visibilityquerynostring
external_idquerynostring
Responses
StatusDescriptionSchema
200Source list—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—
POST/v1/teams/{team_id}/sourcesUpdate a team perimeter
Parameters
NameInRequiredType
team_idpathyesinteger
Request body

application/json

Responses
StatusDescriptionSchema
204Team perimeter updated—
400Invalid data—
401Invalid API key—
403Permission denied—
404Not found—
503API under maintenance—

Try it

Developer reference

Base URLhttps://api.gitguardian.com
Rate limit

PAT: Free 50 req/min, Business 200 req/min, Enterprise 2000 req/min; Service Account: Business 1000 req/min, Enterprise 10000 req/min

Key endpoints
  • GET/v1/health
  • GET/v1/quotas
  • GET/v1/incidents/secrets
  • GET/v1/sources

Changelog

Spec version1.1.0
Tracked paths131
  • Sep 2026gained an OpenAPI spec and official SDKs

Tracking since Sep 2026. See every tracked change ↗ ·Subscribe with RSS ↗