Token Scopes
Understand OAuth 2.0 bearer tokens, authentication scopes, and token generation for the Cybrid API.
Overview
The Cybrid Platform API uses OAuth 2.0 Bearer Tokens to
authenticate requests. You retrieve bearer tokens using your
client_id and client_secret credentials, which you generate
through the
Cybrid Partner Portal.
Three types of bearer tokens exist:
- Organization tokens — apply to the entire Organization and all
its Banks. - Bank tokens — scoped to an individual Bank.
- Customer tokens — scoped to a specific customer within a Bank.
Both Organization and Bank tokens use the OAuth Client Credential
Grant flow. Each Organization and Bank has a unique Client ID and
Secret for machine-to-machine authentication.
Authentication scopes
When generating a bearer token, you must specify authentication
scopes. Scopes fall into three categories:
- Read — list and retrieve resources on the platform
- Write — update resources on the platform
- Execution — create resources on the platform
Use the scope with the least privileges necessary. For example,
rather than using an Organization token to list a customer's trades,
generate a Customer token with the trades:read scope.
Organization-level scopesSome scopes, such as
banks:execute, require Organization-level credentials (Organization API keys) and cannot be
used with Bank-level credentials. Attempting to use these scopes with Bank-level credentials will result in an
invalid_scopeerror. Use your Organization API keys when creating new banks or performing
organization-level operations.
For more information, see
How do I securely implement Cybrid?
Scopes apply to the following resource types:
- Account
- Bank
- Customer
- Deposit Address
- External Bank Account
- Organization
- Price
- Quote
- Trade
- Transfer
- Workflow
See
Platform Overview
for details on how these resources interact.
Generate a token
Use a tool like httpie to generate a token
from the command line:
http -v post https://id.sandbox.cybrid.app/oauth/token \
grant_type=client_credentials \
client_id=<YOUR_BANK_CLIENT_ID> \
client_secret=<YOUR_BANK_CLIENT_SECRET> \
scope="<YOUR_SCOPES_HERE>"Token caching and rate limiting
Cache the generated access token based on the expires_in attribute
in the token response. Tokens can typically be cached for up to
30 minutes. Only generate a new token when the current one nears
expiration.
Rate limitingCybrid enforces rate limiting on
POST /oauth/tokenand
POST /oauth/customer_token. If you exceed the rate limit, the API
returns403 (Forbidden). Cache tokens to avoid hitting this limit.

