{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "listWebhookEventTypes response 200",
"description": "API response containing the served webhook event catalog.",
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"description": "One entry in the served webhook event catalog. Subscriptions are validated against this declaration, so it is the authority on the filters, parameters and metrics an event type accepts.",
"type": "object",
"required": [
"description",
"filters",
"latency_class",
"live",
"metrics",
"params",
"schema_version",
"scope",
"type",
"venues"
],
"properties": {
"cost_floor": {
"description": "The smallest occurrence this type reports at all, below which nothing is detected. Null when the type has no floor.",
"type": "object",
"nullable": true,
"properties": {
"metric": {
"description": "Metric the floor applies to.",
"type": "string",
"example": "notional_usd"
},
"min": {
"description": "Lowest value still reported.",
"type": "number",
"example": 100
}
}
},
"description": {
"description": "What the event reports and what one occurrence means.",
"type": "string",
"example": "A liquidation on a covered venue."
},
"filters": {
"description": "Filter keys the subscription config accepts for this type. A key that is not listed here is refused rather than ignored.",
"type": "array",
"items": {
"type": "string"
},
"example": [
"venue",
"symbols"
]
},
"filters_example": {
"description": "A worked example of a config for this type.",
"type": "object",
"additionalProperties": true
},
"latency_class": {
"description": "Rough delivery latency for the type, measured from the occurrence to the first delivery attempt.",
"type": "string",
"enum": [
"seconds",
"minutes"
],
"example": "seconds"
},
"live": {
"description": "True when the type accepts subscriptions. A type that is published but not yet live is refused at create time.",
"type": "boolean",
"example": true
},
"metrics": {
"description": "Metrics carried by the event, keyed by metric name. A condition may only reference a metric declared here.",
"type": "object",
"additionalProperties": {
"description": "A metric an event carries, and therefore a metric a subscription condition may be written against.",
"type": "object",
"properties": {
"description": {
"description": "What the metric measures, including when it is null.",
"type": "string"
},
"type": {
"description": "Value type of the metric. It decides which operators a condition on this metric may use.",
"type": "string",
"enum": [
"number",
"integer",
"string",
"boolean",
"timestamp"
],
"example": "number"
},
"unit": {
"description": "Unit the metric is expressed in, when it has one.",
"type": "string",
"example": "USD"
},
"values": {
"description": "Accepted values, when the metric is a fixed choice. Conditions are checked against this list.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"operators": {
"description": "Operator vocabulary grouped by metric type, plus the `any` group that applies to every metric. A condition on a metric may use the operators of that metric's type or of the `any` group.",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"params": {
"description": "Tunable parameters, keyed by parameter name.",
"type": "object",
"additionalProperties": {
"description": "A tunable parameter declared by an event type. Values sent under `params` are validated against this declaration, and any declared parameter left unset is stored at its default.",
"type": "object",
"properties": {
"default": {
"description": "Value used when the parameter is not supplied.",
"example": 3600
},
"description": {
"description": "What the parameter changes.",
"type": "string"
},
"enum": {
"description": "Accepted values, when the parameter is a fixed choice.",
"type": "array",
"items": {}
},
"max": {
"description": "Highest accepted value, when the parameter is bounded above.",
"type": "number",
"example": 86400
},
"min": {
"description": "Lowest accepted value, when the parameter is bounded below.",
"type": "number",
"example": 60
},
"type": {
"description": "Value type the parameter accepts.",
"type": "string",
"enum": [
"integer",
"number",
"string",
"array_of_number"
],
"example": "integer"
},
"unit": {
"description": "Unit the value is expressed in, when it has one.",
"type": "string",
"example": "s"
}
}
}
},
"schema_version": {
"description": "Version of the delivered payload shape for this event type.",
"type": "integer",
"example": 1
},
"scope": {
"description": "Who the event is about. `public` is market wide, `user` is your own account and platform activity, and `addresses` reports only on wallets on your watched list.",
"type": "string",
"enum": [
"public",
"user",
"addresses"
],
"example": "public"
},
"type": {
"description": "Event type identifier. Send this as `event_type` when creating a subscription.",
"type": "string",
"example": "market.liquidation"
},
"venues": {
"description": "Venues the type covers. Empty when the type is not venue scoped.",
"type": "array",
"items": {
"type": "string"
},
"example": [
"hyperliquid",
"hip3",
"lighter"
]
}
}
}
},
"success": {
"type": "boolean",
"example": true
}
}
}