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.