curl --request GET \
--url https://nexus.gerowallet.io/api/partner/swaps \
--header 'X-Api-Key: <api-key>'import requests
url = "https://nexus.gerowallet.io/api/partner/swaps"
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://nexus.gerowallet.io/api/partner/swaps', 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://nexus.gerowallet.io/api/partner/swaps",
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://nexus.gerowallet.io/api/partner/swaps"
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://nexus.gerowallet.io/api/partner/swaps")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.gerowallet.io/api/partner/swaps")
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_bodynullnullnullnullnullYour swaps, newest first
Every swap built through one of your keys, newest first, with its status (BUILT, SUBMITTED, CONFIRMED, FAILED, EXPIRED), the pair, the input amount and which key built it. No fee, share or revenue figure is ever on this response; your earnings are GET /api/partner/earnings.
Live alerts. Poll every 15 seconds (the response is cacheable for that long) with updatedSince set to the newest updatedAt you have already seen. You get back only the swaps that changed since then, in every status. Keep the latest row per swapId and react to the ones whose status became CONFIRMED (or SUBMITTED, if you want to announce earlier). swapId is null while a swap is only BUILT, because the wallet has not submitted a transaction yet.
Recovering after downtime. Call with updatedSince set to the last updatedAt you stored before the outage and page through nextCursor until it is null. The filter is inclusive, so the boundary row is delivered again; that is the same upsert by swapId as above. Nothing is lost: a swap that changed status while you were down carries the later updatedAt and is returned.
Browsing history. Omit updatedSince and page with cursor. Pages are newest first and nextCursor walks towards older swaps; it is opaque, pass it back unchanged.
Times are ISO-8601 instants in UTC. Amounts are integer strings in the input token’s base units (lovelace for ADA). Callable with a browser session or an ordinary API key; a public partner key is refused, because a key that lives in a web page must not enumerate your swaps.
curl --request GET \
--url https://nexus.gerowallet.io/api/partner/swaps \
--header 'X-Api-Key: <api-key>'import requests
url = "https://nexus.gerowallet.io/api/partner/swaps"
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://nexus.gerowallet.io/api/partner/swaps', 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://nexus.gerowallet.io/api/partner/swaps",
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://nexus.gerowallet.io/api/partner/swaps"
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://nexus.gerowallet.io/api/partner/swaps")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.gerowallet.io/api/partner/swaps")
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_bodynullnullnullnullnullAuthorizations
API key (programmatic access — recommended)
Send your API key in the X-Api-Key header. Keys start with nxs_ and are
created in the dashboard (or via POST /api/keys with a session JWT).
Each key is scoped to one chain and one network (for example
CARDANO_MAINNET), fixed at creation time. It cannot query a different network
on the same chain, and it cannot query a different chain at all. A mismatched
network parameter returns 400 Network Mismatch. Create one key per chain
and network under the same account.
This is the credential most integrations should use.
Query Parameters
Only swaps whose last status change is at or after this ISO-8601 instant. Set it to the newest updatedAt you have seen; the boundary row is delivered again.
The nextCursor of the previous page, unchanged. Omit for the newest page.
Rows per page, 1 to 200. Default 50.