Skip to content
New Listings Feed
Legacy v1Historical API

Legacy v1 historical API

Backfill events from the existing v1 paid channels.

STARTER and PRO keys can backfill recent v1 events with a GET request at the same path as the WebSocket — 30 days back on STARTER, 1 year on PRO. Authenticate with the same Authorization: Bearer header. The free v1 feed has no history.

curl -H "authorization: Bearer YOUR_KEY" \
  "https://tokyo.newlistings.pro/v1/new-listings?limit=50"

Query parameters

Parameter Type Notes
before int Exclusive upper bound, in seconds since epoch.
after int Inclusive lower bound, in seconds since epoch.
limit int Maximum events to return. Defaults to 50, capped at 100.
exchange string Filter by exchange, lowercase slug. Use a value from Exchange coverage.
cursor string Pagination cursor from the previous response's next_cursor. See Cursor pagination.

For example, to fetch Upbit listings from a bound onward:

curl -H "authorization: Bearer YOUR_KEY" \
  "https://tokyo.newlistings.pro/v1/new-listings?exchange=upbit&after=1776661200&limit=100"

Response

Responses are wrapped in an envelope. data holds the events in descending time order, newest first, matching the WebSocket schema for that channel. History rows keep the stored server receive time. This example shows an empty result:

{
  "applied_filters": {
    "after": null,
    "before": null,
    "cursor": null,
    "exchange": null,
    "limit": 50
  },
  "data": [],
  "next_cursor": null
}

History-policy errors use a flat JSON object. A plan without history access receives HTTP 403 with:

{ "error": "History not available for your plan" }

Authentication failures also return JSON with an error field and may include retryAfterSeconds. See v1 error handling for the other HTTP statuses. WebSocket upgrade failures use plain text instead.

Cursor pagination

When more events match than fit in a single page, the server returns a next_cursor string. Pass it back as cursor on the next request to continue where you left off. On the last page, next_cursor is null.

curl -H "authorization: Bearer YOUR_KEY" \
  "https://tokyo.newlistings.pro/v1/new-listings?limit=100&exchange=upbit&after=1776661200&cursor=NEXT_CURSOR"

Repeat the same before, after, and exchange values on every page. The cursor stores only the page position.

Rate limit

The default history budget is 120 requests per 60 seconds per known key. Honor Retry-After on 429 responses when present. See v1 request limits for the separate connection budgets.