curl --request POST \
--url https://api.kraken.com/0/private/CreateOtcQuoteRequest \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"base": "BTC",
"quote": "USD",
"amount": "2.5",
"total": "200000.5"
}
'import requests
url = "https://api.kraken.com/0/private/CreateOtcQuoteRequest"
payload = {
"nonce": 123,
"base": "BTC",
"quote": "USD",
"amount": "2.5",
"total": "200000.5"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({nonce: 123, base: 'BTC', quote: 'USD', amount: '2.5', total: '200000.5'})
};
fetch('https://api.kraken.com/0/private/CreateOtcQuoteRequest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/0/private/CreateOtcQuoteRequest"
payload := strings.NewReader("{\n \"nonce\": 123,\n \"base\": \"BTC\",\n \"quote\": \"USD\",\n \"amount\": \"2.5\",\n \"total\": \"200000.5\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": [
"EGeneral:Invalid arguments"
],
"result": {
"quote": {
"base": "BTC",
"quote": "USD",
"amount": "2.5",
"settlement": "automated",
"quote_id": "00001c47-8f59-4099-b6f8-b637437ef1ab",
"client_order_id": "7264675290025181184",
"price": "100000.25",
"total": "250000.625"
}
}
}{
"errors": [
{
"field": null,
"value": null,
"type": "Internal Error",
"msg": "Internal error",
"severity": "E",
"errorClass": "General"
}
]
}Create OTC Quote
Creates a new OTC request for quote.
API Key Permissions Required: Orders and trades - Create & modify orders
curl --request POST \
--url https://api.kraken.com/0/private/CreateOtcQuoteRequest \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"base": "BTC",
"quote": "USD",
"amount": "2.5",
"total": "200000.5"
}
'import requests
url = "https://api.kraken.com/0/private/CreateOtcQuoteRequest"
payload = {
"nonce": 123,
"base": "BTC",
"quote": "USD",
"amount": "2.5",
"total": "200000.5"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({nonce: 123, base: 'BTC', quote: 'USD', amount: '2.5', total: '200000.5'})
};
fetch('https://api.kraken.com/0/private/CreateOtcQuoteRequest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/0/private/CreateOtcQuoteRequest"
payload := strings.NewReader("{\n \"nonce\": 123,\n \"base\": \"BTC\",\n \"quote\": \"USD\",\n \"amount\": \"2.5\",\n \"total\": \"200000.5\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": [
"EGeneral:Invalid arguments"
],
"result": {
"quote": {
"base": "BTC",
"quote": "USD",
"amount": "2.5",
"settlement": "automated",
"quote_id": "00001c47-8f59-4099-b6f8-b637437ef1ab",
"client_order_id": "7264675290025181184",
"price": "100000.25",
"total": "250000.625"
}
}
}{
"errors": [
{
"field": null,
"value": null,
"type": "Internal Error",
"msg": "Internal error",
"severity": "E",
"errorClass": "General"
}
]
}Authorizations
The "API-Key" header should contain your API key.
Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path.
Body
Request to create a new OTC quote. You must specify either the amount of base asset you want to trade or the total amount of quote asset you want to spend/receive, but not both.
Nonce used in construction of API-Sign header
The asset you want to buy or sell (e.g., BTC, ETH).
"BTC"
The asset used to price the base asset (e.g., USD, USDT).
"USD"
The direction of the trade. Use 'buy' to purchase the base asset with the quote asset, or 'sell' to sell the base asset for the quote asset.
buy, sell The quantity of base asset you want to trade. Cannot be used together with the total field.
"2.5"
The total amount of quote asset you want to spend (for buy orders) or receive (for sell orders). Cannot be used together with the amount field.
"200000.5"
Was this page helpful?