---
id: "digitalocean_token"
kind: "datatype"
status: "draft"
is_pii: false
categories: ["secrets"]
langs: ["common"]
quality: 70
url: "http://registry.apicrafter.io/datatype/digitalocean_token"
---

# DigitalOcean API token (`digitalocean_token`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

API token of DigitalOcean. The prefix tells the token type: dop_v1_ for a personal access token, doo_v1_ for an OAuth access token and dor_v1_ for an OAuth refresh token. 64 hexadecimal digits follow. The API takes the token in a bearer Authorization header.

- Parent datatype: `access_token`
- Personal data (PII): no
- Categories: Secrets and credentials (passwords, keys, tokens) (secrets)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^do[opr]_v1_[a-f0-9]{64}$
```

## Examples

- `dop_v1_ExampleTokenNotReal` (invalid example) — Not hexadecimal and too short

## Supported by tools

- `gitleaks`
- `trufflehog`

## Sources

- doc: <https://docs.digitalocean.com/reference/api/create-personal-access-token/>
- other: <https://github.com/gitleaks/gitleaks/blob/master/config/gitleaks.toml>
- other: <https://github.com/trufflesecurity/trufflehog/blob/main/pkg/detectors/digitaloceanv2/digitaloceanv2.go>

## Quality

Score 70/100. Missing: examples, mapping (Wikidata, Schema.org, ...), translation.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/digitalocean_token.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/secrets/digitalocean_token.yaml>
