> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://okx-demo.ferndocs.com/api/api-reference/market/get-position-tiers/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://okx-demo.ferndocs.com/_mcp/server. # Get position tiers GET https://www.okx.com/api/v5/public/position-tiers Retrieve position tier information, including maximum position, initial and maintenance margin requirements, and maximum available leverage for each tier. Reference: https://okx-demo.ferndocs.com/api/api-reference/market/get-position-tiers ## Request ### Query parameters - `instType` (enum, required) — Instrument type. - Allowed values: `MARGIN`, `SWAP`, `FUTURES`, `OPTION` - `tdMode` (enum, required) — Trade mode / margin mode. - Allowed values: `cross`, `isolated` - `uly` (string, optional) — Underlying. Required for FUTURES/SWAP/OPTION when instFamily is not passed. Comma-separated for multiple (max 3). - `instFamily` (string, optional) — Instrument family. Required for FUTURES/SWAP/OPTION when uly is not passed. Comma-separated for multiple (max 5). - `instId` (string, optional) — Instrument ID, only applicable to MARGIN. Comma-separated for multiple (max 5). - `ccy` (string, optional) — Margin currency, only applicable to cross MARGIN. - `tier` (string, optional) — Tier number. ## Response ### 200 Successful response - `code` (string, optional) — Result code. `0` means success; any other value is an error code. - `msg` (string, optional) — Error message. Empty on success. - `data` (list of ApiV5PublicPositionTiersGetResponsesContentApplicationJsonSchemaDataItems, optional) ## Types ### ApiV5PublicPositionTiersGetResponsesContentApplicationJsonSchemaDataItems - `uly` (string, optional) — Underlying. Only applicable to FUTURES/SWAP/OPTION. - `instFamily` (string, optional) — Instrument family. Only applicable to FUTURES/SWAP/OPTION. - `instId` (string, optional) — Instrument ID. Only applicable to MARGIN. - `tier` (string, optional) — Tier number. - `minSz` (string, optional) — The minimum borrowing amount or position of this tier, in the number of contracts or base/quote currency. - `maxSz` (string, optional) — The maximum borrowing amount or position of this tier. - `mmr` (string, optional) — Maintenance margin requirement rate. - `imr` (string, optional) — Initial margin requirement rate. - `maxLever` (string, optional) — Maximum available leverage. - `optMgnFactor` (string, optional) — Option margin coefficient. Only applicable to OPTION. - `quoteMaxLoan` (string, optional) — Maximum borrowing amount in the quote currency. Only applicable to cross MARGIN. - `baseMaxLoan` (string, optional) — Maximum borrowing amount in the base currency. Only applicable to cross MARGIN. ## Examples **Response** ```json { "code": "0", "msg": "", "data": [ { "uly": "", "instFamily": "", "instId": "BTC-USDT", "tier": "1", "minSz": "0", "maxSz": "50", "mmr": "0.03", "imr": "0.1", "maxLever": "10", "optMgnFactor": "0", "quoteMaxLoan": "500000", "baseMaxLoan": "50" } ] } ``` **SDK Code** ```python market_getPositionTiers_example import requests url = "https://www.okx.com/api/v5/public/position-tiers" querystring = {"instType":"MARGIN","tdMode":"cross"} response = requests.get(url, params=querystring) print(response.json()) ``` ```javascript market_getPositionTiers_example const url = 'https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross'; const options = {method: 'GET'}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go market_getPositionTiers_example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby market_getPositionTiers_example require 'uri' require 'net/http' url = URI("https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```java market_getPositionTiers_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross") .asString(); ``` ```php market_getPositionTiers_example request('GET', 'https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross'); echo $response->getBody(); ``` ```csharp market_getPositionTiers_example using RestSharp; var client = new RestClient("https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); ``` ```swift market_getPositionTiers_example import Foundation let request = NSMutableURLRequest(url: NSURL(string: "https://www.okx.com/api/v5/public/position-tiers?instType=MARGIN&tdMode=cross")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```