List transactions
curl --request GET \
--url https://api.moonpay.com/platform/v1/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.moonpay.com/platform/v1/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.moonpay.com/platform/v1/transactions', 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.moonpay.com/platform/v1/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.moonpay.com/platform/v1/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.moonpay.com/platform/v1/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonpay.com/platform/v1/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "fd43b900-593b-4125-9616-7d721ecbe875",
"createdAt": "2026-01-29T14:30:50.000Z",
"updatedAt": "2026-01-29T15:30:50.000Z",
"status": "completed",
"source": {
"amount": "100.02",
"asset": {
"code": "USD"
}
},
"destination": {
"amount": "100.02",
"asset": {
"code": "USDC"
}
},
"fees": {
"network": {
"amount": "2.39",
"asset": {
"code": "USD"
}
},
"moonpay": {
"amount": "4.99",
"asset": {
"code": "USD"
}
},
"ecosystem": {
"amount": "1.00",
"asset": {
"code": "USD"
}
}
},
"wallet": {
"address": "0x1234567890123456789012345678901234567890"
},
"customer": {
"id": "e0dee0ac-4e62-4866-b044-f66c0e4046e9"
},
"paymentMethod": {
"type": "apple_pay"
},
"bankTransferDepositInfo": {
"reference": "MP-8F3K2A",
"recipientName": "MoonPay Ltd",
"recipientAddress": "1 Market Street, London, EC1A 1AA, United Kingdom",
"iban": "GB29NWBK60161331926819",
"bic": "NWBKGB2L",
"bankName": "MoonPay Bank",
"bankAddress": "1 Market Street, London, EC1A 1AA, United Kingdom"
}
}
],
"pageInfo": {
"nextCursor": "<string>"
}
}{
"code": "forbidden",
"message": "Forbidden",
"errors": [
{
"field": "source.amount",
"message": "Source amount must be a numeric string. Example \"100\" or \"10.25\"."
}
]
}{
"code": "unauthorized",
"message": "Not authorized"
}{
"code": "forbidden",
"message": "Forbidden"
}{
"code": "forbidden",
"message": "Forbidden",
"errors": [
{
"field": "source.amount",
"message": "Source amount must be a numeric string. Example \"100\" or \"10.25\"."
}
]
}Transactions
List transactions
List transactions for the connected user with optional date filtering and pagination
GET
/
platform
/
v1
/
transactions
List transactions
curl --request GET \
--url https://api.moonpay.com/platform/v1/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.moonpay.com/platform/v1/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.moonpay.com/platform/v1/transactions', 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.moonpay.com/platform/v1/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.moonpay.com/platform/v1/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.moonpay.com/platform/v1/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonpay.com/platform/v1/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "fd43b900-593b-4125-9616-7d721ecbe875",
"createdAt": "2026-01-29T14:30:50.000Z",
"updatedAt": "2026-01-29T15:30:50.000Z",
"status": "completed",
"source": {
"amount": "100.02",
"asset": {
"code": "USD"
}
},
"destination": {
"amount": "100.02",
"asset": {
"code": "USDC"
}
},
"fees": {
"network": {
"amount": "2.39",
"asset": {
"code": "USD"
}
},
"moonpay": {
"amount": "4.99",
"asset": {
"code": "USD"
}
},
"ecosystem": {
"amount": "1.00",
"asset": {
"code": "USD"
}
}
},
"wallet": {
"address": "0x1234567890123456789012345678901234567890"
},
"customer": {
"id": "e0dee0ac-4e62-4866-b044-f66c0e4046e9"
},
"paymentMethod": {
"type": "apple_pay"
},
"bankTransferDepositInfo": {
"reference": "MP-8F3K2A",
"recipientName": "MoonPay Ltd",
"recipientAddress": "1 Market Street, London, EC1A 1AA, United Kingdom",
"iban": "GB29NWBK60161331926819",
"bic": "NWBKGB2L",
"bankName": "MoonPay Bank",
"bankAddress": "1 Market Street, London, EC1A 1AA, United Kingdom"
}
}
],
"pageInfo": {
"nextCursor": "<string>"
}
}{
"code": "forbidden",
"message": "Forbidden",
"errors": [
{
"field": "source.amount",
"message": "Source amount must be a numeric string. Example \"100\" or \"10.25\"."
}
]
}{
"code": "unauthorized",
"message": "Not authorized"
}{
"code": "forbidden",
"message": "Forbidden"
}{
"code": "forbidden",
"message": "Forbidden",
"errors": [
{
"field": "source.amount",
"message": "Source amount must be a numeric string. Example \"100\" or \"10.25\"."
}
]
}Some Platform API capabilities must be enabled on your account by MoonPay
before you can call them. If this endpoint returns an unexpected
404, see
Capability
enablement.Authorizations
AccessTokenAuthSecretApiKeyInHeaderAuth
Bearer authentication header using an access token.
Example: Authorization: Bearer <accessToken>
Query Parameters
The customer ID that the partner assigned. Send this parameter with a secret API key to return transactions for one customer. If you do not send it, the API returns all transactions for the account in the key mode (live or test). The list is paginated. An access token does not use this parameter. The token already selects one customer.
Minimum string length:
1Cursor for pagination. Use the nextCursor value from the previous response.
Number of items to return per page.
Required range:
1 <= x <= 50