/user/info
Get general information about a user.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user whose information you wish to retrieve.
This ID is required.
A flag to indicate whether to include the user's logo in the response.
Set to "1" to include, or "0" to exclude the logo.
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
The unique ID of the user.
The name of the user's store.
Payment method data for a user.
The base64-encoded image string representing the user's logo.
Contains a list of rewards the user has claimed from our rewards page.
Contains the unix time at which the account was created.
/user/transactions
Get a users transactions.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user whose transactions you wish to retrieve.
This ID is required.
The number of transactions to return per page.
This parameter is optional. If provided, it must be used with the `page` parameter.
Capped at 100. Sending neither returns the first 20 rows - it no
longer returns everything.
The page number to retrieve.
This parameter is optional. If provided, it must be used with the `rows` parameter.
Pages are 1-based; `page=0` is a 400.
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
A list of transactions associated with the user.
/user/funds
Get a users funds.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user whose funds you wish to retrieve.
This ID is required.
The number of funds records to return per page.
This parameter is optional. If provided, it must be used with the `page` parameter.
Capped at 100. Sending neither returns the first 20 rows - it no
longer returns everything.
The page number to retrieve.
This parameter is optional. If provided, it must be used with the `rows` parameter.
Pages are 1-based; `page=0` is a 400.
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
A list of ledger entries associated with the user, newest first.
"amount" is signed - credits positive, debits negative.
"uid" is the ledger entry's own identifier. It used to carry the id
of whatever caused the entry, so it could be joined against a
withdrawal or exchange id; entries written since the changeover no
longer correlate that way.
"type" is one of: revenue, deposit, withdrawal, exchange_out,
exchange_in, fee, reward, registration_bonus. The two exchange legs
used to share the single value "exchange"; historical rows may also
contain "is_deposit" and "registration bonus" with a space.
/user/balances
Get a users balances.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user whose balances you wish to retrieve.
A
This parameter used to be the conversion target - use
"convert_currency" for that now.
Convert every balance into this currency.
Wins over "convert_currency_from_settings".
Convert into the user's own settings currency, configurable here.
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
The currency the balances were converted into.
Formerly called "currency". Conversion is opt-in, so this is absent
unless "convert_currency" or "convert_currency_from_settings" was
supplied.
The total balance of the user, denominated in the converted currency. Excludes credit funds, which cannot be withdrawn.
An object containing the balances for currencies the user owns.
"actual" is
"credit" is fee-only money that can never be withdrawn. The two
never overlap, and the old "actual" is the sum of them.
"converted" and "percent" are only present when converting, and
"converted" is null for a currency we currently have no rate for.
/user/stats
Retrieve statistics about a user's transactions, including revenue, transaction count, and completion rates.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user whose statistics you wish to retrieve.
The time period in seconds to filter the transactions.
Optional. Defaults to 24 hours (86400 seconds).
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
The currency in which the stats are reported.
Can be configured here.
The total revenue in the user's currency over the selected time period.
This is a decimal
A currency we currently have no usable price for is left out of the
revenue figure but still counted in transaction_count and
completion_rate - this endpoint does not fail on a stale rate.
The percentage change in revenue compared to the previous period.
The total number of transactions in the user's account over the selected time period.
The percentage change in the transaction count compared to the previous period.
The percentage of transactions marked as completed over the selected time period.
The percentage change in the completion rate compared to the previous period.
/user/exchange
Perform an exchange from one currency to another for a user.
This endpoint allows users to exchange a specified amount of currency they hold for another currency based on the current exchange rate.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user performing the exchange.
The currency the user is exchanging from.
The currency the user is exchanging to.
The amount of the source currency (currency_from) the user wants to exchange. Provide either currency_from_amount or currency_to_amount.
The amount of the target currency (currency_to) the user wants to receive.
Provide either currency_from_amount or currency_to_amount.
Supplying both, or neither, is a 400 - it is no longer resolved
silently.
Price the exchange without executing it. Returns the same body without an "exchange_id".
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
The unique identifier for the exchange transaction.
The rate used and both sides of the exchange, with the amount you did not supply filled in.
The exchange fee. It lands on whichever side you did not fix:
denominated in currency_to when you supplied currency_from_amount,
and in currency_from otherwise.
Exchange spends withdrawable balance only - credit funds are
excluded.
/user/withdraw
Withdraw an amount of a specific currency to a designated recipient address.
This endpoint allows users to withdraw their funds to an external crypto address.
Query Params / Form Data
Contains your API key.
Get it from here.
The unique ID of the user requesting the withdrawal.
The currency the user wishes to withdraw.
The amount of the currency to be withdrawn.
This is the amount before any withdrawal fees are applied.
The response tells you exactly what was charged and what will
arrive, so the fee no longer has to be guessed at.
The recipient's crypto address where the funds will be sent.
The address is checksum-validated for this exact currency, so a
typo or an address for the wrong chain is rejected with
"invalid_recipient_address" instead of being accepted and lost.
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
The unique identifier for the withdrawal transaction.
The webhook signing secret for this withdrawal.
What was actually debited from your balance.
What the recipient will receive.
The difference between the two.
/user/changesettings
Change various user settings such as username, currency, password, and other details.
This endpoint allows the user to update settings like their username, currency, password, store name, terms of service, privacy policy, logo, banner, theme color, and payment methods.
Query Params / Form Data
Your API key.
Get it from here.
The unique ID of the user whose settings are being updated.
The new username for the user.
The new currency for the user.
Whether to generate a new API key for the user.
Accepts "True", "true" or "1". Requires "current_password".
The new key is returned in "data.new_key" and the old one stops
working immediately.
The new password for the user.
Between 12 and 256 characters. Requires "current_password".
Your existing password, in plaintext.
This replaces "confirm_password", which only compared two fields the
same client supplied and proved nothing about who was holding the
session. Do your confirm-field comparison in your own UI.
A missing or wrong value is a 403 "not_permitted".
The new store name for the user.
The URL for the updated terms of service.
The URL for the updated privacy policy.
The base64-encoded image for the user's logo.
The new theme color for the user.
A JSON object representing the user's payment methods and their statuses.
A JSON object representing the user's PayPal accounts, including email and status (can be set to "enabled/disabled/hold"), whether to accept gs (goods and services) and ff (friends and family) payments.
Response JSON
Indicates the result of the API request.
For more details about error handling, check here.
Contains additional data related to the update.
For example, if the API key is updated, this field may contain the new key.