A Doppler API token lets whoever holds it act as a person in your Doppler workspace. Doppler is a secrets manager, so the practical reach of the token is every secret stored in the projects and configs that account can read, including database passwords, cloud credentials and third-party keys. The token is often pasted into a CI job or a server for convenience, which means one leaked value can open far more than the application it was copied into. Revoke the token first, then assume every secret it could read has been seen.
Check your GitHub account for leaked secrets — free
- Provider
- Doppler
- Severity
- Critical
- Impact
- Cloud infrastructure access
- Checked live by LeakWatch
- No
What a Doppler API Token looks like
A Doppler personal token starts with a fixed prefix, followed by 40 to 44 letters and digits. The masked shape looks like this:
dp.pt.…XXXX Doppler personal token (masked)
The dp.pt. prefix is what makes the value recognizable. Other Doppler token types use different prefixes. Service tokens, which are scoped to one project and config, start with dp.st., and CLI tokens start with dp.ct.. They carry different scopes and are revoked in different places, so check which one leaked before you act. Doppler also issues service account tokens for non-human access. Treat any of them as a credential with the reach of the secrets it can read.
How Doppler API Tokens get leaked
- Environment files committed by accident. A
DOPPLER_TOKEN=line in a.envfile, a Docker Compose file or a shell script that was never added to.gitignore. - Hard-coded CLI calls. A deploy script that runs
dopplerwith the token as an argument, which then lands in shell history, process listings and CI logs. - Build logs. A pipeline step that prints its environment, or a debug flag that echoes the configuration it loaded.
- Shared snippets. A token pasted into a support thread, a gist or a chat to get a setup command to work.
- Forks and mirrors. A repository that was public for an hour and then made private. Automated scrapers copy public commits within minutes, and the copy stays out of reach even after the file is removed.
What to do in the first hour
- Revoke the token first. Open your Doppler dashboard, go to the personal tokens list for your account and revoke the exposed token. Revocation stops it working immediately, so do it before cleaning the repository.
- Create a replacement for the tools that still need access. Prefer a service token scoped to one project and config over a personal token, since it can read less.
- Deploy the replacement to the CI system or server that used the old value, and confirm the application still starts and reads its secrets.
- Rotate the secrets it could read. Doppler stores the values, so every secret in the affected projects and configs should be treated as seen. Start with production database passwords, cloud keys and payment or email credentials. Rotate them at their own providers, then update Doppler.
- Check the activity. Look at the audit or activity log in Doppler, if your plan provides one, for the period since the exposure. Look for reads from unfamiliar addresses or at odd hours, and for changes to secrets you did not make. Note that the log may not show everything, so do not treat a clean log as proof.
- Review workspace access. Check the members of the workspace and remove any account you cannot place. A personal token carries the permissions of the account that created it.
- Clean the repository and look for other secrets stored next to the token. See I accidentally pushed an API key to GitHub and Deep scan your whole git history.
Not sure what else leaked? Run a free scan.
Revoke it at Doppler
Personal tokens are listed in your Doppler account settings, on the page for tokens. Find the token that matches the exposed value, using its first and last characters, and revoke it. Service tokens and CLI tokens are managed from the project and config they belong to, so if the leaked value was one of those, go to that project’s access settings instead. Doppler also offers a bulk revocation option for the workspace, which is useful when you cannot tell which token leaked. Use it with care, since it stops every matching token, including the ones your own tools depend on. The wording and layout of the dashboard change over time, so if a menu differs from this description, follow the personal tokens page and Doppler’s current documentation for the steps.
How LeakWatch detects it
The rule is called Doppler API Token. It looks for the literal prefix dp.pt., followed by 40 to 44 letters or digits, with a word boundary on each side. Because the prefix is fixed and the length is narrow, a match is rarely a coincidence. The rule does not match the service token prefix dp.st. or the CLI token prefix dp.ct., so those need their own check. The severity is critical. This type is not checked live: LeakWatch does not send any request to Doppler with the token it found, so you should treat a detection as a real exposure until you have revoked the token yourself.
LeakWatch detects this format but does not check it live: it can tell you the key is exposed, not whether it still works. Assume it does until you have revoked it.
FAQ
Can someone read my secrets with this token?
Yes, within the reach of the account that created it. A personal token can read and write the projects that account can access, so the secrets stored there should be treated as seen. That is why rotation matters as much as revocation.
I deleted the file. Is the token still a risk?
Yes. Deleting the file removes the value from the current tree, but it stays in the git history, in forks, in CI logs and in any scraper that already copied it. Revoke the token first, then clean the repository.
Should I use a personal token in production at all?
No. Personal tokens are tied to one person and carry that person’s permissions. Use a service token scoped to one project and config for servers and pipelines, so that a leak exposes less and revocation does not break unrelated systems.