There is no single, clean public feed for "every new stock listing and IPO." Exchanges publish notices, filings land on regulators' sites, and the first trade shows up on the tape — but stitching that into a tidy stream is real work. This guide shows an honest, practical approach using the Elgon API, and is equally clear about what Elgon does not do.
Up front: Elgon has no dedicated "new listings" feed, no first-trade event stream, no trades endpoint, and no WebSocket subscriptions. What it does have is a REST /instruments endpoint for resolving and discovering symbols, and a /quotes endpoint for pricing. You can combine them into a lightweight new-listing watcher by polling and diffing — no streaming required.
The building blocks
Two real endpoints do the work here, both plain HTTP GET, both returning real-but-delayed data tagged "source":"live":
/instruments resolves a search term into matching symbols with reference data (symbol, name, type, exchange, asset class).
/quotes returns last price, bid, ask, change, and volume for one or many symbols.
Step 1: Search the instruments endpoint
Query /instruments with any term — a name, a partial ticker, a sector keyword — to pull matching symbols and reference data:
const res = await fetch(
"https://elgonrpc.xyz/api/v1/instruments?q=arm&key=elgon_sandbox_pub"
);
const { data } = await res.json();
// Each match: { symbol, name, type, exchange, assetClass }
for (const inst of data) {
console.log(`${inst.symbol} — ${inst.name} (${inst.exchange})`);
}
Step 2: Diff against your own known set
Because Elgon does not emit listing events, you detect "new" the pragmatic way: keep your own set of symbols you have already seen, and flag anything that appears for the first time. Run this on a schedule against the searches you care about.
const seen = new Set(); // persist this between runs (a file or a DB)
async function checkForNew(query) {
const res = await fetch(
`https://elgonrpc.xyz/api/v1/instruments?q=${query}&key=elgon_sandbox_pub`
);
const { data } = await res.json();
for (const inst of data) {
if (!seen.has(inst.symbol)) {
seen.add(inst.symbol);
console.log(`New to us: ${inst.symbol} — ${inst.name}`);
}
}
}
Step 3: Pull a quote for anything new
When a symbol shows up, get its current (delayed) price from /quotes:
const res = await fetch(
"https://elgonrpc.xyz/api/v1/quotes?symbols=ARM&key=elgon_sandbox_pub"
);
const { data } = await res.json();
console.log(data[0]); // { symbol: "ARM", price, bid, ask, volume, asOf }
Step 4: Poll on a schedule
There is no subscription to open — you poll. Pick an interval that fits the rate limit (60 requests/min on the free tier, 600/min on Growth):
setInterval(() => checkForNew("technology"), 60_000); // once a minute
What Elgon does not provide
To keep expectations honest: Elgon has no first-trade or "Listed" event stream, no trades/prints endpoint, no index-inclusion tracking, no offer-price or uplisting fields, and no WebSocket. It is a REST API over delayed quotes and instrument reference data. For authoritative IPO calendars and exact first-trade timestamps, go to the exchange and regulatory sources directly; Elgon is a convenient way to resolve symbols and pull delayed pricing around them.
FAQ
Does Elgon push a real-time listings feed?
No. There is no streaming or subscription API. You poll the REST endpoints and diff results yourself.
Can I get exact first-trade events and IPO pricing?
Not from Elgon. It has no listing-event or offer-price data. Use exchange and regulatory sources for that; use Elgon to resolve symbols and pull delayed quotes.
Is the data real-time?
Quotes and instruments are real but delayed, tagged "source":"live". Elgon is not a real-time feed.
Want to try it? Get an API key and read the API docs.

