curl --request GET \
--url https://api.services.payward.com/v1/ramp/quotes/prospective \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/ramp/quotes/prospective"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/ramp/quotes/prospective', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.services.payward.com/v1/ramp/quotes/prospective",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.services.payward.com/v1/ramp/quotes/prospective"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.services.payward.com/v1/ramp/quotes/prospective")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/ramp/quotes/prospective")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"from": {
"asset": {
"symbol": "USD",
"type": "fiat",
"name": "US Dollar"
},
"total": "1015.00",
"subtotal": "1000.00",
"fee": "10.00",
"deposit_fee": "5.00",
"affiliate_fee": "2.50"
},
"to": {
"asset": {
"symbol": "BTC",
"type": "crypto",
"name": "Bitcoin"
},
"total": "0.01587302",
"subtotal": "0.01587302",
"withdrawal_fee": "0.00010000"
},
"unit_price": {
"asset": {
"symbol": "BTC",
"type": "crypto",
"name": "Bitcoin"
},
"denomination_asset": {
"symbol": "USD",
"type": "fiat",
"name": "US Dollar"
},
"unit_price": "63000.00"
}
}
}{
"error": {
"type": "validation_error",
"status": 400,
"instance": "req_123",
"code": "bad_request"
}
}{
"error": {
"type": "authentication_error",
"status": 401,
"instance": "req_123",
"code": "unauthenticated"
}
}{
"error": {
"type": "authorization_error",
"status": 403,
"instance": "req_123",
"code": "forbidden"
}
}{
"error": {
"type": "rate_limit_error",
"status": 429,
"instance": "req_123",
"code": "resource_exhausted"
}
}{
"error": {
"type": "internal_error",
"status": 500,
"instance": "req_123",
"code": "internal"
}
}{
"error": {
"type": "api_error",
"status": 501,
"instance": "req_123",
"code": "unimplemented"
}
}{
"error": {
"type": "service_error",
"status": 503,
"instance": "req_123",
"code": "unavailable"
}
}{
"error": {
"type": "service_error",
"status": 504,
"instance": "req_123",
"code": "deadline_exceeded"
}
}Get Ramp prospective quote
Retrieve a prospective quote for a Ramp transaction without reserving liquidity. Use this to preview the from/to amounts before creating a checkout URL.
curl --request GET \
--url https://api.services.payward.com/v1/ramp/quotes/prospective \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>'import requests
url = "https://api.services.payward.com/v1/ramp/quotes/prospective"
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'API-Key': '<api-key>', 'API-Sign': '<api-key>', 'API-Nonce': '<api-key>'}
};
fetch('https://api.services.payward.com/v1/ramp/quotes/prospective', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.services.payward.com/v1/ramp/quotes/prospective",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>",
"API-Nonce: <api-key>",
"API-Sign: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.services.payward.com/v1/ramp/quotes/prospective"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.services.payward.com/v1/ramp/quotes/prospective")
.header("API-Key", "<api-key>")
.header("API-Sign", "<api-key>")
.header("API-Nonce", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.services.payward.com/v1/ramp/quotes/prospective")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
request["API-Sign"] = '<api-key>'
request["API-Nonce"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"from": {
"asset": {
"symbol": "USD",
"type": "fiat",
"name": "US Dollar"
},
"total": "1015.00",
"subtotal": "1000.00",
"fee": "10.00",
"deposit_fee": "5.00",
"affiliate_fee": "2.50"
},
"to": {
"asset": {
"symbol": "BTC",
"type": "crypto",
"name": "Bitcoin"
},
"total": "0.01587302",
"subtotal": "0.01587302",
"withdrawal_fee": "0.00010000"
},
"unit_price": {
"asset": {
"symbol": "BTC",
"type": "crypto",
"name": "Bitcoin"
},
"denomination_asset": {
"symbol": "USD",
"type": "fiat",
"name": "US Dollar"
},
"unit_price": "63000.00"
}
}
}{
"error": {
"type": "validation_error",
"status": 400,
"instance": "req_123",
"code": "bad_request"
}
}{
"error": {
"type": "authentication_error",
"status": 401,
"instance": "req_123",
"code": "unauthenticated"
}
}{
"error": {
"type": "authorization_error",
"status": 403,
"instance": "req_123",
"code": "forbidden"
}
}{
"error": {
"type": "rate_limit_error",
"status": 429,
"instance": "req_123",
"code": "resource_exhausted"
}
}{
"error": {
"type": "internal_error",
"status": 500,
"instance": "req_123",
"code": "internal"
}
}{
"error": {
"type": "api_error",
"status": 501,
"instance": "req_123",
"code": "unimplemented"
}
}{
"error": {
"type": "service_error",
"status": 503,
"instance": "req_123",
"code": "unavailable"
}
}{
"error": {
"type": "service_error",
"status": 504,
"instance": "req_123",
"code": "deadline_exceeded"
}
}Authorizations
Your public API key. Identifies the partner making the request.
HMAC signature over the request, computed with your private key.
Monotonically increasing nonce included in the request signature.
Query Parameters
Source asset ticker symbol (e.g., "USD"). Use GET /v1/ramp/fiat-currencies to discover supported source currencies.
Symbol identifying an asset within its asset category.
1 - 16Classification of the source asset. Pair with from_symbol to disambiguate when the same ticker exists across asset classes (e.g., USDC as stablecoin vs crypto). Only fiat sources are currently supported (on-ramp).
Source asset classification accepted by Ramp on-ramp flows.
fiat Funding method used for the source side. Use GET /v1/ramp/payment-methods to discover supported payment methods.
1 - 128Amount to spend, denominated in the source asset, as a decimal string. The quote is calculated for this fixed source amount.
1 - 64^[0-9]+(\.[0-9]+)?$Destination asset ticker symbol (e.g., "BTC"). Use GET /v1/ramp/buy/crypto to discover supported destination assets.
Symbol identifying an asset within its asset category.
1 - 16Classification of the destination asset. Pair with to_symbol to disambiguate when the same ticker exists across asset classes (e.g., USDC as stablecoin vs crypto). Only crypto and stablecoin destinations are currently supported (on-ramp).
Destination asset classification accepted by Ramp on-ramp flows.
crypto, stablecoin Withdrawal method for the destination asset. Use GET /v1/ramp/buy/crypto to discover available withdrawal methods for each asset.
1 - 128ISO 3166-1 alpha-2 country code. Use GET /v1/ramp/countries to discover supported values.
2^[A-Za-z]{2}$ISO 3166-2 subdivision code suffix (e.g., CA for California when country is US). Use GET /v1/ramp/countries to discover supported values.
1 - 64^[A-Za-z0-9-]+$Affiliate fee in basis points to attribute to the partner (0-10000 where 100 = 1%). This fee is additive to the platform fee, increasing the total fee charged to the user. The resulting affiliate_fee in the response reflects the partner's portion of the total fee.
1 - 5^(10000|[0-9]{1,4})$Response
Successful response
Prospective quote for the requested Ramp route.
Show child attributes
Show child attributes