Uphold · Authentication Profile

Uphold Authentication

Authentication

Uphold secures its APIs with oauth2 across 1 declared security scheme, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials flow(s).

Companycryptocurrencydigital-assetspaymentsbankingfintechkyccompliancecrypto-exchangemarket-dataembedded-financetravel-rulewebhooksagent-native
Methods: oauth2 Schemes: 1 OAuth flows: clientCredentials API key in:

Security Schemes

OAuth2 oauth2
· flows: clientCredentials

Source

Authentication Profile

Raw ↑
generated: '2026-08-05'
method: searched
source: openapi/uphold-core-api-openapi.json, openapi/uphold-kyc-connector-api-openapi.json,
  openapi/uphold-market-pulse-api-openapi.json, openapi/uphold-topper-api-openapi.json, openapi/uphold-widgets-api-openapi.json
docs: https://developer.uphold.com/rest-apis/authentication
token_url: https://api.enterprise.uphold.com/core/oauth2/token
token_url_sandbox: https://api.enterprise.sandbox.uphold.com/core/oauth2/token
token_operation: core.create-oauth2-token
grant_types: [client_credentials]
api_keys:
  supported: false
  statement: >-
    "API keys are another widely used way to authenticate requests, but they are not supported at this
    time. If you have a use case that requires API keys, please reach out to your Account Manager."
subjects:
- id: client
  meaning: The OAuth2 client itself, for operations that need no user context.
- id: user:individual
  meaning: An individual user within the organization.
- id: user:business
  meaning: A business user within the organization.
client_models:
- model: organization-wide
  default_subject: client
  act_on_behalf_of:
    header: 'X-On-Behalf-Of: user {userId}'
    required_scope: core.users:act-on-behalf-of
- model: single-user
  default_subject: the bound user
  note: >-
    No header required; if X-On-Behalf-Of is sent, the userId must match the user bound to the client.
credential_issuance:
  portal: https://portal.enterprise.uphold.com/
  flow: Register organization > Clients > Create new client > select scopes > Generate client secret
  environments: [Sandbox, Production]
  key_prefixes: none
failures:
- {status: 401, codes: [token_invalid, token_expired, token_revoked]}
- {status: 403, codes: [token_insufficient_scopes]}
legacy_api:
  api: Uphold Public API (v0)
  base: https://api.uphold.com/v0
  auth: OAuth 2.0 — Web Application Flow (authorization code) and Client Credentials Flow
  docs: https://uphold.com/developer/api/documentation/
  note: >-
    The legacy v0 API is the only Uphold surface with a user-facing authorization-code flow; the
    Enterprise API Suite is client-credentials only. Some legacy v0 endpoints (ticker, assets) are
    anonymous.
summary:
  types:
  - oauth2
  oauth2_flows:
  - clientCredentials
schemes:
- name: OAuth2
  type: oauth2
  flows:
  - flow: clientCredentials
    tokenUrl: /core/oauth2/token
    scopes: 49
  description: OAuth 2.0 authentication.
  sources:
  - openapi/uphold-core-api-openapi.json
  - openapi/uphold-kyc-connector-api-openapi.json
  - openapi/uphold-market-pulse-api-openapi.json
  - openapi/uphold-topper-api-openapi.json
  - openapi/uphold-widgets-api-openapi.json