{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"0ab18e5f-b1c3-471c-a402-42049dc94de6","name":"SideShift.ai REST API","description":"The SideShift.ai REST API allows consumers to integrate SideShift.ai’s rapid trading service into their applications and earn 0.5% commission on each shift. Good job!\n\n# **V2 vs V1 API**\n\nSideShift.ai strongly advises integrators to use the new V2 API version. It handles multi-network coins much more efficiently and uses easier to understand terminology. V1 API is deprecated and will not be developed further. The documentation for V1 will remain here to support already existing integrations, who are also strongly encouraged to make the switch to V2.\n\n# Affiliate Commission\n\nSideShift.ai is a no sign-up exchange, but it generates an account every time a user visits the website from a new browser.\n\nThe account consists of an `accountId` and a `privateKey`, visible on the [account page](https://sideshift.ai/account).\n\nSideShift.ai REST API recognizes affiliates and pays them commission based on the `accountId`, therefore it must be included as `affiliateId` in the shift creation requests. Commissions are paid in SideShift.ai's native [XAI token](https://help.sideshift.ai/en/articles/4559651-what-is-sideshift-token-xai).\n\nSideShift.ai advises users and integrators to write down their `privateKey`, store it in a safe place and never share with anyone. For increased security, the 2 factor authentication should also be turned on. Good job!\n\n# Permissions\n\nSideShift.ai is not available in certain jurisdictions. Learn [more](https://help.sideshift.ai/en/articles/2874595-why-am-i-blocked-from-using-sideshift-ai%5D(https://help.sideshift.ai/en/articles/2874595-why-am-i-blocked-from-using-sideshift-ai).\n\nIntegrations are advised to use the `/permissions` endpoint to determine if the user is allowed to use SideShift.ai.\n\n### Proxying User Requests\n\nSideShift.ai does not allow proxying user requests. This means that the user should either directly interact with the SideShift.ai REST API, or if the API requests are sent from the integration's own server, the `x-user-ip` header must be set to the end-user IP address.\n\n### The x-user-ip Header\n\nThe `x-user-ip` header helps SideShift.ai identify the original source of the request, which is important for security reasons and ensuring that the service is not being used by users in restricted countries. It’s crucial that this header is set correctly by integrations to prevent any issues with using the API.\n\n# Shift\n\nTo trade with SideShift.ai, users must first create a shift. A shift can be of type fixed or variable rate.\n\n**Fixed rate** shifts have locked-in rate for 15 minutes. After 15 minutes the shift expires and any deposit made to the shift will be refunded. To create a fixed rate shift, a quote must be requested first using the `/quotes` endpoint and the shift must be created using the `/shifts/fixed` endpoint. See details below.\n\n**Variable rate** shifts do not have the rate locked-in until a deposit to the shift is made and detected by SideShift.ai. They are valid for 7 days and can be requested in one step using the `/shifts/variable` POST endpoint. See details below.\n\n# Deposits\n\nA deposit is a transaction made by the user to a shift, in order to receive the equivalent amount in the coin chosen by user.\n\nA fixed rate shift can only have one deposit, while variable rate shifts can have more. Each deposit is settled individually.\n\n### Minimum and Maximum Deposit Range\n\nThe Minimum Deposit Range has a default value of 3 USD and is being determined after incorporating the network fees. The Maximum Deposit Range is always set by SideShift.ai and varies from coin to coin.\n\nFor more detailed information to help if the amount sent is outside the deposit range, please check out:  \n[Under-Minimum Shift Deposit](https://help.sideshift.ai/en/articles/3735849-i-sent-below-the-minimum-amount-for-my-shift-what-can-i-do)  \n[Over-Maximum Shift Deposit](https://help.sideshift.ai/en/articles/3825201-i-sent-over-the-maximum-amount-for-my-shift-what-can-i-do)\n\n### Determining the Minimum Deposit Range:\n\nHere's how we can calculate the `Minimum Deposit Range` assuming the network fee is 20 USD:\n\nMinimum Deposit = (1 / 0.2) \\* network fee  \nMinimum Deposit = (1 / 0.2) \\* 20  \nMinimum Deposit = 100\n\nIn this scenario, we compare the calculated value of 100 USD to the default minimum deposit, assuming a default minimum deposit of 3 USD, to determine the `Minimum Deposit Range`. The `Minimum Deposit Range` is the higher of these two values, which in this case is 100 USD.\n\n## Deposit status\n\n| Status | Name | Remarks |\n| --- | --- | --- |\n| `waiting` | Waiting for deposit | No deposit detected for the shift |\n| `pending` | Detected | SideShift.ai's has detected the deposit and is waiting for 1 block confirmation. The rate is locked-in. |\n| `processing` | Confirmed | The deposit has been confirmed in the blockchain and is being processed by SideShift.ai |\n| `review` | Under human review | The deposit cannot be automatically processed. After human review it can be settled or refunded. |\n| `settling` | Settlement in progress | SideShift.ai has created the transaction which settles the deposit and it's waiting for 1 confirmation. |\n| `settled` | Settlement completed | Settlement transaction has received 1 block confirmation |\n| `refund` | Queued for refund | User is required to enter a refund address on [https://sideshift.ai/orders/SHIFT_ID](https://sideshift.ai/orders/SHIFT_ID) or via the `/refund-address` endpoint, unless pre-defined in one of the `/shifts` endpoints. |\n| `refunding` | Refund in progress | Refund transaction created, waiting for 1 confirmation into the blockchain. |\n| `refunded` | Refund completed | Refund transaction has received 1 block confirmation. |\n| `multiple` | Multiple deposits detected | Use the `deposits` array in the endpoint response for data about each deposit |\n\n## **Deposits within EVM networks**\n\nFor supported EVM networks, SideShift.ai uses a deposit address, which is a smart contract for tokens, for each created shift. When a balance is detected on this contract, the system performs a sweep operation. This operation sends the funds from the deposit address to SideShift.ai's main address. The sweeper transaction is then detected as a \"deposit\".\n\nOccasionally, this sweeper transaction doesn't get broadcasted to the network and leads to another attempt to sweep the funds from the deposit address. In this case, another deposit will be created with `pending` status that will be processed, while the first deposit will remain in `pending` status.\n\n## Deposit issues\n\nSometimes deposits will not be automatically processed for various reasons as summarized in the table below. The `issue` field will have a value when `status` is `review` or `refund`. If `status` is `multiple` and one of the deposits are in `review` or `refund` status, this deposit object will have an `issue` field.\n\n| Issue | Remarks | Resolution |\n| --- | --- | --- |\n| `amount over max` | User sent over the maximum amount. | Processed or refund after human review |\n| `amount under min` | User sent below the minimum amount. | Processed or refund after human review |\n| `refund required` | The shift will be refunded after a refund address is provided | Refund after an address is provided |\n| `incorrect amount` | User sent the incorrect amount for a fixed rate shift. | Processed or refund after human review |\n| `order expired` | The shift has already expired when SideShift.ai detected the deposit | Processed or refund after human review |\n| `max 1 deposit` | Fixed rate shifts can have maximum one deposit | Refund after an address is provided |\n| `too many deposits` | More than 5 deposits have been made to a variable rate shift | Refund after an address is provided |\n| `review` | Shift is under human review and will be processed or refunded | Processed or refund after human review |\n| `coin unavailable` | Either the deposit or settle method is currently not available for shifts. | Refund after human review |\n| `rate drift` | The rate changed too much between the time the quote was created and the deposit was detected. | Processed or refund after human review |\n| `duplicate` | The deposit is a duplicate of another deposit. | Refund after human review |\n| `low effective rate` | The effective rate is too low as the network fees would consume too high % of the shift value | Refund after an address is provided |\n\n# Refunds\n\nSideShift.ai may have to refund the users deposit for multiple reasons such as:\n\n- **Shift expired**: 7 days in case of variable, 15 minutes in case of fixed rate shifts\n- **Below minimum/Above maximum**: The users deposit is below the minimum or above the maximum for a variable shift. Above maximum deposits may be processed after human review, which can take up to 24 hours.\n- **Incorrect amount**: Fixed rate shifts require a deposit of an exact amount. If user deposits any other amount, it will be refunded.\n    \n\n# Terminology\n\n**deposit**\\[Amount\\]\\[Address\\]\\[Memo\\]\\[Coin\\]\\[Network\\]\\[Tx\\]: Refers to data about the coin the user is shifting **from**. For example in case of a shift from BTC to ETH:\n\n- `depositCoin`: the ticker of the coin the user needs to send to SideShift.ai, e.g. `btc`\n- `depositNetwork`: the id of the `depositCoin` network, e.g. `bitcoin` or `mainnet`\n- `depositAmount`: the amount of BTC the user needs to deposit\n- `depositAddress`: the address the user needs to send the BTC to\n- `depositMemo`: The memo that the user needs to include when sending to the deposit address for some coins, e.g. XRP, XLM, ATOM and KAVA\n    \n\n**settle**\\[Amount\\]\\[Address\\]\\[Memo\\]\\[Coin\\]\\[Network\\]\\[Rate\\]\\[Tx\\]: Refers to data about the coin the user is shifting **to**. For example\n\n- `settleCoin`: the ticker of the coin SideShift.ai will send the user, e.g. `eth`\n- `settleNetwork`: the id of the network of the `settleCoin`, e.g. `ethereum` or `optimism`\n- `settleAmount`: the amount of ETH SideShift.ai will send\n- `settleRate`: the rate at which the coins are exchanged. E.g. if user sends 0.1 BTC and receives 1 ETH, the `settleRate` will be 10\n- `settleAddress`: The address SideShift.ai will send the ETH to\n- `settleTx`: details of the transaction SideShift.ai sent to the user\n- `settleMemo`: SideShift supports sending coins on addresses with a memo on some chains, such as XRP, XLM, ATOM, KAVA and ALGO\n    \n\nSee `/coins` endpoint for a full list of coins and their respective networks supported by SideShift.ai\n\n# Network Fees\n\n- **Sending fee**: This fee is associated with sending the settleCoin to your selected wallet address. It applies to BTC, ETH, EVM tokens, and TRC20 tokens.\n- **Address fee**: This fee is required for the creation of a unique SideShift.ai deposit address for every Shift. It applies to EVM token deposits. However, currently, contracts are being reused, and no fee is being charged for this.\n- **Receiving fee**: This fee is applicable to all ETH, EVM tokens, and TRC20 deposits that require a sweep transaction from the unique deposit address to process the shift.\n    \n\nPlease note that these fees are estimated, and the actual fees may vary depending on the network conditions at the time of the transaction.\n\n# Rate Limits\n\nThe REST API has rate limits in place to ensure fair usage and protect the system from abuse. The following operations have specific rate limits:\n\n- **Creating a Shift:** Clients can create up to 5 orders per minute. This concerns `/shifts/fixed` and `/shifts/variable` endpoints.\n- **Creating a Quote**: Clients can create up to 20 quotes per minute. This concerns `/quotes` endpoint.\n    \n\nIf a client exceeds these limits, the server will respond with a status code of `429` and a message of `Rate limit exceeded`. Please ensure your application respects these rate limits to avoid disruptions in service.\n\n# Receiving support\n\nIn case something goes wrong with the user's shift, they can receive support from SideShift.ai through the following methods:\n\n1. **Email Support:** Users can send an email to [help@sideshift.ai](https://github.com/sideshift/sideshift/issues/help@sideshift.ai) to receive support. To ensure a faster resolution, users should include their shift ID in the support email. The shift ID is returned when creating a shift using the `/fixed` or `/variable` endpoint. It's recommended for integrations to pre-populate the email template with the user's shift ID.\n2. **Support Chat:** Users can access support by clicking on the chat icon at SideShift.ai and providing their shift ID. Similarly, integrations can leverage the SideShift.ai support chat to offer a seamless support experience to their users. It's recommended for integrations to include a link directing users to the SideShift.ai support chat. To initiate a support chat session with a pre-filled shift ID, integrations can use the following as reference: [https://sideshift.ai/orders/4c3839c16640704410b0?openSupport=true](https://sideshift.ai/orders/4c3839c16640704410b0?openSupport=true)\n    \n\n# Response codes and errors\n\nSideShift.ai endpoint will send response code `200 OK` or, in case of requests updating data `201 Created` on success.\n\nIn case of a bad request, the response code is `400 Bad request`.\n\nIn case of an error, the response code is `500 Internal server error` with an `error` object with an appropriate `message` property.\n\n| MESSAGE | STATUS | DESCRIPTION | SOLUTION |\n| --- | --- | --- | --- |\n| The x-user-ip header must be set to the end-user IP address | 400 Bad Request | Invalid IP address | Use a valid IP address in the `x-user-ip` header. |\n| Invalid receiving address | 400 Bad Request | settleAddress is invalid | Use the correct `settleAddress` that aligns to the `settleCoin`. In case of `BTC` as `settleCoin`, use on-chain addresses only. |\n| Invalid refundDestination | 400 Bad Request | refundAddress is invalid | Use a valid `refundAddress` that aligns to the `depositCoin`. In case of `BTC` as `depositCoin`, use on-chain addresses only. |\n| This refund address belongs to SideShift.ai | 400 Bad Request | refundAddress being used is the example address or owned by SideShift.ai | Use a valid `refundAddress` that you own. |\n| This settle address belongs to SideShift.ai | 400 Bad Request | settleAddress being used is the example address or owned by SideShift.ai | Use a valid `settleAddress` that you own. |\n| Unknown affiliateId | 400 Bad Request | Invalid affiliateId was used in variable shift | Use the `affiliateId` from your account found at [https://sideshift.ai/account](https://sideshift.ai/account). |\n| Quote has different affiliateId than input | 400 Bad Request | AffiliateId being used in fixed shift creation is different from what was used in the quote request | Use the same `affiliateId` for the fixed shift creation from the one that was used in the quote request. |\n| Quote has already expired. Request a new quote. | 400 Bad Request | quoteId is no longer valid for a fixed shift after expiration time | Request a new quote. |\n| Invalid \"affiliateId\" | 400 Bad Request | Invalid affiliateId was used in the quote request | Use the `affiliateId` from your account found at [https://sideshift.ai/account](https://sideshift.ai/account). |\n| depositAmount must be greater than zero | 400 Bad Request | depositAmount is 0 or less | Use a value greater than `0`. |\n| Method XX/XX not found | 400 Bad Request | Either the values for depositCoin and depositNetwork or settleCoin and settleNetwork do not belong to a supported method | Ensure that the coin supports the network being used, and vice versa. See `/coins` for a list of supported cryptocurrencies and their respective networks. |\n| Do not use the example affiliateId and x-sideshift-secret header from the documentation. Use your own from [https://sideshift.ai/account](https://sideshift.ai/account) | 401 Unauthorized | Example affiliateId or x-sideshift-secret was used | Use your account's actual `affiliateId` and `x-sideshift-secret` from [https://sideshift.ai/account](https://sideshift.ai/account). |\n| You have too many open orders. Cancel some, use the existing ones, or wait. To receive a higher open order limit, message [https://t.me/sideshiftai_devs](https://t.me/sideshiftai_devs) | 403 Forbidden | Executed too many order requests | Cancel some, use the existing ones, or wait. To receive a higher open order limit, message [https://t.me/sideshiftai_devs](https://t.me/sideshiftai_devs). |\n| Access denied. See [https://sideshift.ai/access-denied](https://sideshift.ai/access-denied) | 403 Forbidden | IP address being used in the x-user-ip header is not allowed | For a list of prohibited jurisdictions, please check out [https://help.sideshift.ai/en/articles/2874595-why-am-i-blocked-from-using-sideshift-ai](https://help.sideshift.ai/en/articles/2874595-why-am-i-blocked-from-using-sideshift-ai). |\n| Account not found | 404 Not Found | x-sideshift-secret is invalid | Use your account's private key as the `x-sideshift-secret` from [https://sideshift.ai/account](https://sideshift.ai/account). |\n| Order not found | 404 Not Found | Invalid shiftId query param being used in /shift or /bulk shifts endpoint | Use a valid `shiftId(s)` as query param. |\n| Invalid network | 500 Internal Server Error | Incorrect/missing depositNetwork or settleNetwork | Use/add correct `depositNetwork` or `settleNetwork`. See `/coins` for a list of supported cryptocurrencies and their respective networks. |\n| Invalid coin | 500 Internal Server Error | Invalid depositCoin or settleCoin | Use a supported coin for `depositCoin` and `settleCoin`. See `/coins` for a list of supported cryptocurrencies and their respective networks. |\n| Amount too low | 500 Internal Server Error | depositAmount is too low | Use a higher value. See `/pair` for the minimum deposit value. |\n| Amount too high | 500 Internal Server Error | depositAmount is too high | Use a lower value. See `/pair` for the maximum deposit value. |\n| Deposit and settle method must be different | 500 Internal Server Error | depositCoin and depositNetwork values are similar to settleCoin and settleNetwork | Ensure that methods being used are different. |\n| Memo is not supported for this settle coin | 500 Internal Server Error | settleCoin being used does not supports memo | Check the `settleCoin` if it supports memo using `/coin`. If it does, `hasMemo` should be `true`. |\n| Internal Server Error | 500 Internal Server Error | The quoteId being used in creating fixed shift is invalid | Use a valid `quoteId` |\n\n# FAQ\n\n| Question | Answer |\n| --- | --- |\n| How do I create a fixed rate shift? | To create a fixed rate shift, first request a quote using the `/quotes` endpoint. Then, use the `quoteId` returned by the endpoint to create a fixed rate shift using the `/shifts/fixed` endpoint. |\n| How do I create a variable rate shift? | To create a variable rate shift, use the `/shifts/variable` endpoint with the required parameters, such as `settleAddress`, `affiliateId`, `depositCoin`, and `settleCoin`. |\n| What is the difference between fixed rate and variable rate shifts? | Fixed rate shifts have a locked-in exchange rate for 15 minutes, while variable rate shifts determine their exchange rate when the user's deposit is received and have a 7-day expiration. |\n| How should fixed rate shifts be used compared to variable shifts? | We recommend using fixed rate only when users cannot change the amount they send and for when the `settleAmount` must be exact. In situations where there is flexibility, and to reduce errors where users might send the wrong amount, we recommend opting for variable rate shifts. |\n| What's the recommended integration, fixed or variable shifts? | Fixed rate shifts would be the preferred option if you would require your users to enter an amount they want to send/receive and then create a shift using the API. Fixed rate shifts expire in 15 minutes, while variable rate ones expire in 7 days. |\n| Would the exchange fail if we don't send the expected amount in a fixed rate conversion? | Yes, if you don’t send the exact expected amount to a fixed order, it will need to be refunded. We recommend that you set the refund address when creating a new shift just in case the deposit needs to be refunded. Wallet app integrations are advised to set the refund address to the address the users are sending the deposit coin from as this makes the refund process much smoother. |\n| What are the minimum and maximum deposit ranges? | The minimum deposit range has a default value and is determined after incorporating network fees while the maximum deposit range is set by SideShift.ai and varies from coin to coin. Both ranges are demoninated in USD. |\n| How do I handle coins or tokens with memos? | For shifts that return a `depositMemo`, the deposit transaction must include this memo, otherwise, the deposit might be lost. For shifts settling in coins where `hasMemo` is `true` in the `/coins` endpoint, API users are allowed to specify a `settleMemo` field. Additionally, shifts can include optional `refundAddress` and `refundMemo`, if not defined, the user will be prompted to enter a refund address manually on the SideShift.ai order page if the shift needs to be refunded. |\n| How do I know if a coin or token is not available in other supported networks for either depositCoin or settleCoin? | The API will return an array of networks for `depositOffline`, `settleOffline`, `fixedOnly`, `variableOnly`. So, for example, if Lightning is currently offline for deposit and settle, the response will include `Lightning` in the `depositOffline` and `settleOffline` arrays. |\n| How do I set a refund address? | To set a refund address, use the `/shifts/{shiftId}/set-refund-address` endpoint with the required address parameter. It can also be set when creating a shift. |\n| What are the reasons for refunds? | Refunds are made for various reasons, such as the user sending an incorrect amount for a fixed rate shift, the shift expiring, the user sending below the minimum amount, or above the maximum amount for a variable shift, among others. |\n| What happens if an amount is sent outside of the range or after the shift expires? | In both cases, shifts might be processed or refunded after human review. |\n| What flow is recommended if users use a fixed rate shift and pay the incorrect balance and how will they manage to retrieve them? | For fixed orders, we recommend integrations to pre-populate the amount field for their users in their application's UI and don’t allow them to change it. We also recommend pre-defining the `refundAddress` in the create order request, so if anything goes wrong, they’ll automatically be refunded. Wallet app integrations are advised to set the refund address to the address the user is sending from as this makes the refund process much smoother. |\n| What does the \"multiple\" status mean? | Multiple status means that a user made multiple deposits or on some occasion for EVM/Tron tokens, multiple attempts are made to sweep the user's deposit from the deposit address. For this case, there is a deposits array in the API response with details about each deposit. |\n| Why does the same deposit is detected multiple times? | For EVM/Tron tokens deposit, sometimes the sweeper transaction doesn't get broadcasted to the network and leads to another attempt to sweep the funds from the deposit address. For this reason, the same deposit is detected multiple times. |\n| Can shifts be rejected even if they haven't expired? | There are several different reasons a variable or fixed rate shift might be rejected. Fixed rate shifts are less prone to rejection for wallets, and variable rate shifts are less prone to errors if the user can specify the amount they send. Rejected deposits will be reviewed by our operations team and either processed or refunded. |\n| How do you distinguish users if there's an issue with their shifts? | For handling different users and payment disputes, users are authenticated based on the `shiftId`, not their account. |\n| How can users contact support and resolve disputes if they encounter issues with their shifts? | For any disputes, users can contact support directly via email and live chat. Integrations can add a link to their app to [https://sideshift.ai/orders/SHIFT_ID?openSupport=true](https://sideshift.ai/orders/SHIFT_ID?openSupport=true) to have a seamless support experience. SideShift.ai authenticate users based on the `shiftId`, not their account. |\n| Why am I being redirected to SideShift.fi? | You're being redirected to our new product, SideShift.fi, because you're in a jurisdiction not supported by SideShift.ai. See [https://sideshift.ai/access-denied](https://sideshift.ai/access-denied) |\n| How can I test the transaction flow in our staging environment? | We have no testing environment for the API. You can start by using small amounts in the live API. |\n| Is there an option for redirect, widget, or QR data available for clients? | The REST API returns the address (plus memo for coins that require it) where the user needs to send their deposit coin. You can use this to display a QR code on your site. If you want to redirect the user to SideShift, you can create a shift and redirect them to [https://sideshift.ai/orders/](https://sideshift.ai/orders/). |\n| How do I check if a user is allowed to use SideShift.ai? | Use the `/permissions` endpoint to determine if the user is allowed to use SideShift.ai. |\n| Can SideShift.ai share their IP's for production whitelist? | No. Our servers are using dynamic IP addresses, which change every time we restart them. |\n| How can I receive a commission? | SideShift.ai pays commissions to the affiliate whose `affiliateId` param is sent in the request. Make sure to create both quote and shift with the same `affiliateId`. |\n\n## Become a Developer\n\nChat with SideShift.ai engineers and third party developers in the [developer chat](https://t.me/joinchat/UuTn4HeK-2EUG1zZ).","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"6895769","team":1200469,"collectionId":"0ab18e5f-b1c3-471c-a402-42049dc94de6","publishedId":"TWDZGvjd","public":true,"publicUrl":"https://documenter-api.postman.tech/view/6895769/TWDZGvjd","privateUrl":"https://go.postman.co/documentation/6895769-0ab18e5f-b1c3-471c-a402-42049dc94de6","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.11.6","publishDate":"2021-02-23T08:31:21.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"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/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"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://documenter.gw.postman.com/view/metadata/TWDZGvjd"}