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

# WebhookSubscriptionCreateRequest Schema

> A new rule. Includes required fields, field types, schema references, and generated JSON details from the 0xArchive OpenAPI contract.

Source OpenAPI: 0xArchive API 1.7.0; 218 paths; 210 component schemas.

A new rule. The configuration is validated against the event type's catalog declaration before anything is stored.

## Required Fields

| Field | Type | Description |
| - | - | - |
| `endpoint_id` | string:uuid | Endpoint that will receive this rule's deliveries. |
| `event_type` | string | Event type to subscribe to, from the catalog. |

## JSON Schema

```json theme={"theme":"github-dark"}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "WebhookSubscriptionCreateRequest",
  "description": "A new rule. The configuration is validated against the event type's catalog declaration before anything is stored.",
  "type": "object",
  "required": [
    "endpoint_id",
    "event_type"
  ],
  "properties": {
    "endpoint_id": {
      "description": "Endpoint that will receive this rule's deliveries.",
      "type": "string",
      "format": "uuid"
    },
    "event_type": {
      "description": "Event type to subscribe to, from the catalog.",
      "type": "string",
      "example": "market.liquidation"
    },
    "filters": {
      "description": "What a subscription matches on. Every key is checked against the event type's catalog declaration, so an unknown key, an undeclared parameter or a condition on an undeclared metric is refused rather than ignored. The stored config is the normalised form: venues and addresses lowercased, declared parameters filled in at their defaults, and operators written in their canonical spelling.",
      "type": "object",
      "properties": {
        "addresses": {
          "description": "Wallets to match, for an address scoped event type. Every address must already be on your watched list. Omit to match all of them.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "0x6b9e773128f453f5c2c60935ee2de2cbc5390a24"
          ]
        },
        "conditions": {
          "description": "Conditions on the event's metrics, all of which must hold for a delivery. At most 16 per subscription.",
          "type": "array",
          "items": {
            "description": "One condition on an event metric. The operator vocabulary is grouped by the metric's type; see `operators` on the event type.",
            "type": "object",
            "required": [
              "metric",
              "op"
            ],
            "properties": {
              "metric": {
                "description": "A metric declared by the event type.",
                "type": "string",
                "example": "notional_usd"
              },
              "op": {
                "description": "Comparison to apply. Symbol spellings such as `>=` are accepted on the way in and stored in the canonical spelling shown here.",
                "type": "string",
                "enum": [
                  "greater_than",
                  "greater_than_or_equal",
                  "less_than",
                  "less_than_or_equal",
                  "equal",
                  "not_equal",
                  "between",
                  "not_between",
                  "in",
                  "not_in",
                  "contains",
                  "not_contains",
                  "starts_with",
                  "ends_with",
                  "before",
                  "after",
                  "is_empty",
                  "is_not_empty"
                ],
                "example": "greater_than_or_equal"
              },
              "value": {
                "description": "What to compare against. A number, string, boolean or RFC 3339 timestamp for a single value comparison; a two entry `[low, high]` list for `between` and `not_between`; a non-empty list for `in` and `not_in`. Omitted for `is_empty` and `is_not_empty`.",
                "example": 100000
              }
            }
          }
        },
        "min_notional_usd": {
          "description": "Shorthand for a `notional_usd` at-or-above condition, kept for compatibility. It is stored as a condition, and it is mirrored back here as the loosest notional lower bound the config carries.",
          "type": "number",
          "example": 100000
        },
        "params": {
          "description": "Parameter values for the event type, keyed by the parameter names it declares. A declared parameter you leave out is stored at its default. A declared parameter may also be written at the top level of the config.",
          "type": "object",
          "additionalProperties": true,
          "example": {
            "max_age_s": 3600
          }
        },
        "symbols": {
          "description": "Instrument symbols to match. Omit to match every symbol.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "BTC",
            "ETH"
          ]
        },
        "venue": {
          "description": "Venue or venues to match, from the event type's `venues` list. Accepts a single string, a pipe separated string or a list. Omit to match every covered venue.",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "example": "hyperliquid"
        }
      }
    }
  }
}
```

## Referenced By

* [POST /v1/webhooks/subscriptions](/schemas/operations/create-webhook-subscription)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.