Skip to main content

Overview

The Assets API is the catalog for assets available through Payward Services. Use it before a payment or trading flow to decide which assets to show, how much precision to accept, and whether deposits, withdrawals, or swaps are currently enabled. The same responses also include display metadata and market data. Use this data to build asset pickers, payment setup screens, and price history views.

Prerequisites

  • Payward Services API credentials (see the Authentication guide)
  • Base URL: https://api.services.payward.com

Asset discovery workflow

Use this flow when you build a screen that lets a user choose an asset, review its details, and continue into a deposit, withdrawal, or trade.
1

List available assets

Filter the catalog to assets enabled for the action you want to offer.GET /v1/assets
2

Inspect the selected asset

Fetch the asset again when the user selects it. Check current status, precision, logo, and quote-denominated market data.GET /v1/assets/{asset_type}/{asset_symbol}
3

Show price history

Fetch historical rates when you need a chart, recent trend, or change-over-time display.GET /v1/assets/{asset_type}/{asset_symbol}/rates
4

Continue to the user action

Use the selected symbol with the deposits, withdrawals, or trade endpoints.See Deposits and withdrawals.
Asset prices and rates are useful for display and discovery. Do not use them as executable trade quotes. Use the Swap API when you need a locked trading price.

Step 1: list available assets

Call GET /v1/assets to build the asset list for your UI. Filter by asset type and capability so users only see assets that support the action they are trying to complete.
def list_assets(page_token=None):
    endpoint = "/v1/assets"
    params = [
        # Repeat `type` to filter on several asset types at once.
        ("type", "crypto"),
        ("type", "stablecoin"),
        ("deposit", "true"),
        ("withdraw", "true"),
        ("quote_symbol", "USD"),
        ("quote_type", "fiat"),
        ("sort", "market_cap_rank"),
        ("sort_direction", "asc"),
    ]
    if page_token:
        params.append(("page_token", page_token))

    signature = get_payward_signature(endpoint, None, API_SECRET, params)
    headers = {
        "API-Key": API_KEY,
        "API-Sign": signature,
    }

    response = requests.get(
        f"{BASE_URL}{endpoint}",
        headers=headers,
        params=params,
    )
    return response.json()


assets = list_assets()
for asset in assets["data"]:
    print(asset["symbol"], asset["status"]["deposit"]["enabled"])
Use these fields from each asset:
FieldHow to use it
symbol and typeIdentify the asset in later API calls.
name and logoDisplay the asset in your picker.
status.deposit.enabledShow or hide deposit entry points.
status.withdraw.enabledShow or hide withdrawal entry points.
status.swap_trading.enabledShow or hide trade entry points.
status.swap_trading.disabled_againstPrevent unsupported swap pairs.
decimals.fundingValidate deposit and withdrawal amounts.
decimals.swapValidate swap amounts.
price, market_cap, volume, and price_change_percentShow market context in the requested quote asset.
The list endpoint is cursor-paginated. If the response includes next_page_token, pass it as page_token to fetch the next page. See the List Assets API reference for all filters, sort options, and response fields.

Step 2: inspect the selected asset

Call GET /v1/assets/{asset_type}/{asset_symbol} when the user selects an asset. This gives you the same normalized shape as the list response, scoped to one asset.
def get_asset(asset_type, asset_symbol, quote_symbol="USD", quote_type="fiat"):
    endpoint = f"/v1/assets/{asset_type}/{asset_symbol}"
    params = {
        "quote_symbol": quote_symbol,
        "quote_type": quote_type,
    }
    signature = get_payward_signature(endpoint, None, API_SECRET, params)

    headers = {
        "API-Key": API_KEY,
        "API-Sign": signature,
    }

    response = requests.get(
        f"{BASE_URL}{endpoint}",
        headers=headers,
        params=params,
    )
    return response.json()


btc = get_asset("crypto", "BTC")
print(btc["data"]["status"]["withdraw"]["enabled"])
Before you continue:
  • Check status.deposit.enabled before you create or show deposit addresses.
  • Check status.withdraw.enabled before you list withdrawal methods or let a user save a withdrawal address.
  • Use decimals.funding to format and validate payment amounts.
  • Use quote_symbol and quote_type consistently so your UI does not mix valuations from different quote assets.
See the Get Asset API reference for the full response schema.

Step 3: show price history

Call GET /v1/assets/{asset_type}/{asset_symbol}/rates when you need historical prices for a chart or trend display. Set the quote asset, time window, and interval explicitly.
def list_asset_rates(asset_type, asset_symbol, page_token=None):
    endpoint = f"/v1/assets/{asset_type}/{asset_symbol}/rates"
    params = {
        "quote_symbol": "USD",
        "quote_type": "fiat",
        "start_timestamp": "2026-04-21T00:00:00Z",
        "end_timestamp": "2026-04-26T23:59:59Z",
        "interval": "P1D",
    }
    if page_token:
        params["page_token"] = page_token

    signature = get_payward_signature(endpoint, None, API_SECRET, params)
    headers = {
        "API-Key": API_KEY,
        "API-Sign": signature,
    }

    response = requests.get(
        f"{BASE_URL}{endpoint}",
        headers=headers,
        params=params,
    )
    return response.json()


rates = list_asset_rates("crypto", "BTC")
for rate in rates["data"]:
    print(rate["timestamp"], rate["price"])
Supported intervals include PT1M, PT5M, PT15M, PT30M, PT60M, PT4H, P1D, P7D, and P15D. Use the next_page_token from the response when you need more history. See the List Asset Rates API reference for all query parameters and pagination behavior.

API reference

EndpointMethodDescription
/v1/assetsGETList assets with filters for type, payment availability, and market data
/v1/assets/{asset_type}/{asset_symbol}GETGet metadata, payment availability, precision, and market data for one asset
/v1/assets/{asset_type}/{asset_symbol}/ratesGETList historical rates for an asset in the requested quote asset