---
title: "Exchange Listing Events"
method: GET
path: "/gateway/v1/market/listing"
tags: ["Market"]
---

# Exchange Listing Events

`GET /gateway/v1/market/listing`

Returns historical exchange listing and delisting events.

**Filters:** date range, exchange, token symbol, product type, event type.

## Query parameters

- `from` string, required — Start date (YYYY-MM-DD or ISO 8601)
- `to` string — End date (defaults to now)
- `symbol` string — Filter by token symbol
- `exchange` string — Filter by exchange name
- `product` 'spot' | 'margin' | 'perp' | 'pre_market_perp' | 'all' — Filter by product type
- `type` 'listing' | 'delisting' | 'cancelled' | 'advanced' | 'postponed' — Event type filter
- `limit` integer — Results per page
- `offset` integer — Pagination offset

## Response `200`

OK

- DataResponseListingEventItem
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` ListingEventItem[], nullable, required
    - `base_symbol` string — Base currency symbol
    - `effective_at` integer, required — When the listing/delisting takes effect (Unix seconds)
    - `event_type` string, required — LISTING or DELISTING
    - `exchange_name` string, required — Exchange name
    - `product` string, required — Product type (SPOT, PERP, etc.)
    - `published_at` integer — When the announcement was published (Unix seconds)
    - `quote_symbol` string — Quote currency symbol
    - `trading_pair` string, required — Trading pair like BTC/USDT
  - `meta` OffsetMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data array is empty, when applicable
    - `has_more` boolean — Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required — Maximum number of items returned in this response
    - `offset` integer, required — Number of items skipped (pagination offset)
    - `total` integer — Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer — Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/4153a9cb5145/schema)
