{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"655fd0ed-7500-47e6-a006-7e202bd835ab","name":"Bitdelta Public API","description":"## **Introduction**\n\n**Welcome to Bitdelta's developers API documentation. This is the official Bitdelta Exchange API documentation, and will continuously be updating. Bitdelta provides a simplified and robust REST API for integrating various features into any application. Apart from trading, Bitdelta Exchange Platform has extended its API to allow the management of multiple digital currencies, the creation of trading pairs, and the creation of new orders.**\n\n##### **API KEY SETUP**\n\n- **Some endpoints will require an API Key. Please refer to this** [https://help.bitdelta.com/hc/en-us/articles/12432649351069-How-to-Create-API-key-](https://help.bitdelta.com/hc/en-us/articles/12432649351069-How-to-Create-API-key-) **regarding API key creation.**\n    \n- **Once API key is created, it is recommended to save the secret key somewhere because this will not be visible again for security reasons.**\n- **Never share your API key/secret key to ANYONE.**\n- **If the API key is accidentally shared, please delete it immediately and create a new key.**\n    \n\n## **REST API**\n\n**An API, or application programming interface is a set of rules that define how applications or devices can connect to and communicate with with each other. A REST API is an API that conforms to the design principles of REST or representational state transfer architecture style. For this reason, REST API's are sometimes referred to as RESTFUL API's.**\n\n## **Web Socket API**\n\n**WebSocket is a new protocol in HTML5. It is a full-duplex between client and server, meaning, communication happens to and fro between client and server. The connection can be established by a single handshake, and then the server can push the notification to client actively. The connection developed using the Web Socket lasts as long as any of the participating parties lay it off, once one of the party breaks the connection, the second party won't be able to communicate as the connection automatically breaks at its front.**\n\n**It is suggested to use Web Socket API to get data update like market data, user data and order update etc.**\n\n## **Access URLs**\n\n**For production Base URL is:**\n\n##### **REST API URL FOR PUBLIC API**\n\n[https://public-api.bitdelta.com](https://)\n\n##### **REST API URL FOR PROTECTED API**\n\n[https://api.bitdelta.com](https://)\n\n##### **WebSocket**\n\n**`wss://api.bitdelta.com`**\n\n## **General Information on Endpoints**\n\n- **For GET endpoints, parameters must be sent as a query string.**\n- **For POST, PUT, and DELETE endpoints, the parameters may be sent as a query string or in the request body with content type application/json. You may mix parameters between both the query string and request body if you wish to do so.**\n- **Parameters may be sent in any order.**\n- **If a parameter sent in both the query string and request body, the query string parameter will be used.**\n    \n\n## **IP Limits**\n\n- **When a 429 is received, it is your obligation as an API to back off and not spam the API.**\n- **Repeatedly violating the rate limits and/or failing to back off after receiving multiple 429 errors will result in an automated IP ban (HTTP Error Code 418)**\n- **IP bans are tracked and scale in duration for repeat offenders from 2 minutes to 3 days.**\n- **A retry-after header is sent with a 418 or 429 response and will give the number of seconds to wait in case of a 429 response code, to avoid a ban or in case of a 418, wait until the ban is over.**\n- **We recommend using the websocket for getting data as much as possible, as this will not count the request rate limit.**\n    \n\n## **Headers**\n\n1. **Accept-language For langague specific content from server**\n2. **Device For device specific response, values will be either web/mobile**\n3. **x-api-key = api key of user's account**\n4. **secret-key = secret key of user's account**\n    \n\n## **Parameters**\n\n**For the GET, DELETE request, all query parameters need to be included in the request url. (e.g. /api/v1/pair?currency=BTC)**\n\n**For the POST, PUT request, all query parameters need to be included in the request body with JSON. (e.g. {\"currency\":\"BTC\"}). Do not include extra spaces in JSON strings.**\n\n## **Request Format**\n\n**The API is restful and there are two methods: GET and POST.**\n\n- **GET, DELETE request: All parameters are included in URL**\n- **POST, PUT request: All parameters are formatted as JSON and put int the request body**\n    \n\n## **Response Format**\n\n**The response is JSON format.There are five fields in the top level:** **`statusCode`****,** **`message`** **,** **`statusText`** **,** **`timestamp`** **and** **`data`****.**\n\n**Below is an example of response:**\n\n**json**\n\n``` less\n{ \"statusCode\": 200, \"data\": // per API response data in nested JSON object \"message\": \"Forbidden\", \"statusText\": \"FORBIDDEN\", \"timestamp\": \"2022-04-18T12:11:17.146Z\" }\n\n ```\n\n| **Field** | **Data Type** | **Description** |\n| --- | --- | --- |\n| **statusCode** | **int** | **Status HTTP response of API response** |\n| **message** | **string** | **Generic message about API response e.g User data updated successfully** |\n| **statusText** | **string** | **API response equivalent text e.g. FORBIDDEN, IP_VERIFICATION_REQUIRED** |\n| **timestamp** | **date** | **UTC Timestamp based on server** |\n| **data** | **object/array** | **The body data in response** |\n\n**Errors:**\n\n**When errors occur, the HTTP error code or system error code will be returned. The body will also contain a message parameter indicating the cause.**\n\n### **HTTP error status codes**\n\n**json**\n\n``` json\n{ \"statusCode\": 500, \"data\": \"\", \"message\": \"Forbidden\", \"statusText\": \"FORBIDDEN\", \"timestamp\": \"2022-04-18T12:11:17.146Z\" }\n\n ```\n\n| **Code** | **Meaning** |\n| --- | --- |\n| **400** | **Bad Request -- Invalid request format.** |\n| **401** | **Unauthorized -- Invalid/Expired User Authentication token. You may need to get new JWT User Authentication token by using existing refresh token If valid** |\n| **403** | **Forbidden -- User Authentication token and refresh token expired. You need to login again to get new User Authentication token** |\n| **404** | **Not Found -- The specified resource could not be found.** |\n| **406** | **Guest/ Annonymous token expired. You need to get new guest/anonynomus token to access API** |\n| **500** | **Internal Server Error -- We had a problem with our server. Try again later.** |\n| **503** | **Service Unavailable -- We're temporarily offline for maintenance. Please try again later.** |\n\n#### **System error codes (Network status code (HTTP Status code)would be 400 but statusText & statusCode would be following)**\n\n| **statusCode** | **statusText** | **Meaning** |\n| --- | --- | --- |\n| **410** | **IP_VERIFICATION_REQUIRED** | **When IP address is not verified, an OTP will be sent to the user, you need to open the popup to input verification code** |\n| **411** | **TFA_REQUIRED** | **When user enabled his/her 2FA, open popup to enter 2FA code** |\n| **412** | **INVALID_TWOFA_SESSION** | **2FA session expired, redirect user to login page** |\n| **413** | **INVALID_PASSWORD_SESSION** | **Password reset session expired, redirect user to forgot password page again** |\n| **414** | **PUBLIC_KEY_NOT_FOUND** | **Device public key not found on server. Logout user and redirect user to login** |\n| **415** | **VERIFICATION_REQUIRED** | **User login email or phone number is not verified, an OTP will be sent to the user, open popup to validate OTP** |\n| **417** | **INVALID_TWOFA_CODE** | **Invalid 2FA code** |\n\n**If the returned HTTP status code is 400, whereas the operation failed, an error will occur. You can check the above error code for details.**\n\n## **Success**\n\n**A successful response is indicated by an HTTP status code 200. The success response is as follows:**\n\n**View Morejson**\n\n``` json\n{ \"statusCode\": 200, \"data\": [ { \"lang\": \"English\", \"slug\": \"en\", \"default\": true, \"rtl\": false }, { \"lang\": \"हिन्दी\", \"slug\": \"hi\", \"default\": false, \"rtl\": false }, { \"lang\": \"عربى\", \"slug\": \"ar\", \"default\": false, \"rtl\": true } ], \"message\": \"Request Successfully completed\", \"statusText\": \"SUCCESS\", \"timestamp\": \"2022-06-15T06:04:08.607Z\" }\n\n ```\n\n### **Pagination**\n\n**Pagination allows for fetching results with the current page and is well suited for real time data. Endpoints like /api/v1/open-orders, /api/v1/orders, /api/v1/trades, will return the latest items by default (50 pages in total). To retrieve more results, users should specify the currentPage number in the subsequent requests to turn the page based on the data previously returned.**\n\n#### **PARAMETERS**\n\n| **Parameter** | **Default** | **Description** |\n| --- | --- | --- |\n| **page** | **1** | **Current request page.** |\n| **limit** | **15** | **Number of results per request. Minimum is 1, maximum is 100.** |\n\n#### **Example**\n\n**`GET /api/v1/orders?page=1&limit=50`**\n\n### **Rate Limit**\n\n**The /api/v1/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\* endpoints adopt access limiting rules.**\n\n- **Endpoints related to /api/v1/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*:**\n- **According to IP limit, each are independent.**\n- **Endpoints share the 2500 per 5 minute limit based on IP.**\n    \n\n## **Public API Definition**\n\n### **Terminology**\n\n**These terms will be used throughout the documentation, so it is recommended especially for new users to read to help their understanding of the API.**\n\n#### **Order side (s)**\n\n- **BUY = 0**\n- **SELL = 1**\n    \n\n#### **Order Type**\n\n- **m = market order**\n- **l = limit order**\n- **sl = stop limit order**\n    \n\n#### **Trade/Chart API**\n\n- **open = open price of pair**\n- **high = highest price of pair in given time duration**\n- **low = lowest price of pair in given time duration**\n- **close = closing price of pair or latest price or last price**\n- **vol = volume of pair in USDT**\n    \n\n#### **Precision**\n\n- **group_precision price precision of a symbol**\n- **bamount amount precision of symbol**\n- **group_precision + bamount for total of symbol**\n    \n\n**Kline/CANDLESTICK CHART INTERVALS:**\n\n**m-minutes, h-hours, d-days**\n\n- **1m**\n- **5m**\n- **15m**\n- **30m**\n- **1h**\n- **4h**\n- **1d**","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"29064556","team":5450458,"collectionId":"655fd0ed-7500-47e6-a006-7e202bd835ab","publishedId":"2s9Xy3rWSo","public":true,"publicUrl":"https://api-docs.bitdelta.com","privateUrl":"https://go.postman.co/documentation/29064556-655fd0ed-7500-47e6-a006-7e202bd835ab","customColor":{"top-bar":"ffffff","right-sidebar":"303030","highlight":"155ff6"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"BitDelta API\nUnlimited Opportunities with One Platform."},{"name":"title","value":"BitDelta API docs"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/ff0540a4-2785-44ce-b3ad-45182dc52eb5/bG9nbyBiaXRkZWx0YSBkYXJrLnBuZw==","colors":{"top-bar":"202229","right-sidebar":"303030","highlight":"155ff6"}},{"name":"light","logo":"https://content.pstmn.io/731ad319-9f83-4d57-8f69-210eb0fbcf27/bG9nbyBiaXRkZWx0YSBsaWdodC5wbmc=","colors":{"top-bar":"ffffff","right-sidebar":"303030","highlight":"155ff6"}}]}},"version":"8.10.1","publishDate":"2024-04-04T09:33:10.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"BitDelta API docs","description":"BitDelta API\nUnlimited Opportunities with One Platform."},"logos":{"logoLight":"https://content.pstmn.io/731ad319-9f83-4d57-8f69-210eb0fbcf27/bG9nbyBiaXRkZWx0YSBsaWdodC5wbmc=","logoDark":"https://content.pstmn.io/ff0540a4-2785-44ce-b3ad-45182dc52eb5/bG9nbyBiaXRkZWx0YSBkYXJrLnBuZw=="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/4bd2d399ab9814a72d1e4d005dc70d4b3fea8ef83b6b4d68ba72cf93ac914b62","favicon":"https://bitdelta.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://api-docs.bitdelta.com/view/metadata/2s9Xy3rWSo"}