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 (Offramp)
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 (Off Ramp)
This endpoint fetches the complete details of a specific off-ramp (crypto-to-fiat) quote, using itsquote_id.
The data includes source crypto, target fiat, rates, fees, and transaction rules.
New to the Ramp API? Read How meCash Ramp Works for the full lifecycle and integration considerations. See Supported Ramp Assets & Destinations for supported fiat corridors and transaction limits.
Endpoint
GET{{baseURL}}/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 fetched",
"status": "success",
"data": {
"id": "92da6ea0-79fe-4000-971d-c481ed495a6a",
"source": {
"currency": "Polygon",
"symbol": "POL",
"addressRegex": "^(0x)[0-9A-Fa-f]{40}$",
"amount": 0.12,
"blockchain": "MATIC",
"type": "CRYPTOCURRENCY"
},
"target": {
"currency": "NGN",
"country": "NG",
"amount": 117.30,
"type": "FIAT"
},
"rate": 0.00102300,
"fees": {
"symbol": "POL",
"amount": 0.00,
"gas": {
"type": "MEDIUM",
"amount": 0.01909123
}
},
"rules": [
{
"category": "LIMIT",
"appliedCurrency": "NGN",
"appliedCountry": "NG",
"transaction": {
"minimum": 10.00,
"maximum": 2000000.00
},
"invoice": 2000000.00
}
],
"summary": {
"total": 0.12
}
}
}
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

