Skip to main content
POST
/
private
/
CreateOtcQuoteRequest
Create OTC Quote
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",
      "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

API-Key
string
header
required

The "API-Key" header should contain your API key.

API-Sign
string
header
required

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

application/json

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
integer<int64>
required

Nonce used in construction of API-Sign header

base
string
required

The asset you want to buy or sell (e.g., BTC, ETH).

Example:

"BTC"

quote
string
required

The asset used to price the base asset (e.g., USD, USDT).

Example:

"USD"

type
enum<string>
required

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.

Available options:
buy,
sell
amount
string

The quantity of base asset you want to trade. Cannot be used together with the total field.

Example:

"2.5"

total
string

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.

Example:

"200000.5"

Response

Create OTC quote result.

Response schema for creating an OTC quote request.

error
string[]
required

Kraken API error

result
OTC Request for Quote · object