Error codes
IG API error codes
132 decoded error codes for IG. Each page gives the exact error text and what it means. 79 of them carry a fix or a next step, and each of those rows is marked Fix recorded. Where the source gives no remedy, the page says so.
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.
Deal confirmation reasons
60 codes
In the deal confirmation, not in the HTTP status.
ACCOUNT_The account is not enabled to trade.NOT_ ENABLED_ TO_ TRADING ATTACHED_Fix recorded The level of the attached stop or limit is not valid.ORDER_ LEVEL_ ERROR ATTACHED_Fix recorded The trailing stop value is not valid.ORDER_ TRAILING_ STOP_ ERROR CANNOT_The stop type cannot be changed.CHANGE_ STOP_ TYPE CANNOT_The stop cannot be removed.REMOVE_ STOP CLOSING_IG is not taking opening deals on a controlled risk basis on this market, so only closing trades are accepted.ONLY_ TRADES_ ACCEPTED_ ON_ THIS_ MARKET CLOSINGS_The account is currently restricted from opening new positions.ONLY_ ACCOUNT CONFLICTING_A resubmitted request does not match the original order.ORDER CONTACT_Fix recorded The instrument has an error.SUPPORT_ INSTRUMENT_ ERROR CR_IG could not process the order because the stop or limit level asked for is not a valid trading level in the underlying market.SPACING DUPLICATE_Fix recorded The order was rejected as a duplicate of an order issued earlier.ORDER_ ERROR EXCHANGE_Fix recorded An exchange check failed.MANUAL_ OVERRIDE EXPIRY_Fix recorded The order's expiry is shorter than the sprint market's minimum expiry.LESS_ THAN_ SPRINT_ MARKET_ MIN_ EXPIRY FINANCE_Fix recorded The total size of the deals placed on this market in a short period is more than IG permits.REPEAT_ DEALING FORCE_Forcing open a position in a different currency on the same market is not allowed.OPEN_ ON_ SAME_ MARKET_ DIFFERENT_ CURRENCY GENERAL_Fix recorded An error happened and no detailed information is available.ERROR GOOD_Fix recorded The working order was set to expire on a date that has already passed.TILL_ DATE_ IN_ THE_ PAST INSTRUMENT_Fix recorded The requested market was not found.NOT_ FOUND INSTRUMENT_Fix recorded The instrument cannot be traded in the currency given.NOT_ TRADEABLE_ IN_ THIS_ CURRENCY INSUFFICIENT_The account does not have enough funds available for the requested trade.FUNDS LEVEL_The market level moved and the deal was rejected.TOLERANCE_ ERROR LIMIT_The deal was rejected because the limit level is inconsistent with the current market price for the deal's direction.ORDER_ WRONG_ SIDE_ OF_ MARKET MANUAL_The time allowed for a manual order ran out.ORDER_ TIMEOUT MARGIN_Fix recorded The order was declined during margin checks.ERROR MARKET_The market is currently closed.CLOSED MARKET_The market is currently closed with edits.CLOSED_ WITH_ EDITS MARKET_The epic is due to expire shortly.CLOSING MARKET_The market does not allow short positions to be opened.NOT_ BORROWABLE MARKET_The market is currently offline.OFFLINE MARKET_Fix recorded The epic does not support the market order type.ORDERS_ NOT_ ALLOWED_ ON_ INSTRUMENT MARKET_The market can only be traded over the phone.PHONE_ ONLY MARKET_The market has been rolled to the next period.ROLLED MARKET_The requested market is not available to this account.UNAVAILABLE_ TO_ CLIENT MAX_The order size is larger than the maximum configured for the instrument for automatically hedging a deal's exposure.AUTO_ SIZE_ EXCEEDED MINIMUM_Fix recorded The order size is too small.ORDER_ SIZE_ ERROR MOVE_The limit level asked for is closer to the market level than the existing one.AWAY_ ONLY_ LIMIT MOVE_The stop level asked for is closer to the market level than the existing stop level.AWAY_ ONLY_ STOP MOVE_The order level asked for is closer to the market level than the existing order level.AWAY_ ONLY_ TRIGGER_ LEVEL NCR_The account is not permitted to open a position that is not controlled risk.POSITIONS_ ON_ CR_ ACCOUNT OPPOSING_Opening a controlled risk position in the opposite direction to an existing controlled risk position is not allowed.DIRECTION_ ORDERS_ NOT_ ALLOWED OPPOSING_The deal was rejected to avoid holding long and short positions on the same market, or long and short positions and working orders on the same epic.POSITIONS_ NOT_ ALLOWED ORDER_Fix recorded The order was declined.DECLINED ORDER_The order is locked and cannot be edited by the user.LOCKED ORDER_Fix recorded The order was not found.NOT_ FOUND ORDER_The order size cannot be filled at this price at the moment.SIZE_ CANNOT_ BE_ FILLED OVER_Fix recorded The total position size at this stop level is greater than the size allowed on this market.NORMAL_ MARKET_ SIZE PARTIALY_The position cannot be deleted because it has been partially closed.CLOSED_ POSITION_ NOT_ DELETED POSITION_Fix recorded The deal was rejected because of an existing position in the opposite direction.ALREADY_ EXISTS_ IN_ OPPOSITE_ DIRECTION POSITION_Fix recorded The position cannot be cancelled.NOT_ AVAILABLE_ TO_ CANCEL POSITION_Fix recorded The position cannot be closed.NOT_ AVAILABLE_ TO_ CLOSE POSITION_Fix recorded The position was not found.NOT_ FOUND REJECT_Fix recorded A spread bet trade was submitted on a CFD account, which is not valid.SPREADBET_ ORDER_ ON_ CFD_ ACCOUNT SIZE_Fix recorded The order size is not a multiple of the size increment set for the market.INCREMENT SPRINT_The position's expiry would have fallen after the market's closing time.MARKET_ EXPIRY_ AFTER_ MARKET_ CLOSE STOP_The market does not allow attached stop or limit orders.OR_ LIMIT_ NOT_ ALLOWED STOP_Fix recorded The order requires a stop.REQUIRED_ ERROR STRIKE_The strike level submitted is not valid.LEVEL_ TOLERANCE TRAILING_The market or the account does not allow trailing stops.STOP_ NOT_ ALLOWED UNKNOWNFix recorded The operation ended in an unknown result.WRONG_The operation was attempted on the wrong side of the market for its direction.SIDE_ OF_ MARKET
HTTP 400
18 codes
error.Fix recorded The date range in a price history request is not valid.invalid. daterange error.Fix recorded A date in a price history request is not in a valid format.malformed. date error.Fix recorded A login was sent to version 1 of the session endpoint by a client of the IG Singapore company.public- api. failure. encryption. required error.Fix recorded The request named more epics than the endpoint accepts in one call.public- api. too- many- epics error.Fix recorded The date range in the request is not valid.request. invalid. date- range error.Fix recorded The page size in the request is not valid.request. invalid. page- size error.Fix recorded No API key was sent with the request.security. api- key- missing error.Fix recorded The epic given when adding a market to a watchlist is not valid.service. watchlists. add- instrument. invalid- epic error.Fix recorded A switch to the account that is already active was attempted.switch. accountId- must- be- different error.Fix recorded A switch to an account id that is not valid was attempted.switch. invalid- accountId error.Market orders are not supported for this request.trading. otc. market- orders. not- supported error.The epic is not supported by the price history endpoint.unsupported. epic error.Fix recorded An attempt was made to delete a system generated watchlist, and IG rejected it.watchlists. management. cannot- delete- watchlist error.Fix recorded A watchlist could not be created because another watchlist already has that name.watchlists. management. duplicate- name error.Fix recorded An attempt was made to delete a watchlist that does not exist, and IG rejected it.watchlists. management. watchlist- not- found invalid.Fix recorded A generic error in the input data.input invalid.Fix recorded The request asked for too many markets in one call.input. too. many. markets public-A client side error on the indicative costs and charges endpoints.api. costs- and- charges. client- error
HTTP 400 or 500
1 code
HTTP 401
23 codes
authentication.The account used to log in is not a valid client account.failure. not- a- client- account error.Fix recorded The account is not allowed to log in to the API.public- api. failure. kyc. required error.Fix recorded The request did not carry all of the security credentials the endpoint needs.public- api. failure. missing. credentials error.Fix recorded The account is not allowed to log in to the public API.public- api. failure. pending. agreements. required error.The user's preferred account is disabled.public- api. failure. preferred. account. disabled error.Fix recorded The user has not set a preferred account.public- api. failure. preferred. account. not. set error.The account has been denied login privileges.security. account- access- denied error.Fix recorded The account has been migrated to IG's client and account model.security. account- migrated error.The account has not been activated yet.security. account- not- yet- activated error.The account has been suspended.security. account- suspended error.Fix recorded The endpoint needs an account token and the one sent was not valid.security. account- token- invalid error.Fix recorded The endpoint needs an account token and none was sent.security. account- token- missing error.All of the client's accounts are in a pending state.security. all- accounts- pending error.All of the client's accounts have been suspended.security. all- accounts- suspended error.The client has been suspended from using the platform.security. client- suspended error.Fix recorded The endpoint needs a client token and the one sent was not valid.security. client- token- invalid error.Fix recorded The endpoint needs a client token and none was sent.security. client- token- missing error.Fix recorded An unexpected error happened on IG's side and the request could not proceed.security. generic error.Fix recorded The user agent string sent with the request is not valid.security. invalid- application error.Fix recorded The credentials used to log in are not valid, so the login is rejected.security. invalid- details error.The site the account belongs to is not accessible through the API services.security. invalid- website error.Fix recorded The OAuth access token is not valid.security. oauth- token- invalid error.Fix recorded The maximum number of failed login attempts has been reached.security. too- many- failed- attempts
HTTP 403
14 codes
endpoint.Fix recorded The API key was not accepted for this endpoint.unavailable. for. api- key error.Fix recorded The account's traffic allowance has been exceeded.public- api. exceeded- account- allowance error.Fix recorded The account's allowance for historical data has been exceeded.public- api. exceeded- account- historical- data- allowance error.Fix recorded The account's allowance for trading requests has been exceeded.public- api. exceeded- account- trading- allowance error.Fix recorded The traffic allowance of the API key has been exceeded.public- api. exceeded- api- key- allowance error.Fix recorded The account's product type is not supported for public API users.public- api. failure. product- code- not- allowed error.Fix recorded IG's reference describes this code as "Stockbroking not supported for Public API users." It is listed under HTTP 403 in the Exceptions tables for /session.public- api. failure. stockbroking- not- supported error.Fix recorded The API key was not accepted because it is not currently enabled.security. api- key- disabled error.Fix recorded The API key provided was not accepted.security. api- key- invalid error.Fix recorded The API key is not valid for the account making the request.security. api- key- restricted error.Fix recorded The API key was not accepted because it has been revoked.security. api- key- revoked unauthorised.The account is not authorised to access equity data.access. to. equity. exception unauthorised.Fix recorded The API key is in the revoked state and cannot be used.api- key. revoked unauthorised.Fix recorded The API key does not belong to the authenticated individual.clientId. api- key. mismatch
HTTP 404
7 codes
error.Fix recorded No deal confirmation was found for the deal reference given.confirms. deal- not- found error.Fix recorded The watchlist id is not valid.invalid. watchlist error.Fix recorded The requested position was not found.position. notfound error.Fix recorded The epic in the request was not found.public- api. epic- not- found error.Fix recorded The instrument named in the dealing request was not found.trading. otc. instrument- not- found invalid.Fix recorded The URL requested is not valid.url public-The indicative quote reference was not found.api. costs- and- charges. indicative- quote- reference- not- found
HTTP 4xx
1 code
HTTP 500
4 codes
error.Fix recorded An unexpected error happened on IG's side while handling a positions request, and it could not proceed.positions. generic error.The switch could not make the target account the new default account.switch. cannot- set- default- account public-A server side error on the indicative costs and charges endpoints.api. costs- and- charges. general- error system.A system error on IG's side.error
HTTP 500 or 504
1 code
No HTTP status recorded
2 codes
Written up at length
How to cite this
IG API error codes. Broker API Hub, https://openbrokerapi.com/errors/ig, newest check .
Where you rely on a single figure, cite the source and the checked date printed beside it as well.