Get Quote
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId} \
--header 'x-api-key: <api-key>'import requests
url = "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const url = 'https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}';
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyimport Foundation
let url = URL(string: "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["x-api-key": "<api-key>"]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))val client = OkHttpClient()
val request = Request.Builder()
.url("https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")
.get()
.addHeader("x-api-key", "<api-key>")
.build()
val response = client.newCall(request).execute()falsepackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"status": "success",
"message": "quote generated successfully",
"data": {
"id": "3f41daaa-029c-44a2-b7c6-ed922a68177b",
"source": {
"currency": "USDC",
"symbol": "USDC",
"type": "CRYPTOCURRENCY",
"amount": 5,
"network": {
"id": "f8fc48ff-81e6-4b5f-9a70-44fb744e3572",
"name": "USDC",
"blockchain": "MATIC-AMOY"
}
},
"target": {
"currency": "NGN",
"country": "NG",
"type": "FIAT",
"paymentChannel": "BANK_TRANSFER",
"amount": 5537.1
},
"rate": 1107.42,
"fees": [
{
"amount": 0.025,
"gas": {
"type": "MEDIUM",
"total": 0.29237925
}
}
],
"summary": {
"total": 5.31737925
},
"expiresInSeconds": 600
}
}{
"message": "Invalid API key",
"status": "failed"
}{
"status": "error",
"message": "Invalid Wallet Address"
}{
"message": "Server failed to process request.",
"status": "failed"
}Get Quote (Crypto)
Retrieve details of a specific quote by its ID.
GET
/
v1
/
ramp
/
quote
/
{quoteId}
Get Quote
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId} \
--header 'x-api-key: <api-key>'import requests
url = "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const url = 'https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}';
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyimport Foundation
let url = URL(string: "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["x-api-key": "<api-key>"]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))val client = OkHttpClient()
val request = Request.Builder()
.url("https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}")
.get()
.addHeader("x-api-key", "<api-key>")
.build()
val response = client.newCall(request).execute()falsepackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandboxapi.me-cash.com/v1/ramp/quote/{quoteId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"status": "success",
"message": "quote generated successfully",
"data": {
"id": "3f41daaa-029c-44a2-b7c6-ed922a68177b",
"source": {
"currency": "USDC",
"symbol": "USDC",
"type": "CRYPTOCURRENCY",
"amount": 5,
"network": {
"id": "f8fc48ff-81e6-4b5f-9a70-44fb744e3572",
"name": "USDC",
"blockchain": "MATIC-AMOY"
}
},
"target": {
"currency": "NGN",
"country": "NG",
"type": "FIAT",
"paymentChannel": "BANK_TRANSFER",
"amount": 5537.1
},
"rate": 1107.42,
"fees": [
{
"amount": 0.025,
"gas": {
"type": "MEDIUM",
"total": 0.29237925
}
}
],
"summary": {
"total": 5.31737925
},
"expiresInSeconds": 600
}
}{
"message": "Invalid API key",
"status": "failed"
}{
"status": "error",
"message": "Invalid Wallet Address"
}{
"message": "Server failed to process request.",
"status": "failed"
}🚧 The Ramp API is currently under construction. Endpoints and features described here are subject to change. Do not use in production until this notice is removed.
Get Quote (Crypto-to-Crypto)
This endpoint fetches the complete details of a previously created crypto-to-crypto quote using itsquote_id . The data includes source and target crypto information, exchange rates, and transaction rules.
New to the Ramp API? Read How meCash Ramp Works for the full lifecycle and integration considerations. See Supported Assets & Destinations for the complete token and network reference.
Endpoint
GET{{appUrl}}/v1/ramp/quote/{{quote_id}}
Headers
| Header | Value | Required |
|---|---|---|
Content-Type | application/json | Yes |
x-api-key | YOUR_API_KEY | Yes |
Path Parameter
| Parameter | Type | Description |
|---|---|---|
quote_id | string | Unique identifier of the quote |
Example Request
This example shows how to retrieve the details of a specific ramp quote using its unique ID.# Replace YOUR_QUOTE_ID with the actual ID of the quote
curl --location --request GET '{{appUrl}}/v1/ramp/quote/YOUR_QUOTE_ID' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json'
const quoteId = 'YOUR_QUOTE_ID'; // Replace with the actual quote ID
fetch(`{{appUrl}}/v1/ramp/quote/${quoteId}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(console.log)
.catch(console.error);
import requests
# Replace YOUR_QUOTE_ID with the actual ID of the quote
quote_id = "YOUR_QUOTE_ID"
url = f"{{appUrl}}/v1/ramp/quote/{quote_id}"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
print(response.json())
const axios = require('axios');
const quoteId = 'YOUR_QUOTE_ID'; // Replace with the actual quote ID
axios.get(`{{appUrl}}/v1/ramp/quote/${quoteId}`, {
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error.response.data);
});
Successful Response 200 OK
{
"message": "quote successfully created",
"status": "success",
"data": {
"id": "92da6ea0-79fe-4000-971d-xxxxxxxxxxxxxxxx",
"source": {
"currency": "Polygon",
"symbol": "POL",
"addressRegex": "^(0x)[0-9A-Fa-f]{40}$",
"amount": 0.12,
"blockchain": "MATIC",
"type": "CRYPTOCURRENCY"
},
"target": {
"currency": "Polygon",
"symbol": "POL",
"addressRegex": "^(0x)[0-9A-Fa-f]{40}$",
"amount": 0.12,
"blockchain": "MATIC",
"type": "CRYPTOCURRENCY"
},
"rate": 0.00102300,
"fees": {
"symbol": "POL",
"amount": 0.00,
"gas": {
"type": "MEDIUM",
"amount": 0.01909123
}
},
"rules": [
{
"category": "LIMIT",
"appliedCurrency": "USDC",
"transaction": {
"minimum": 10.00,
"maximum": 2000000.00
},
"invoice": 2000000.00
}
],
"summary": {
"total": 0.12
}
}
}
Response Breakdown
| Field | Type | Description |
|---|---|---|
message | string | Status message (e.g., "quote successfully created") |
status | string | Status of the request (e.g., "success") |
data.id | string | Unique identifier of the quote |
data.source | object | Details of the source cryptocurrency |
data.source.currency | string | Name of the source currency (e.g., "Polygon") |
data.source.symbol | string | Symbol of the source cryptocurrency (e.g., "POL") |
data.source.addressRegex | string | Regular expression pattern for validating crypto addresses |
data.source.amount | number | Amount of source cryptocurrency |
data.source.blockchain | string | Blockchain network (e.g., "MATIC") |
data.source.type | string | Type of the asset ("CRYPTOCURRENCY") |
data.target | object | Details of the target cryptocurrency |
data.target.currency | string | Name of the target currency (e.g., "Polygon") |
data.target.symbol | string | Symbol of the target cryptocurrency (e.g., "POL") |
data.target.addressRegex | string | Regular expression pattern for validating target crypto addresses |
data.target.amount | number | Amount of target cryptocurrency |
data.target.blockchain | string | Blockchain network of the target currency |
data.target.type | string | Type of the asset ("CRYPTOCURRENCY") |
data.rate | number | Exchange rate between source and target cryptocurrencies |
data.fees | object | Fee breakdown for the transaction |
data.fees.symbol | string | Currency symbol for fees |
data.fees.amount | number | Fee amount charged |
data.fees.gas | object | Gas fee details |
data.fees.gas.type | string | Gas fee level ("MEDIUM", etc.) |
data.fees.gas.amount | number | Gas fee amount |
data.rules | array | Rules that apply to this transaction |
data.rules[].category | string | Rule category (e.g., "LIMIT") |
data.rules[].appliedCurrency | string | Currency to which the rule applies (e.g., "USDC") |
data.rules[].transaction | object | Transaction limits |
data.rules[].transaction.minimum | number | Minimum transaction amount |
data.rules[].transaction.maximum | number | Maximum transaction amount |
data.rules[].invoice | number | Maximum invoice amount |
data.summary | object | Summary of the transaction |
data.summary.total | number | Total amount of the source cryptocurrency involved in the transaction |
Error Codes
| Code | Message |
|---|---|
| 400 | Bad request – invalid or missing fields |
| 401 | Unauthorized – invalid API key |
| 500 | Internal server error |
Was this page helpful?
⌘I

