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

# Discord webhook URL (`discord_webhook_url`)

> **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.

URL of a Discord webhook: the API route /webhooks/<webhook id>/<webhook token> on discord.com. Anyone who knows the URL can post messages to the channel, so the URL itself is the secret. The regexp also accepts an API version in the path, the ptb and canary hosts and the former discordapp.com domain, as the pyWhat tool does.

- 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`):

```
^https://(?:(?:ptb|canary)\.)?discord(?:app)?\.com/api(?:/v[0-9]+)?/webhooks/[0-9]+/[A-Za-z0-9_-]+$
```

## Examples

- `https://discord.com/api/webhooks/` (invalid example) — Route without the webhook ID and token

## Supported by tools

- `cloudflaredlp`
- `gitguardian`
- `pywhat`

## Sources

- doc: <https://docs.discord.com/developers/resources/webhook>
- other: <https://github.com/bee-san/pyWhat/blob/main/pywhat/Data/regex.json>

## Quality

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

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