Skip to main content

1. Create an Account

Sign up at app.rivermarkets.com to create your account.

2. Generate an API Key

  1. Log in to your dashboard
  2. Navigate to Settings → API Keys
  3. Click Create API Key
  4. Copy the key_id and private_key — the private key is shown only once
The private key signs every request locally (Ed25519). The server only stores the public key, so it never sees your secret.

3. Install the SDK

The SDK handles request signing for you. If you’d rather implement signing yourself (other languages, raw HTTP), see Authentication for the canonical-string spec.

4. Make Your First Request

Test your credentials by searching for markets. We support ticker search (Kalshi ticker, Polymarket condition_id/slug, river_id) and fuzzy search (“bitcoin”, “fed rates”).

5. Set Up a Subaccount

Subaccounts let you organize trading activity into separate containers — useful for segregating strategies, clients, or portfolios. You can create them via the UI at Settings → Subaccounts or programmatically:
Watch the video walkthrough to see how to create a subaccount, add a Polymarket account, and place your first trade.

6. Add Exchange Credentials

Exchange credentials can be added via the UI under Settings → Subaccounts
We use asymmetric encryption — your credentials are never transferred between services or stored in plain text. Credentials are deleted when you delete a subaccount.
Watch this walkthrough to see how to create a subaccount, add a Polymarket account.

7. Place Your First Order

Use the River ID from your market search to place an order:

8. Check Order Status

Possible statuses:
StatusDescription
pending_submissionOrder received, awaiting processing
submittedOrder sent to exchange
partially_filledOrder partially executed
filledOrder fully executed
cancelledOrder cancelled
rejectedOrder rejected (see reject_reason)

9. Cancel an Order

Only orders with status submitted or partially_filled can be cancelled.

Rate Limits

  • Standard: 10 requests/second
  • Premium: Contact support for higher limits