List the keywords in use, with counts
Every distinct keyword on this mailbox's LIVE messages, most-used first then alphabetical, with how many messages carry each.
Expunged messages are excluded: they keep their keywords so a restore can put them back, but they are not mail the user has. Protocol keywords are NOT filtered out — $forwarded, $junk and the rest are returned like any other, because which of them are worth showing is a client's decision, not core's.
Scoped like every other read: a folder-scoped grant reports the keywords inside the grant and no others.
bearerAuthAuthorizationBearer <token>Two credential kinds share this scheme; GET /api/v1/auth/whoami answers which one you hold and what it reaches.
oek_… API key (minted by POST /api/v1/api-keys; shown once at mint). role: account reaches the full account surface: the directory (domains, routes, patterns, api-keys, accounts, address lists) plus every mailbox the account owns. role: system additionally reaches the operator surface, which is documented separately.
oemp_… mailbox app password (minted by POST /api/v1/identities/{identityId}/credentials). Reaches ONE mailbox: its messages, labels, threads, search, sync, send, filters and PIM collections. Directory routes refuse it with 403 insufficient_scope.
Refusal vocabulary: a missing, malformed, expired, or revoked credential answers 401 unauthorized with a WWW-Authenticate: Bearer challenge; a VALID credential outside its scope answers 403 (insufficient_scope for an app password on a directory route, system_credentials_required where only the operator may call). The public routes (health, branding, token-in-path capabilities) declare security: [].
mailboxId*stringMailbox ULID identifier
limit?integerMaximum distinct keywords to return (default 100, max 500). The cut falls on the least-used, since the order is by count.
1 <= value <= 500Keywords in use
application/json- response
keywords*array<>Distinct keywords, most-used first, then alphabetical
curl -X GET 'https://api.open.email/api/v1/mailboxes/string/keywords'{
"keywords": [
{
"count": 0,
"keyword": "string"
}
]
}Batch get cached MIME structures POST
Returns cached MIME envelope and body structure metadata for multiple messages without downloading raw blobs.
Full-text search a mailbox GET
Searches email messages across subject, sender/recipient addresses, and body text using BM25 relevance ranking. Optionally filter by label, flags, or group…