{"name":"Broker API Hub: Bitget","page":"https://openbrokerapi.com/brokers/bitget","file":"https://openbrokerapi.com/data/brokers/bitget.json","generated":"2026-10-12","generatedBasis":"The newest checked date among the records in this file. It is not the date the file was built.","newestReading":"2026-10-12","newestReadingBasis":"The date the page prints as Newest reading: the newest checked date on the record itself, on its claims, on its limit and endpoint records and, for a platform, on a broker's note that it offers the platform. generated can be later, because this file also holds error, change and MCP records.","licence":"Mixed. Each section states its own licence. Sections from the registers are CC BY 4.0. Sections from the broker, platform, endpoint and error records are all rights reserved and are given for reference.","licenceUrl":"https://creativecommons.org/licenses/by/4.0/","cite":"Broker API Hub, Bitget, openbrokerapi.com/brokers/bitget, newest check 2026-10-12","note":"Independent and unofficial. An empty list or a null means this site holds no record. It does not mean that none exists. Every record carries its own source and checked date: cite those where you rely on a single figure.","identity":{"licence":"All rights reserved","leftOut":"The tagline, which is this site's own writing. It is on the page.","id":"bitget","slug":"bitget","name":"Bitget","kind":"broker","nativeApi":true,"apiFamily":["REST","WebSocket"],"products":["Spot","Margin","Perpetual futures"],"availability":"active","legalEntity":null,"regulator":null,"docsUrl":"https://www.bitget.com/docs/uta/Introduction","baseUrls":{"live":"https://api.bitget.com","stream_live":"wss://ws.bitget.com/v3/ws/public","stream_live_private":"wss://ws.bitget.com/v3/ws/private","stream_demo":"wss://wspap.bitget.com/v3/ws/public","stream_demo_private":"wss://wspap.bitget.com/v3/ws/private"},"orderTypes":[],"sources":[{"url":"https://www.bitget.com/docs/uta/Introduction","title":"Bitget API introduction","checked":"2026-10-12"},{"url":"https://www.bitget.com/docs/uta/sdk/overview","title":"Bitget API, official SDKs","checked":"2026-10-12"},{"url":"https://www.bitget.com/docs/uta/agent-hub","title":"Bitget Agent Hub","checked":"2026-10-12"},{"url":"https://www.bitget.com/docs/uta/quick-start","title":"Bitget API quick start, Rate Limit","checked":"2026-10-12"},{"url":"https://bitgetlimited.github.io/apidoc/en/spot/","title":"Bitget API docs (legacy v1), frequency limiting rules","checked":"2026-10-12"}],"lastChecked":"2026-10-12","review":"verified-at-source"},"claims":{"licence":"All rights reserved","records":[{"key":"access_route","value":"Log in to the Bitget website and create an API key under API Key Management. Each key set is an API key, a secret key and a passphrase you choose, with read or read and write permissions, and one UID can hold up to 50 key sets. Bitget recommends binding the key to an IP address.","status":"verified","sources":[{"url":"https://www.bitget.com/docs/uta/quick-start","title":"Bitget API quick start","checked":"2026-10-12"}]},{"key":"demo","value":"Yes: demo trading with virtual funds. Switch the account to Demo mode on the website, create a Demo API key there, then send REST requests to the usual host with the header paptrading set to 1. WebSocket demo trading has its own addresses on wspap.bitget.com.","status":"verified","sources":[{"url":"https://www.bitget.com/docs/uta/quick-start","title":"Bitget API quick start, Demo Trading","checked":"2026-10-12"}]},{"key":"auth","value":"Signed requests. Every REST request carries the headers ACCESS-KEY, ACCESS-SIGN, ACCESS-TIMESTAMP and ACCESS-PASSPHRASE. The signature is the timestamp, the upper case method, the request path, the query string and the body joined together, signed with HMAC SHA256 using the secret key (or with an RSA private key) and then Base64 encoded. For REST the page gives the timestamp in milliseconds since the epoch, and its sample code computes it that way. The WebSocket login is signed in a similar way, but Bitget's page is not consistent about its timestamp unit, so this record states none for it; the login message page sets out both readings.","status":"verified","sources":[{"url":"https://www.bitget.com/docs/uta/quick-start","title":"Bitget API quick start, Header and Signature","checked":"2026-10-12"}]},{"key":"streaming","value":"WebSocket, with a public channel and a private channel that needs a login message. Stated on the quick start page: at most 100 connections per IP, 300 connection requests per IP in 5 minutes, at most 1,000 channel subscriptions per connection (Bitget advises fewer than 50), 240 subscription requests an hour per connection, and up to 10 messages a second per connection. Send the string ping every 30 seconds; the server disconnects after 2 minutes without one.","status":"verified","sources":[{"url":"https://www.bitget.com/docs/uta/quick-start","title":"Bitget API quick start, WebSocket","checked":"2026-10-12"}]},{"key":"rate_limits","value":"The quick start page for the current API states an overall limit of 6,000 requests a minute per IP on the common domain name, with each endpoint also carrying its own limit on its own documentation page, counted separately. REST and WebSocket share one allowance, and a breach returns HTTP 429. The response header x-mbx-used-remain-limit reports what is left for the endpoint called. Bitget's legacy v1 documentation, still published, states 20 requests in 2 seconds for public market data and 10 a second for a general endpoint with no figure of its own.","status":"verified","sources":[{"url":"https://www.bitget.com/docs/uta/quick-start","title":"Bitget API quick start, Rate Limit","checked":"2026-10-12"},{"url":"https://bitgetlimited.github.io/apidoc/en/spot/","title":"Bitget API docs (legacy v1), frequency limiting rules","checked":"2026-10-12"}]}]},"platformApis":{"licence":"All rights reserved","records":[]},"sdks":{"licence":"All rights reserved","records":[{"name":"bitget-java-sdk-api","language":"Java","url":"https://github.com/BitgetLimited/v3-bitget-api-sdk/tree/master/bitget-java-sdk-api","official":true,"source":"https://www.bitget.com/docs/uta/sdk/overview","checked":"2026-10-12"},{"name":"bitget-python-sdk-api","language":"Python","url":"https://github.com/BitgetLimited/v3-bitget-api-sdk/tree/master/bitget-python-sdk-api","official":true,"source":"https://www.bitget.com/docs/uta/sdk/overview","checked":"2026-10-12"},{"name":"bitget-node-sdk-api","language":"Node.js","url":"https://github.com/BitgetLimited/v3-bitget-api-sdk/tree/master/bitget-node-sdk-api","official":true,"source":"https://www.bitget.com/docs/uta/sdk/overview","checked":"2026-10-12"},{"name":"bitget-golang-sdk-api","language":"Go","url":"https://github.com/BitgetLimited/v3-bitget-api-sdk/tree/master/bitget-golang-sdk-api","official":true,"source":"https://www.bitget.com/docs/uta/sdk/overview","checked":"2026-10-12"},{"name":"bitget-php-sdk-api","language":"PHP","url":"https://github.com/BitgetLimited/v3-bitget-api-sdk/tree/master/bitget-php-sdk-api","official":true,"source":"https://www.bitget.com/docs/uta/sdk/overview","checked":"2026-10-12"}]},"endpoints":{"licence":"All rights reserved","leftOut":"Parameters, request bodies, example responses and notes. Each is on the endpoint's page.","records":[]},"calls":{"licence":"All rights reserved","what":"Functions of a language binding and messages of a wire protocol: calls that are not HTTP requests, so they have no method and no path and are in no OpenAPI file.","leftOut":"Descriptions of arguments and fields, return values, samples and notes. Each is on the call's page.","records":[{"kind":"message","interface":"Bitget WebSocket API","name":"account","group":"Private channels","summary":"The unified trading account: equity, margin figures and the balance of each coin. Bitget says data is pushed on first subscribing, when orders are filled, when funds are settled and when a balance changes.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":true},{"name":"args","type":"List<Object>","required":true},{"name":"args[].instType","type":"String","required":true},{"name":"args[].topic","type":"String","required":true}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Private channel","url":"wss://ws.bitget.com/v3/ws/private"},{"label":"Private channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/private"}]},"channel":{"name":"account","mode":null},"answer":{"name":"account","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"ts","type":"Number","required":null},{"name":"data","type":"List","required":null},{"name":"data[].totalEquity","type":"String","required":null},{"name":"data[].effEquity","type":"String","required":null},{"name":"data[].mmr","type":"String","required":null},{"name":"data[].imr","type":"String","required":null},{"name":"data[].mgnRatio","type":"String","required":null},{"name":"data[].positionMgnRatio","type":"String","required":null},{"name":"data[].unrealisedPnL","type":"String","required":null},{"name":"data[].coin","type":"List","required":null},{"name":"data[].coin[].coin","type":"String","required":null},{"name":"data[].coin[].balance","type":"String","required":null},{"name":"data[].coin[].balanceOriginal","type":"String","required":null},{"name":"data[].coin[].locked","type":"String","required":null},{"name":"data[].coin[].equity","type":"String","required":null},{"name":"data[].coin[].usdValue","type":"String","required":null},{"name":"data[].coin[].available","type":"String","required":null},{"name":"data[].coin[].borrow","type":"String","required":null},{"name":"data[].coin[].debts","type":"String","required":null},{"name":"data[].coin[].bonus","type":"String","required":null}]},"tasks":["streaming-subscribe"],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/private/Account-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/account"},{"kind":"message","interface":"Bitget WebSocket API","name":"books","group":"Public channels","summary":"Order book depth for one symbol. The topic chooses the depth: books for every level, books1 for 1, books5 for 5 and books50 for 50. books and books50 send a snapshot first and then incremental updates, while books1 and books5 send a snapshot every time.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":true},{"name":"args","type":"List<Object>","required":true},{"name":"args[].instType","type":"String","required":true},{"name":"args[].topic","type":"String","required":true},{"name":"args[].symbol","type":"String","required":true}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public channel","url":"wss://ws.bitget.com/v3/ws/public"},{"label":"Public channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/public"}]},"channel":{"name":"books","mode":null},"answer":{"name":"books","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"ts","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].a","type":"List<String>","required":null},{"name":"data[].b","type":"List<String>","required":null},{"name":"data[].seq","type":"String","required":null},{"name":"data[].pseq","type":"String","required":null},{"name":"data[].maxDepth","type":"String","required":null},{"name":"data[].ts","type":"String","required":null}]},"tasks":[],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/public/Order-Book-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/books"},{"kind":"message","interface":"Bitget WebSocket API","name":"fill","group":"Private channels","summary":"The fills of the unified trading account in real time. Bitget says nothing is pushed on first subscribing, and that a push follows when a spot, leveraged or futures order is filled.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":null},{"name":"args","type":"List<Object>","required":null},{"name":"args[].instType","type":"String","required":null},{"name":"args[].topic","type":"String","required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Private channel","url":"wss://ws.bitget.com/v3/ws/private"},{"label":"Private channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/private"}]},"channel":{"name":"fill","mode":null},"answer":{"name":"fill","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].category","type":"String","required":null},{"name":"data[].orderId","type":"String","required":null},{"name":"data[].clientOid","type":"String","required":null},{"name":"data[].execId","type":"String","required":null},{"name":"data[].execLinkId","type":"String","required":null},{"name":"data[].symbol","type":"String","required":null},{"name":"data[].orderType","type":"String","required":null},{"name":"data[].side","type":"String","required":null},{"name":"data[].holdSide","type":"String","required":null},{"name":"data[].tradeSide","type":"String","required":null},{"name":"data[].execPrice","type":"String","required":null},{"name":"data[].execQty","type":"String","required":null},{"name":"data[].execValue","type":"String","required":null},{"name":"data[].execPnl","type":"String","required":null},{"name":"data[].tradeScope","type":"String","required":null},{"name":"data[].feeDetail","type":"String","required":null},{"name":"data[].execTime","type":"String","required":null},{"name":"data[].updatedTime","type":"String","required":null},{"name":"data[].isRPI","type":"String","required":null}]},"tasks":[],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/private/Fill-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/fill"},{"kind":"message","interface":"Bitget WebSocket API","name":"kline","group":"Public channels","summary":"Candlesticks for one symbol at one interval. Bitget says data is pushed once a second while there are trades, and once per interval when there are none.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":true},{"name":"args","type":"List<Object>","required":true},{"name":"args[].instType","type":"String","required":true},{"name":"args[].topic","type":"String","required":true},{"name":"args[].symbol","type":"String","required":true},{"name":"args[].interval","type":"String","required":true}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public channel","url":"wss://ws.bitget.com/v3/ws/public"},{"label":"Public channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/public"}]},"channel":{"name":"kline","mode":null},"answer":{"name":"kline","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].start","type":"String","required":null},{"name":"data[].open","type":"String","required":null},{"name":"data[].close","type":"String","required":null},{"name":"data[].high","type":"String","required":null},{"name":"data[].low","type":"String","required":null},{"name":"data[].volume","type":"String","required":null},{"name":"data[].turnover","type":"String","required":null}]},"tasks":[],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/public/Candlesticks-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/kline"},{"kind":"message","interface":"Bitget WebSocket API","name":"login","group":"Connection","summary":"Logs a WebSocket connection in, so that private channels can be subscribed to. It carries the API key, its passphrase, a timestamp and a signature of that timestamp made with the secret key. Bitget says a failed login disconnects the connection.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"op","type":null,"required":null},{"name":"args","type":null,"required":null},{"name":"args[].apiKey","type":null,"required":null},{"name":"args[].passphrase","type":null,"required":null},{"name":"args[].timestamp","type":null,"required":null},{"name":"args[].sign","type":null,"required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Private channel","url":"wss://ws.bitget.com/v3/ws/private"},{"label":"Private channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/private"}]},"answer":{"name":"login","fields":[{"name":"event","type":null,"required":null},{"name":"code","type":null,"required":null},{"name":"msg","type":null,"required":null}]},"tasks":["session"],"status":"verified","source":"https://www.bitget.com/docs/uta/quick-start#login","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/login"},{"kind":"message","interface":"Bitget WebSocket API","name":"order","group":"Private channels","summary":"The orders of the unified trading account. Bitget says nothing is pushed on first subscribing, and that a push follows when a spot, margin or futures order is placed, filled or cancelled.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":null},{"name":"args","type":"List<Object>","required":null},{"name":"args[].instType","type":"String","required":null},{"name":"args[].topic","type":"String","required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Private channel","url":"wss://ws.bitget.com/v3/ws/private"},{"label":"Private channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/private"}]},"channel":{"name":"order","mode":null},"answer":{"name":"order","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].category","type":"String","required":null},{"name":"data[].symbol","type":"String","required":null},{"name":"data[].orderId","type":"String","required":null},{"name":"data[].clientOid","type":"String","required":null},{"name":"data[].price","type":"String","required":null},{"name":"data[].qty","type":"String","required":null},{"name":"data[].orderType","type":"String","required":null},{"name":"data[].timeInForce","type":"String","required":null},{"name":"data[].side","type":"String","required":null},{"name":"data[].holdSide","type":"String","required":null},{"name":"data[].tradeSide","type":"String","required":null},{"name":"data[].orderStatus","type":"String","required":null},{"name":"data[].cumExecQty","type":"String","required":null},{"name":"data[].cumExecValue","type":"String","required":null},{"name":"data[].avgPrice","type":"String","required":null},{"name":"data[].createdTime","type":"String","required":null},{"name":"data[].updatedTime","type":"String","required":null}]},"tasks":["streaming-subscribe"],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/private/Order-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/order"},{"kind":"message","interface":"Bitget WebSocket API","name":"ping","group":"Connection","summary":"Keeps a connection alive. It is the plain string ping, not JSON, and the server answers with the string pong. Bitget recommends sending it every 30 seconds and says the server disconnects after 2 minutes without one.","role":"request","payloadType":null,"replies":[],"fields":[],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public channel","url":"wss://ws.bitget.com/v3/ws/public"},{"label":"Public channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/public"},{"label":"Private channel","url":"wss://ws.bitget.com/v3/ws/private"},{"label":"Private channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/private"}]},"answer":{"name":"pong","fields":[]},"tasks":["session"],"status":"verified","source":"https://www.bitget.com/docs/uta/quick-start#connect","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/ping"},{"kind":"message","interface":"Bitget WebSocket API","name":"position","group":"Private channels","summary":"The positions of the unified trading account. Bitget says data is pushed on first subscribing, and then incrementally when futures positions are opened or closed and when orders that close a position are placed, changed or cancelled.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":null},{"name":"args","type":"List<Object>","required":null},{"name":"args[].instType","type":"String","required":null},{"name":"args[].topic","type":"String","required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Private channel","url":"wss://ws.bitget.com/v3/ws/private"},{"label":"Private channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/private"}]},"channel":{"name":"position","mode":null},"answer":{"name":"position","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].symbol","type":"String","required":null},{"name":"data[].marginCoin","type":"String","required":null},{"name":"data[].marginSize","type":"String","required":null},{"name":"data[].marginMode","type":"String","required":null},{"name":"data[].posSide","type":"String","required":null},{"name":"data[].holdMode","type":"String","required":null},{"name":"data[].positionStatus","type":"String","required":null},{"name":"data[].size","type":"String","required":null},{"name":"data[].available","type":"String","required":null},{"name":"data[].frozen","type":"String","required":null},{"name":"data[].avgPrice","type":"String","required":null},{"name":"data[].leverage","type":"String","required":null},{"name":"data[].curRealisedPnl","type":"String","required":null},{"name":"data[].unrealisedPnl","type":"String","required":null},{"name":"data[].liqPrice","type":"String","required":null},{"name":"data[].mmr","type":"String","required":null},{"name":"data[].markPrice","type":"String","required":null},{"name":"data[].createdTime","type":"String","required":null},{"name":"data[].updatedTime","type":"String","required":null}]},"tasks":[],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/private/Positions-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/position"},{"kind":"message","interface":"Bitget WebSocket API","name":"publicTrade","group":"Public channels","summary":"The public trades of one symbol, pushed in real time: the price, the size, the side and the time of each fill.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":true},{"name":"args","type":"List<Object>","required":true},{"name":"args[].instType","type":"String","required":true},{"name":"args[].topic","type":"String","required":true},{"name":"args[].symbol","type":"String","required":true}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public channel","url":"wss://ws.bitget.com/v3/ws/public"},{"label":"Public channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/public"}]},"channel":{"name":"publicTrade","mode":null},"answer":{"name":"publicTrade","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].i","type":"String","required":null},{"name":"data[].L","type":"String","required":null},{"name":"data[].p","type":"String","required":null},{"name":"data[].v","type":"String","required":null},{"name":"data[].S","type":"String","required":null},{"name":"data[].T","type":"String","required":null},{"name":"data[].isRPI","type":"String","required":null}]},"tasks":[],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/public/New-Trades-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/publictrade"},{"kind":"message","interface":"Bitget WebSocket API","name":"ticker","group":"Public channels","summary":"The latest price of one symbol with its best bid and ask and its 24 hour figures. Bitget says updates are pushed every 200 ms while the market is changing.","role":"subscription","payloadType":null,"replies":[],"fields":[{"name":"op","type":"String","required":true},{"name":"args","type":"List<Object>","required":true},{"name":"args[].instType","type":"String","required":true},{"name":"args[].topic","type":"String","required":true},{"name":"args[].symbol","type":"String","required":true}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public channel","url":"wss://ws.bitget.com/v3/ws/public"},{"label":"Public channel, demo trading","url":"wss://wspap.bitget.com/v3/ws/public"}]},"channel":{"name":"ticker","mode":null},"answer":{"name":"ticker","fields":[{"name":"arg","type":"Object","required":null},{"name":"action","type":"String","required":null},{"name":"data","type":"List<Object>","required":null},{"name":"data[].lastPrice","type":"String","required":null},{"name":"data[].bid1Price","type":"String","required":null},{"name":"data[].ask1Price","type":"String","required":null},{"name":"data[].bid1Size","type":"String","required":null},{"name":"data[].ask1Size","type":"String","required":null},{"name":"data[].highPrice24h","type":"String","required":null},{"name":"data[].lowPrice24h","type":"String","required":null},{"name":"data[].openPrice24h","type":"String","required":null},{"name":"data[].price24hPcnt","type":"String","required":null},{"name":"data[].turnover24h","type":"String","required":null},{"name":"data[].volume24h","type":"String","required":null}]},"tasks":["streaming-subscribe"],"status":"verified","source":"https://www.bitget.com/docs/uta/websocket/public/Tickers-Channel","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/bitget/messages/ticker"}]},"limits":{"licence":"CC BY 4.0","register":"https://openbrokerapi.com/data/limits.json","structure":"structuredValue, structuredUnit and windowSeconds restate a limit as numbers where its own value and unit, or the opening of its text, state them outright: a count, optionally what is counted, and a window. They are read by a fixed pattern and are null wherever the pattern does not fit, so a null means not restated, not that there is no limit. windowSeconds is null for an allowance that is not a rate. structuredUnit is null where the wording does not name what is counted. A week is taken as 7 days. They add nothing to the record: value, unit, text and scope are unchanged and remain the record. A record whose status is conflicting has a second reading under conflict, which these fields do not restate.","records":[{"id":"bitget.headline","broker":"bitget","name":"Public market data, legacy v1 API","value":null,"text":"20 per 2 s per IP, public market data","unit":null,"scope":"Per IP address, public market data endpoints of the legacy v1 API","source":"https://bitgetlimited.github.io/apidoc/en/spot/","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"note":"Re-read on the legacy v1 documentation on 12 Oct 2026: 20 requests in 2 seconds. Authenticated endpoints there are set per endpoint per UID, and a general endpoint with no figure of its own is 10 a second. HTTP 429 on breach. The window is 2 seconds, which a single unit cannot state, so the figure stays as wording. The current API states its own overall limit, held in a separate record.","structuredValue":20,"structuredUnit":null,"windowSeconds":2},{"id":"bitget.overall-per-ip","broker":"bitget","name":"Overall requests a minute","value":6000,"text":null,"unit":"requests per minute","scope":"Per IP address, all requests to the common domain name, with REST and WebSocket sharing one allowance","source":"https://www.bitget.com/docs/uta/quick-start","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"note":"Each endpoint also carries its own limit on its own documentation page, counted separately. HTTP 429 on breach.","structuredValue":6000,"structuredUnit":"requests","windowSeconds":60},{"id":"bitget.ws-connections","broker":"bitget","name":"Concurrent WebSocket connections","value":100,"text":null,"unit":"connections","scope":"Per IP address","source":"https://www.bitget.com/docs/uta/quick-start","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"note":"Also 300 connection requests per IP in 5 minutes.","structuredValue":100,"structuredUnit":"connections","windowSeconds":null},{"id":"bitget.ws-messages","broker":"bitget","name":"WebSocket messages a second","value":10,"text":null,"unit":"messages per second","scope":"Per WebSocket connection, counting ping, login, subscribe and unsubscribe messages","source":"https://www.bitget.com/docs/uta/quick-start","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"note":"A connection that sends more is disconnected, and an IP that is disconnected repeatedly may be blocked.","structuredValue":10,"structuredUnit":"messages","windowSeconds":1},{"id":"bitget.ws-subscription-requests","broker":"bitget","name":"WebSocket subscription requests an hour","value":240,"text":null,"unit":"subscription requests per hour","scope":"Per WebSocket connection","source":"https://www.bitget.com/docs/uta/quick-start","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"structuredValue":240,"structuredUnit":"subscription requests","windowSeconds":3600},{"id":"bitget.ws-subscriptions","broker":"bitget","name":"Concurrent WebSocket channel subscriptions","value":1000,"text":null,"unit":"channel subscriptions","scope":"Per WebSocket connection","source":"https://www.bitget.com/docs/uta/quick-start","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"note":"Bitget recommends fewer than 50 channels on one connection.","structuredValue":1000,"structuredUnit":"channel subscriptions","windowSeconds":null}]},"errors":{"licence":"All rights reserved","leftOut":"The meaning and the fix of each error. They are this site's own writing, which the open licence does not cover, so each record gives the address of the page that holds them.","index":null,"register":"https://openbrokerapi.com/data/errors.json","records":[]},"mcpServers":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/ai/mcp-directory","register":"https://openbrokerapi.com/data/mcp-servers.json","records":[{"id":"bitget-agent-hub","name":"Bitget Agent Hub MCP server","vendor":"Bitget","owner":"bitget","official":true,"officialNote":"First party. Documented in Bitget's own API documentation, with the code in the Bitget-AI organisation on GitHub under an MIT licence. Launch date not stated on the page.","can":"Spot and futures orders, account queries, transfers between accounts and live market data. A separate read only data server covers US share and ETF data and needs no account. The same page documents a command line tool and an SDK.","placesOrders":true,"posture":"open","postureNote":"Order tools are on by default. The page documents an optional read only mode that removes every write tool at startup, a paper trading mode, and an explicit confirm option required for withdrawals and cancel all. The Agentic account route cannot withdraw at all.","custody":"local","custodyNote":"The page says it runs as a local process and that the API key is signed locally and never leaves the machine. An OAuth route to a separate Agentic account is also documented.","demo":true,"demoNote":"A paper trading option routes every request to Bitget's demo environment with a Demo key.","maintained":"Yes, first party. The page points to the GitHub repository for the latest version.","sources":[{"url":"https://www.bitget.com/docs/uta/agent-hub","title":"Bitget Agent Hub","checked":"2026-10-12"}],"checked":"2026-10-12"}],"noneFound":[]},"partnerProgramme":{"licence":"CC BY 4.0","register":"https://openbrokerapi.com/data/programmes.json","page":"https://openbrokerapi.com/partners/bitget","record":{"id":"bitget","firm":"Bitget","programmeType":"not-verified","pagesOpened":[],"publishedFigure":null,"figureAsWorded":"not verified this cycle: no programme page was opened","figureIsCeiling":false,"figureNote":null,"restrictionsForPublishers":"No programme page was opened this cycle, so no restriction is recorded. The address tried returned HTTP 404, which is not evidence that the firm runs no programme.","documentsNotOpened":null,"checked":"2026-10-05","verification":"not-verified"}},"changes":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/changes","register":"https://openbrokerapi.com/data/changes.json","checkedMeans":"checked is the day the source was last opened. It is null where the register does not record one: read that as not recorded.","records":[{"id":"bitget-2026-10-12-81","date":"2026-10-12","kind":"docs","text":"Bitget's current API documentation states an overall limit of 6,000 requests a minute per IP address, alongside per endpoint limits. This site previously held only the legacy v1 figure of 20 requests in 2 seconds for public market data.","source":"https://www.bitget.com/docs/uta/quick-start","sourceTitle":"Bitget API quick start","checked":"2026-10-12"},{"id":"bitget-2026-10-12-91","date":"2026-10-12","kind":"docs","text":"Bitget's quick start page gives the REST signing timestamp in milliseconds, but for the WebSocket login its text says milliseconds and its JavaScript sample uses milliseconds while its Java step divides by 1,000 and its example holds a ten digit value. This site's authentication entry for Bitget now keeps the milliseconds statement to REST and states no unit for the login, where it previously said only that the timestamp is in milliseconds.","source":"https://www.bitget.com/docs/uta/quick-start","sourceTitle":"Bitget API quick start","checked":"2026-10-12"}]}}