Skip to main content

Your First API Call

Let’s list your counterparties in three simple steps:
1

Get Your API Key

Sign in at app.range.org and generate an API key from the dashboard. Keep it secure — treat it like a password.
2

Make Your First Request

List all counterparties in your workspace:
curl -X GET "https://api.range.org/v2/counterparties" \
  -H "X-API-KEY: your_api_key_here"
3

Explore the Response

You’ll receive a paginated list of counterparties with their addresses, bank accounts, and metadata.
{
  "items": [
    {
      "id": "cp_abc123",
      "name": "Vercel",
      "type": "vendor",
      "website": "https://vercel.com",
      "notes": "Infrastructure hosting provider",
      "addresses": [
        {
          "id": "08846e81-b3a8-7fd9-cc39-d4023a75dcff",
          "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
          "network": "ethereum",
          "name": "Vercel Payment Wallet",
          "label": "payment wallet"
        }
      ],
      "bank_accounts": []
    }
  ],
  "meta": {
    "next_cursor": "eyJpZCI6IjkxeFFlV3Z...",
    "previous_cursor": null,
    "total_count": 42,
    "page_number": 1
  }
}

API Fundamentals

Base URL

All API requests are made to:
https://api.range.org

Authentication

Include your API key in the X-API-KEY header with every request:
X-API-KEY: your_api_key_here
Never expose your API key in client-side code or public repositories. Use environment variables to store it securely.

Get Your API Key

Generate and manage API keys from the Range dashboard

Request Format

All endpoints use GET, POST, PATCH, PUT, or DELETE methods with:
  • Query parameters for filtering and pagination (GET endpoints)
  • JSON request bodies for creates and updates (Content-Type: application/json)
  • Multipart form data for document uploads
  • JSON responses for all successful requests

Response Format

Successful responses return JSON directly. List endpoints include a meta object:
{
  "items": [
    /* array of results */
  ],
  "meta": {
    "next_cursor": "eyJpZCI6...",
    "previous_cursor": null,
    "first_page_cursor": "eyJpZCI6...",
    "last_page_cursor": "eyJpZCI6...",
    "total_count": 100,
    "page_number": 1
  }
}

Pagination

The Platform API uses cursor-based pagination for all list endpoints.
ParameterTypeDescription
limitnumberResults per page (default 50, max 200)
cursorstringOpaque cursor from a previous response’s meta
Example — fetch the next page:
curl "https://api.range.org/v2/counterparties?limit=50&cursor=eyJpZCI6IjkxeFFlV3Z..." \
  -H "X-API-KEY: your_api_key_here"
Use meta.next_cursor to advance forward. When next_cursor is null, you’ve reached the last page.
Cursors are opaque strings — do not parse or construct them manually. Always use the cursor value returned in the response.

Common Use Cases

Create a Counterparty

Add vendors, customers, and partners with crypto addresses and bank details POST /v2/counterparties

Search Accounts

Find and filter your workspace accounts by type, network, or group GET /v2/accounts

Connect an Exchange

Link a Kraken, Coinbase, or Hyperliquid account to sync balances POST /v2/account-connections

Query Transactions

Fetch canonical transfer and trade history across all connected accounts GET /v2/account-connections/transactions

Error Handling

The API uses standard HTTP status codes:
Status CodeMeaningCommon Causes
200SuccessRequest completed successfully
201CreatedResource created successfully
400Bad RequestInvalid parameters or malformed request
401UnauthorizedMissing or invalid API key
404Not FoundResource doesn’t exist
429Too Many RequestsRate limit exceeded
500Server ErrorInternal server error (rare)
Error Response Format:
{
  "statusCode": 400,
  "message": "name should not be empty",
  "error": "Bad Request"
}
Implement retry logic with exponential backoff for 429 and 5xx errors.

Next Steps

Explore Endpoints

Browse all available endpoints with interactive examples below

Platform Overview

Learn what you can build with the Platform API

Data API

Query blockchain addresses, networks, and stablecoin analytics

Get Support

Questions? Our team is here to help
Last modified on June 6, 2026