> ## Documentation Index
> Fetch the complete documentation index at: https://docs.0xarchive.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List webhook event types JSON Schema

> List webhook event types JSON Schema contract. Includes route metadata, request parameters, response statuses, examples, and JSON fields for implementation.

Source OpenAPI: 0xArchive API 1.6.1; 168 paths; 190 component schemas.

Return the served event catalog: one declaration per event type, carrying its scope, covered venues, accepted filters, tunable parameters, the metrics conditions may be written against, the operator vocabulary for each metric type, and the smallest occurrence the type reports. Subscriptions are validated against these declarations, so this is the authority on what a configuration may contain. Types marked `live: false` are published but do not yet accept subscriptions. Authenticate with an API key or a signed-in dashboard session. Costs no credits.

## Route Metadata

| Field                | Value                         |
| -------------------- | ----------------------------- |
| Method               | `GET`                         |
| Path                 | `/v1/webhooks/event-types`    |
| operationId          | `listWebhookEventTypes`       |
| Tag                  | Webhooks - Catalog and Limits |
| Family               | Webhooks                      |
| Deprecated or legacy | no                            |

## Response Contracts

### Status 200

The served webhook event catalog

#### application/json

```json theme={"theme":"github-dark"}
{
  "$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
    }
  }
}
```

### Status 401

Authentication required

#### application/json

```json theme={"theme":"github-dark"}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "listWebhookEventTypes response 401",
  "description": "Error response",
  "type": "object",
  "properties": {
    "code": {
      "description": "HTTP status code",
      "type": "integer"
    },
    "error": {
      "description": "Error message",
      "type": "string"
    },
    "error_code": {
      "description": "Machine-readable error code. Common values: `invalid_query_params` (a query parameter failed to parse or validate) and `invalid_path_params` (a path parameter failed to parse). Other endpoint-specific codes exist; treat unknown codes as generic errors of the given HTTP status.",
      "type": "string"
    },
    "request_id": {
      "description": "Unique request ID for support",
      "type": "string",
      "format": "uuid"
    }
  }
}
```

##### OpenAPI example

```json theme={"theme":"github-dark"}
{
  "code": 401,
  "error": "Missing or invalid API key. Provide X-API-Key header."
}
```

### Status 429

Rate limit exceeded

#### application/json

```json theme={"theme":"github-dark"}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "listWebhookEventTypes response 429",
  "description": "Error response",
  "type": "object",
  "properties": {
    "code": {
      "description": "HTTP status code",
      "type": "integer"
    },
    "error": {
      "description": "Error message",
      "type": "string"
    },
    "error_code": {
      "description": "Machine-readable error code. Common values: `invalid_query_params` (a query parameter failed to parse or validate) and `invalid_path_params` (a path parameter failed to parse). Other endpoint-specific codes exist; treat unknown codes as generic errors of the given HTTP status.",
      "type": "string"
    },
    "request_id": {
      "description": "Unique request ID for support",
      "type": "string",
      "format": "uuid"
    }
  }
}
```

##### OpenAPI example

```json theme={"theme":"github-dark"}
{
  "code": 429,
  "error": "Rate limit exceeded"
}
```
