curl --request GET \
--url https://staging.crossmint.com/api/2022-06-09/orders \
--header 'X-API-KEY: <api-key>'import requests
url = "https://staging.crossmint.com/api/2022-06-09/orders"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://staging.crossmint.com/api/2022-06-09/orders', 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://staging.crossmint.com/api/2022-06-09/orders",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/2022-06-09/orders"
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))
}HttpResponse<String> response = Unirest.get("https://staging.crossmint.com/api/2022-06-09/orders")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2022-06-09/orders")
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_body{
"data": [
{
"orderId": "40f49812-123b-4d10-bdae-561e4ed2b990",
"phase": "payment",
"lineItems": [
{
"metadata": {
"name": "USD",
"description": "United States Dollar",
"imageUrl": "https://www.crossmint.com/assets/ui/flags/us.svg"
},
"quote": {
"status": "valid",
"charges": {
"unit": {
"amount": "1",
"currency": "usdc"
},
"fees": {
"type": "exact",
"amount": "0.002",
"currency": "usdc"
}
},
"totalPrice": {
"amount": "1",
"currency": "usdc"
}
},
"delivery": {
"status": "awaiting-payment",
"completedAt": "2026-07-27T20:35:00.000Z",
"recipient": {
"locator": "paymentMethodId:d5e5c48a-7dec-44b1-8cf4-4615bf00c8fc",
"paymentMethodId": "d5e5c48a-7dec-44b1-8cf4-4615bf00c8fc"
},
"failureReason": {
"code": "slippage-tolerance-exceeded",
"message": "<string>"
}
},
"executionMode": "exact-in"
}
],
"quote": {
"status": "valid",
"quotedAt": "2026-06-17T21:48:49.059Z",
"expiresAt": "2026-06-17T21:58:49.059Z",
"totalPrice": {
"amount": "1",
"currency": "usdc"
}
},
"payment": {
"status": "awaiting-payment",
"method": "base-sepolia",
"currency": "usdc",
"preparation": {
"chain": "base-sepolia",
"payerAddress": "0xAa266270cf90FEEA9760617d9c7B5083e9f08984",
"serializedTransaction": "0x02f9018e83014a34...",
"transactionParameters": {
"amount": "1000000",
"memo": "------BEGIN MEMO------...------END MEMO------"
}
},
"received": {
"chain": "base-sepolia",
"txId": "0xc9537a0e4ee4794101514d30418bd20f09cf66c3ce86b82b0be916489a338e85",
"amount": "1",
"currency": "usdc"
},
"receiptEmail": "alice@example.com"
}
}
],
"nextCursor": "<string>",
"previousCursor": "<string>"
}{
"error": true,
"message": "<string>",
"code": "<string>"
}{
"error": true,
"message": "Malformed API key. / API key provided doesn't have required scopes."
}List Orders
Retrieve a paginated list of offramp orders for your project to track and reconcile payouts.
curl --request GET \
--url https://staging.crossmint.com/api/2022-06-09/orders \
--header 'X-API-KEY: <api-key>'import requests
url = "https://staging.crossmint.com/api/2022-06-09/orders"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://staging.crossmint.com/api/2022-06-09/orders', 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://staging.crossmint.com/api/2022-06-09/orders",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/2022-06-09/orders"
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))
}HttpResponse<String> response = Unirest.get("https://staging.crossmint.com/api/2022-06-09/orders")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2022-06-09/orders")
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_body{
"data": [
{
"orderId": "40f49812-123b-4d10-bdae-561e4ed2b990",
"phase": "payment",
"lineItems": [
{
"metadata": {
"name": "USD",
"description": "United States Dollar",
"imageUrl": "https://www.crossmint.com/assets/ui/flags/us.svg"
},
"quote": {
"status": "valid",
"charges": {
"unit": {
"amount": "1",
"currency": "usdc"
},
"fees": {
"type": "exact",
"amount": "0.002",
"currency": "usdc"
}
},
"totalPrice": {
"amount": "1",
"currency": "usdc"
}
},
"delivery": {
"status": "awaiting-payment",
"completedAt": "2026-07-27T20:35:00.000Z",
"recipient": {
"locator": "paymentMethodId:d5e5c48a-7dec-44b1-8cf4-4615bf00c8fc",
"paymentMethodId": "d5e5c48a-7dec-44b1-8cf4-4615bf00c8fc"
},
"failureReason": {
"code": "slippage-tolerance-exceeded",
"message": "<string>"
}
},
"executionMode": "exact-in"
}
],
"quote": {
"status": "valid",
"quotedAt": "2026-06-17T21:48:49.059Z",
"expiresAt": "2026-06-17T21:58:49.059Z",
"totalPrice": {
"amount": "1",
"currency": "usdc"
}
},
"payment": {
"status": "awaiting-payment",
"method": "base-sepolia",
"currency": "usdc",
"preparation": {
"chain": "base-sepolia",
"payerAddress": "0xAa266270cf90FEEA9760617d9c7B5083e9f08984",
"serializedTransaction": "0x02f9018e83014a34...",
"transactionParameters": {
"amount": "1000000",
"memo": "------BEGIN MEMO------...------END MEMO------"
}
},
"received": {
"chain": "base-sepolia",
"txId": "0xc9537a0e4ee4794101514d30418bd20f09cf66c3ce86b82b0be916489a338e85",
"amount": "1",
"currency": "usdc"
},
"receiptEmail": "alice@example.com"
}
}
],
"nextCursor": "<string>",
"previousCursor": "<string>"
}{
"error": true,
"message": "<string>",
"code": "<string>"
}{
"error": true,
"message": "Malformed API key. / API key provided doesn't have required scopes."
}Authorizations
Query Parameters
Opaque cursor from a previous response's nextCursor or previousCursor. Omit on the first request.
Maximum number of orders to return. Minimum 1, maximum 100.
1 <= x <= 100Sort direction applied to createdAt.
asc, desc Comma-separated list of payment statuses. Orders matching any value are returned. Maximum 20 terms per parameter. Keep filter params stable when paginating with cursors.
20quote-phase, in-progress, succeeded, declined, expired, refunded Comma-separated list of delivery statuses. Orders matching any value are returned. Maximum 20 terms per parameter. Keep filter params stable when paginating with cursors.
20not-started, in-progress, partial-delivery, delivered, failed Comma-separated list of currencies matched against payment.totalPaid.currency. The fiat value matches all fiat payment methods. Maximum 20 terms per parameter.
20Exact match on buyer wallet address (buyer.mintTo). Supports EVM and Solana addresses. Maximum 20 terms per parameter.
20Exact match on order ID (orderIdentifier). Maximum 20 terms per parameter.
20Response
Orders retrieved successfully.
Was this page helpful?

