Occurs when Paddle detects that an API key has been publicly exposed, for example in a public code repository. Paddle automatically revokes the exposed key. api_key.revoked occurs immediately after.
event_idstringrequired
Example:
evt_01gks14ge726w50ch2tmaw2a1xUnique Paddle ID for this event, prefixed with
evt_.Pattern:
^evt_[a-z\d]{26}$event_typestringrequired
Type of event sent by Paddle, in the format
entity.event_type.Values
address.createdAnaddress.createdevent.address.importedAnaddress.importedevent.address.updatedAnaddress.updatedevent.adjustment.createdAnadjustment.createdevent.adjustment.updatedAnadjustment.updatedevent.
+ Show all values− Hide values
api_key.createdAnapi_key.createdevent.api_key.expiredAnapi_key.expiredevent.api_key.expiringAnapi_key.expiringevent.api_key.revokedAnapi_key.revokedevent.api_key.updatedAnapi_key.updatedevent.api_key_exposure.createdAnapi_key_exposure.createdevent.business.createdAbusiness.createdevent.business.importedAbusiness.importedevent.business.updatedAbusiness.updatedevent.client_token.createdAclient_token.createdevent.client_token.revokedAclient_token.revokedevent.client_token.updatedAclient_token.updatedevent.customer.createdAcustomer.createdevent.customer.importedAcustomer.importedevent.customer.updatedAcustomer.updatedevent.discount.createdAdiscount.createdevent.discount.importedAdiscount.importedevent.discount.updatedAdiscount.updatedevent.discount_group.createdAdiscount_group.createdevent.discount_group.updatedAdiscount_group.updatedevent.meter.createdearly accessAmeter.createdevent.meter.updatedearly accessAmeter.updatedevent.payment_method.savedApayment_method.savedevent.payment_method.deletedApayment_method.deletedevent.payout.createdApayout.createdevent.payout.paidApayout.paidevent.price.createdAprice.createdevent.price.importedAprice.importedevent.price.updatedAprice.updatedevent.product.createdAproduct.createdevent.product.importedAproduct.importedevent.product.updatedAproduct.updatedevent.report.createdAreport.createdevent.report.updatedAreport.updatedevent.subscription.activatedAsubscription.activatedevent.subscription.canceledAsubscription.canceledevent.subscription.createdAsubscription.createdevent.subscription.importedAsubscription.importedevent.subscription.past_dueAsubscription.past_dueevent.subscription.pausedAsubscription.pausedevent.subscription.resumedAsubscription.resumedevent.subscription.trialingAsubscription.trialingevent.subscription.updatedAsubscription.updatedevent.transaction.billedAtransaction.billedevent.transaction.canceledAtransaction.canceledevent.transaction.completedAtransaction.completedevent.transaction.createdAtransaction.createdevent.transaction.paidAtransaction.paidevent.transaction.past_dueAtransaction.past_dueevent.transaction.payment_failedAtransaction.payment_failedevent.transaction.readyAtransaction.readyevent.transaction.revisedAtransaction.revisedevent.transaction.updatedAtransaction.updatedevent.usage_balance.depletedearly accessAusage_balance.depletedevent.
occurred_atstring (date-time)required
Example:
2024-10-12T07:20:50.52ZRFC 3339 datetime string of when this event occurred.
notification_idstringrequired
Example:
ntf_01ghbkd0frb9k95cnhwd1bxpvkUnique Paddle ID for this notification, prefixed with
ntf_.Pattern:
^ntf_[a-z\d]{26}$dataobjectrequired
New or changed entity.
idstringrequired
Example:
apkexp_01jkas9tppn3bhadwpcyag45zdUnique Paddle ID for this API key exposure entity, prefixed with
apkexp_.Pattern:
^apkexp_[a-z\d]{26}$api_key_idstringrequired
Example:
apikey_01gm106t81w94gyjgsaqypkjklUnique Paddle ID for this API key entity, prefixed with
apikey_.Pattern:
^apikey_[a-z\d]{26}$risk_levelstringrequired
Risk level of this exposure.
Values
highAPI key exposed in a public repository. Automatically revoked.lowAPI key exposed but inactive. No action needed.
action_takenstringrequired
Action performed by Paddle as a result of this exposure.
Values
revokedPaddle automatically revoked the API key.nonePaddle took no action. Exposure should still be assessed, cleaned, and acted upon where needed.
sourcestringrequired
Source of this exposure.
Values
githubAPI key found exposed on GitHub.
referencestringrequired
A unique URL or reference pointing to the source of the exposure. When
source is github, a URL to the location of the exposure is returned.Length: 1–250
descriptionstring | nullrequired
Additional details about this exposure.
Length: 1–250
created_atstring (date-time)required
Example:
2024-10-12T07:20:50.52ZRFC 3339 datetime string of when this API key exposure was found. Set automatically by Paddle.
{ "event_id": "evt_01jkdr0rc527wcjdg1txsdxhtk", "event_type": "api_key_exposure.created", "occurred_at": "2025-08-19T12:58:38.746382Z", "notification_id": "ntf_01jkdr1mgbe62eqkh3p0fq8b0s", "data": { "id": "apkexp_01jkas9tppn3bhadwpcyag45zd", "api_key_id": "apikey_01jkdpbhazdpn3wpcya45as9tg", "risk_level": "high", "action_taken": "revoked", "source": "github", "reference": "https://github.com/octocat/Hello-World/blob/12345600b9cbe38a219f39a9941c9319b600c002/foo/bar.txt", "description": "Exposed in Commit 12345600b9cbe38a219f39a9941c9319b600c002", "created_at": "2025-08-19T12:58:38.746382Z" }}