# IG Streaming PRICE:{account identifier}:{epic}

Independent and unofficial. Not affiliated with or endorsed by any broker or platform named here. Educational only: nothing here is advice, and nothing here recommends a broker or a trade.

This is the markdown version of https://openbrokerapi.com/brokers/ig/messages/price, written from the same records as that page.

Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.

Live prices for one market, by account identifier and epic: the bid and ask ladder up to five tiers deep, the sizes at each tier, the day's high and low and the dealing state. IG's page says price availability depends on the account's permissions.

- Message: `PRICE:{account identifier}:{epic}`
- Interface: IG Streaming API
- Group: Prices
- Status: verified. Source: [labs.ig.com](https://labs.ig.com/streaming-api-reference.html), checked 2026-10-12.

This is a subscription of the IG Streaming API, not an HTTP endpoint. It has no method and no path: it travels over a Lightstreamer connection that stays open, which a Lightstreamer client library manages. It is in no OpenAPI file on this site and the request builder does not list it.

Note: The same page marks the older MARKET:{epic} subscription, and its alias L1, as deprecated in favour of this one: it gives 1 May 2026 as its end of life and 8 May 2026 as the date it is decommissioned. This site does not record MARKET for that reason.

## The message

- Name: `PRICE:{account identifier}:{epic}`
- Direction: Subscription, opened by the client and then fed by the server
- Subscribed to as: `PRICE:{account identifier}:{epic}`, in the mode `MERGE`
- Carried by: Lightstreamer, data adapter `Pricing`. IG's Streaming API Guide (labs.ig.com/streaming-api-guide.html), opened the same day, says the server address is the Lightstreamer address returned by the REST /session call and should not be hard coded, that the user is the active account identifier, and that the password is built from the CST and X-SECURITY-TOKEN tokens of the REST session. It gives 40 as the default number of simultaneous subscriptions on one connection.

## Fields

- `MID_OPEN` (type not stated, optional): The opening mid price.
- `HIGH` (type not stated, optional): The high of the day.
- `LOW` (type not stated, optional): The low of the day.
- `BIDQUOTEID` (type not stated, optional): The id of the bid quote, to refer to when trading.
- `ASKQUOTEID` (type not stated, optional): The id of the ask quote, to refer to when trading.
- `BIDPRICE1` (type not stated, optional): The bid price of the top tier of the ladder.
- `BIDPRICE2` (type not stated, optional): The bid price of tier 2 of the ladder.
- `BIDPRICE3` (type not stated, optional): The bid price of tier 3 of the ladder.
- `BIDPRICE4` (type not stated, optional): The bid price of tier 4 of the ladder.
- `BIDPRICE5` (type not stated, optional): The bid price of tier 5 of the ladder.
- `ASKPRICE1` (type not stated, optional): The ask price of the top tier of the ladder.
- `ASKPRICE2` (type not stated, optional): The ask price of tier 2 of the ladder.
- `ASKPRICE3` (type not stated, optional): The ask price of tier 3 of the ladder.
- `ASKPRICE4` (type not stated, optional): The ask price of tier 4 of the ladder.
- `ASKPRICE5` (type not stated, optional): The ask price of tier 5 of the ladder.
- `BIDSIZE1` (type not stated, optional): The size available at the first tier bid. Where it is absent, no ladder is configured for the instrument.
- `BIDSIZE2` (type not stated, optional): The size available at tier 2 of the bid ladder.
- `BIDSIZE3` (type not stated, optional): The size available at tier 3 of the bid ladder.
- `BIDSIZE4` (type not stated, optional): The size available at tier 4 of the bid ladder.
- `BIDSIZE5` (type not stated, optional): The size available at tier 5 of the bid ladder.
- `ASKSIZE1` (type not stated, optional): The size available at the first tier ask. Where it is absent, no ladder is configured for the instrument.
- `ASKSIZE2` (type not stated, optional): The size available at tier 2 of the ask ladder.
- `ASKSIZE3` (type not stated, optional): The size available at tier 3 of the ask ladder.
- `ASKSIZE4` (type not stated, optional): The size available at tier 4 of the ask ladder.
- `ASKSIZE5` (type not stated, optional): The size available at tier 5 of the ask ladder.
- `CURRENCY0` (type not stated, optional): The currency of the default ladder. The page says it is only sure to be filled where there is a ladder.
- `CURRENCY1` (type not stated, optional): The currency of the ladder fields that start C1.
- `C1BIDSIZE{1-5}` (type not stated, optional): Five fields, C1BIDSIZE1 to C1BIDSIZE5: the bid trading size threshold in that currency.
- `C1ASKSIZE{1-5}` (type not stated, optional): Five fields, C1ASKSIZE1 to C1ASKSIZE5: the ask trading size threshold in that currency.
- `CURRENCY2` (type not stated, optional): The currency of the ladder fields that start C2.
- `C2BIDSIZE{1-5}` (type not stated, optional): Five fields, C2BIDSIZE1 to C2BIDSIZE5: the bid trading size threshold in that currency.
- `C2ASKSIZE{1-5}` (type not stated, optional): Five fields, C2ASKSIZE1 to C2ASKSIZE5: the ask trading size threshold in that currency.
- `CURRENCY3` (type not stated, optional): The currency of the ladder fields that start C3.
- `C3BIDSIZE{1-5}` (type not stated, optional): Five fields, C3BIDSIZE1 to C3BIDSIZE5: the bid trading size threshold in that currency.
- `C3ASKSIZE{1-5}` (type not stated, optional): Five fields, C3ASKSIZE1 to C3ASKSIZE5: the ask trading size threshold in that currency.
- `CURRENCY4` (type not stated, optional): The currency of the ladder fields that start C4.
- `C4BIDSIZE{1-5}` (type not stated, optional): Five fields, C4BIDSIZE1 to C4BIDSIZE5: the bid trading size threshold in that currency.
- `C4ASKSIZE{1-5}` (type not stated, optional): Five fields, C4ASKSIZE1 to C4ASKSIZE5: the ask trading size threshold in that currency.
- `CURRENCY5` (type not stated, optional): The currency of the ladder fields that start C5.
- `C5BIDSIZE{1-5}` (type not stated, optional): Five fields, C5BIDSIZE1 to C5BIDSIZE5: the bid trading size threshold in that currency.
- `C5ASKSIZE{1-5}` (type not stated, optional): Five fields, C5ASKSIZE1 to C5ASKSIZE5: the ask trading size threshold in that currency.
- `TIMESTAMP` (type not stated, optional): The time of the update, in UTC milliseconds.
- `DLG_FLAG` (type not stated, optional): The dealing state of the market. One of CLOSED, CALL, DEAL, EDIT, CLOSINGSONLY, DEALNOEDIT, AUCTION, AUCTIONNOEDIT and SUSPEND.
- `NET_CHG` (type not stated, optional): The change in price against the open.
- `NET_CHG_PCT` (type not stated, optional): The change against the open, as a percentage.
- `DELAY` (type not stated, optional): Whether the price is delayed: 0 for no, 1 for yes.

## Limits that apply at IG

- Historical price data points a week: 10,000 data points per week
  - Scope: Per account, price history endpoints only
  - Status: verified. Source: [labs.ig.com](https://labs.ig.com/faq.html), checked 2026-10-12.
- Non trading requests a minute: 30 requests per minute
  - Scope: Per account, non trading calls only
  - Status: verified. Source: [labs.ig.com](https://labs.ig.com/faq.html), checked 2026-10-12.
- Non trading requests a minute: 60 requests per minute
  - Scope: Per application, that is per API key, non trading calls only
  - Status: verified. Source: [labs.ig.com](https://labs.ig.com/faq.html), checked 2026-10-12.
- Concurrent streaming subscriptions: 40 subscriptions
  - Scope: Per streaming connection
  - Status: verified. Source: [labs.ig.com](https://labs.ig.com/faq.html), checked 2026-10-12.
  - Corroborated by [labs.ig.com/streaming-api-guide.html](https://labs.ig.com/streaming-api-guide.html)
- Trading requests a minute: 100 requests per minute
  - Scope: Per account, trading calls only
  - Sources conflict: [ig.com](https://www.ig.com/en/trading-platforms/trading-apis/how-to-use-ig-api) states around 40 trade requests per minute, checked 2026-10-05. IG's own pages disagree. The conflict is labelled, not resolved. Pace against 40.
  - Status: conflicting. Source: [labs.ig.com](https://labs.ig.com/faq.html), checked 2026-10-12.

## More on IG

- [All IG messages](https://openbrokerapi.com/brokers/ig/messages): 5 documented here, grouped by what they do.
- [Subscribe to a stream: the call at each API](https://openbrokerapi.com/endpoints/streaming-subscribe): The same job at every broker and platform API recorded here, HTTP or not.
- [IG API quickstart](https://openbrokerapi.com/brokers/ig/quickstart)
- [All IG error codes](https://openbrokerapi.com/errors/ig)
- [IG API page](https://openbrokerapi.com/brokers/ig): The full record: access, authentication, limits and the source for each.

## Licence and how to cite

The records behind this page are all rights reserved. This file is the page itself, at its own address, in another format. It is not part of the CC BY 4.0 downloads listed at https://openbrokerapi.com/data. Quote from it with a link to the page.

Cite as: IG Streaming PRICE:{account identifier}:{epic}. Broker API Hub, https://openbrokerapi.com/brokers/ig/messages/price, newest check 2026-10-12.

Where you rely on a single figure, cite the source and the checked date printed beside it as well. Where this page and a broker's own documentation differ, the documentation wins.
