POST /accounts/{account_id}/workers/observability/telemetry/keys
List all the keys in your telemetry events.
Servers
- https://api.cloudflare.com/client/v4
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account_id |
String | Yes |
Your Cloudflare account ID. |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
datasets[] |
Array | No |
Leave this empty to use the default datasets |
filters[] |
Array | No |
Apply filters to narrow key discovery. Supports nested groups via kind: 'group'. Maximum nesting depth is 4. |
filters[].filters[] |
Array | Yes |
Child filter nodes. Each can be a leaf filter or another nested group. |
filters[].filterCombination |
String | Yes |
Logical operator for combining child filters: 'and' (all must match) or 'or' (any must match). Valid values:
|
filters[].key |
String | Yes |
Filter field name. Use verified keys from previous query results or the keys endpoint. Common keys include $metadata.service, $metadata.origin, $metadata.trigger, $metadata.message, and $metadata.error. |
filters[].operation |
String | Yes |
Comparison operator. String operators: includes, not_includes, starts_with, regex. Existence: exists, is_null. Set membership: in, not_in (comma-separated values). Numeric: eq, neq, gt, gte, lt, lte. Valid values:
|
filters[].type |
String | Yes |
Data type of the filter field. Must match the actual type of the key being filtered. Valid values:
|
filters[].value |
Object | No |
Comparison value. Must match actual values in your data — verify with the values endpoint. Ensure the value type (string/number/boolean) matches the field type. String comparisons are case-sensitive. Regex uses RE2 syntax (no lookaheads/lookbehinds). |
filters[].kind |
String | Yes |
Discriminator for leaf filter nodes. Always 'filter' when present; may be omitted. Valid values:
|
to |
Number | No | |
limit |
Number | No |
Advanced usage: set limit=1000+ to retrieve comprehensive key options without needing additional filtering. |
needle |
Object | No |
Search for a specific substring in any of the events |
needle.value |
String | Yes |
The text or pattern to search for. |
needle.matchCase |
Boolean | No |
When true, performs a case-sensitive search. Defaults to case-insensitive. |
needle.isRegex |
Boolean | No |
When true, treats the value as a regular expression (RE2 syntax). |
keyNeedle |
Object | No |
If the user suggests a key, use this to narrow down the list of keys returned. Make sure matchCase is false to avoid case sensitivity issues. |
keyNeedle.value |
String | Yes |
The text or pattern to search for. |
keyNeedle.matchCase |
Boolean | No |
When true, performs a case-sensitive search. Defaults to case-insensitive. |
keyNeedle.isRegex |
Boolean | No |
When true, treats the value as a regular expression (RE2 syntax). |
from |
Number | No |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.