Gemini Crypto Exchange Logo

Roles

Gemini uses a role-based system for private API endpoints so that you can separate privileges for your API keys.

By assigning different roles to different API keys, you can create:

  1. One API key that can trade, and
  2. Another API key that can withdraw digital assets, or
  3. An API key to have access to read-only endpoints

You can configure which roles are assigned to your API keys by logging in to the Gemini Exchange website and going to API Settings to configure your API keys.

If you try to access an endpoint that requires a role you did not assign to your API key, you will get back a response with:

  • 403 status
  • a JSON response body with:
    • reason set to MissingRole, and
    • message explaining what role you need to add to your API key to use this endpoint

See Error Codes for more information about API error responses.

Administrator

Assigning the Administrator role to an API key allows this API key to:

Create accounts within the Master Group View accounts within the Master Group

Trader

Assigning the Trader role to an API key allows this API key to:

  • Check balances
  • Place and cancel orders
  • Check the status of orders
  • See all deposit addresses
  • See all active orders
  • See your trade history and volume
  • View accounts within the Master Group

Fund Manager

Assigning the Fund Manager role to an API key allows this API key to:

  • Check balances
  • See all deposit addresses
  • Request new cryptocurrency deposit addresses
  • Withdraw cryptocurrency funds
  • View accounts within the Master Group
  • Execute internal transfers between two accounts within the same Master group

Auditor

Assigning the Auditor role to an API key allows this API key to:

  • Check balances
  • Check the status of orders
  • See transfers such as deposits and withdrawals
  • See all deposit addresses
  • See all active orders
  • See trade volume
  • See past trades
  • View accounts within the Master Group

Endpoint summary

Here's a summary of which role you need to assign to your API key to use each endpoint in the API:

Account Scoped Endpoints

EndpointURITrader can access?Fund Manager can access?Auditor can access?
Create New Order/v1/order/new
Cancel Order/v1/order/cancel
Cancel All Session Orders/v1/order/cancel/session
Cancel All Active Orders/v1/order/cancel/all
Wrap Order/v1/wrap/:symbol
Order Status/v1/order/status
Get Active Orders/v1/orders
List Past Trades/v1/mytrades
Get Orders History/v1/orders/history
Get Trade Volume/v1/tradevolume
Get Notional Volume/v1/notionalvolume
Heartbeat/v1/heartbeat
Get Available Balances/v1/balances
Get Notional Balancesv1/notionalbalances/:currency
Get Deposit Addresses/v1/addresses/:network
New Deposit Address/v1/deposit/:network/newAddress
Transfers/v1/transfers
Custody Account Fees/v1/custodyaccountfees
Withdraw Crypto Funds/v1/withdraw/:currency
New Clearing Order/v1/clearing/new
Clearing Order Status/v1/clearing/status
Cancel Clearing Order/v1/clearing/cancel
Confirm Clearing Order/v1/clearing/confirm
Clearing Order List/v1/clearing/list
Clearing Broker List/v1/clearing/broker/list
Clearing Trades/v1/clearing/trades
Get Instant Quote/v1/instant/quote
Execute Instant Order/v1/instant/execute
Add A Bank/v1/payments/addbank
Add A Bank CAD/v1/payments/addbank/cad
View Payment Methods/v1/payments/methods
Account Detail/v1/account
List Approved Addresses/v1/approvedAddresses/account/:network
Remove Approved Address/v1/approvedAddresses/:network/remove
FX Rate/v2/fxrate/:symbol/:timestamp

Master Scoped Endpoints

EndpointURIAdministrator can access?Trader can access?Fund Manager can access?Auditor can access?
Create Account/v1/account/create
Rename Account/v1/account/rename
Get Accounts/v1/account/list
Transfer Between Accounts/v1/account/transfer/:currency
Transactions/v1/transactions