Upvest Authentication API

OAuth 2.0 token management for API access using client credentials flow.

Documentation

Specifications

Schemas & Data

OpenAPI Specification

upvest-authentication-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Upvest Investment Account Transfers Authentication API
  description: The Upvest Investment API provides a unified interface for building embedded investment experiences. It supports placing and managing orders, creating portfolios, configuring savings plans, handling securities transfers, and managing user accounts and positions. The API covers the full order lifecycle with asynchronous processing and webhook notifications for real-time event handling. Financial institutions can use the API to offer fractional investing, automated portfolio management, and localized investment products across European and UK markets.
  version: 1.0.0
  contact:
    name: Upvest Support
    url: https://upvest.co/
  termsOfService: https://upvest.co/legal
servers:
- url: https://api.upvest.co
  description: Production Server
- url: https://sandbox.upvest.co
  description: Sandbox Server
security:
- oauth2ClientCredentials: []
tags:
- name: Authentication
  description: OAuth 2.0 token management for API access using client credentials flow.
paths:
  /auth/token:
    post:
      operationId: createAccessToken
      summary: Upvest Create an access token
      description: Obtain an OAuth 2.0 access token using client credentials. The returned opaque access token is used to authenticate subsequent API requests. You must specify the required scopes for the endpoints you intend to call.
      tags:
      - Authentication
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - grant_type
              - client_id
              - client_secret
              - scope
              properties:
                grant_type:
                  type: string
                  enum:
                  - client_credentials
                  description: The OAuth 2.0 grant type. Must be client_credentials.
                client_id:
                  type: string
                  description: The client identifier issued during onboarding.
                client_secret:
                  type: string
                  description: The client secret issued during onboarding.
                scope:
                  type: string
                  description: A space-separated list of scopes to request.
      responses:
        '200':
          description: Access token successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
              examples:
                createAccessToken200Example:
                  summary: Default createAccessToken 200 response
                  x-microcks-default: true
                  value:
                    access_token: eyJhbGciOiJSUzI1NiJ9.example
                    token_type: bearer
                    expires_in: 3600
                    scope: users:read accounts:read
        '401':
          description: Invalid client credentials or missing scopes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                createAccessToken401Example:
                  summary: Default createAccessToken 401 response
                  x-microcks-default: true
                  value:
                    type: standard
                    status: 100
                    title: example-value
                    detail: example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Error:
      type: object
      description: An API error response.
      properties:
        type:
          type: string
          description: The error type identifier.
          example: standard
        status:
          type: integer
          description: The HTTP status code.
          example: 100
        title:
          type: string
          description: A short human-readable summary of the error.
          example: example-value
        detail:
          type: string
          description: A detailed human-readable explanation of the error.
          example: example-value
    AccessToken:
      type: object
      description: An OAuth 2.0 access token for authenticating API requests.
      properties:
        access_token:
          type: string
          description: The opaque access token string.
          example: eyJhbGciOiJSUzI1NiJ9.example
        token_type:
          type: string
          enum:
          - bearer
          description: The type of token issued.
          example: bearer
        expires_in:
          type: integer
          description: The lifetime of the access token in seconds.
          example: 3600
        scope:
          type: string
          description: The scopes granted to the access token.
          example: users:read accounts:read
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      description: OAuth 2.0 client credentials flow. Obtain an access token by providing your client ID and client secret.
      flows:
        clientCredentials:
          tokenUrl: /auth/token
          scopes:
            users:read: Read user data
            users:admin: Onboard and manage users
            accounts:read: Read account data
            accounts:admin: Create and manage accounts
            orders:read: Read order data
            orders:admin: Place and manage orders
            instruments:read: Read instrument data
            portfolios:read: Read portfolio data
            portfolios:admin: Create and manage portfolios
            positions:read: Read position data
            payments:read: Read payment data
            payments:admin: Manage payments and direct debits
            reports:read: Read reports
            webhooks:read: Read webhook subscriptions
            webhooks:admin: Manage webhook subscriptions
            transactions:read: Read transaction data
            fees:read: Read fee data
            fees:admin: Configure fees
externalDocs:
  description: Upvest API Documentation
  url: https://docs.upvest.co/