Z Zise Developers 简体中文

Asset pairs: direction-specific; A→B and B→A are independent records

GET /v1/exchange/pairs scope: exchange:read
Merchant account

Configured by direction: USDT→USD and USD→USDT are independent records. Fees need not be symmetric, and one direction can be disabled without the other. Caching them as an undirected pair could make both appear available after only one is disabled, followed by rejection at execution.

This list already applies platform fallback per direction: directions you have not configured use platform defaults. The listed directions therefore match what your members see in the App.

No pagination, with has_more always false, but the envelope matches other list endpoints and works with your generic paginator.

Parameters

This endpoint takes no parameters: no path parameters, query parameters or request body. For the authentication header (x-auth-token) and on-behalf-of header (x-on-behalf-of), see Authentication and Signing.

Response

200OK
{
  "data": [
    {
      "from": "USDT",
      "to": "USD"
    },
    {
      "from": "USD",
      "to": "USDT"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
403insufficient_scope: this key lacks exchange:read
Request
curl -X GET 'https://api.zinfra.vip/v1/exchange/pairs' \
  -H 'x-auth-token: Bearer $TOKEN'
const res = await fetch("https://api.zinfra.vip/v1/exchange/pairs", {
  method: "GET",
  headers: {
    "x-auth-token": "Bearer $TOKEN",
  },
});
// Keep monetary amounts as strings, never numbers.
const data = await res.json();
import requests

res = requests.get(
    "https://api.zinfra.vip/v1/exchange/pairs",
    headers={
        "x-auth-token": "Bearer $TOKEN",
    },
)
# Use Decimal(str(...)) for amounts, not float.
data = res.json()
req, _ := http.NewRequest("GET", "https://api.zinfra.vip/v1/exchange/pairs",
    nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
res, err := http.DefaultClient.Do(req)
// Decode amount fields as string, not float64.
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.zinfra.vip/v1/exchange/pairs"))
    .header("x-auth-token", "Bearer $TOKEN")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
// Use String / BigDecimal for amounts, not double.
$ch = curl_init('https://api.zinfra.vip/v1/exchange/pairs');
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'x-auth-token: Bearer $TOKEN',
  ],
]);
$res = curl_exec($ch);
// Use bcmath / strings for amounts, not floatval.
200
{
  "data": [
    {
      "from": "USDT",
      "to": "USD"
    },
    {
      "from": "USD",
      "to": "USDT"
    }
  ],
  "next_cursor": null,
  "has_more": false
}