openapi: 3.1.0 info: title: Upvest Investment Account Transfers Portfolios Rebalancing 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: Portfolios Rebalancing description: Trigger and track portfolio rebalancing operations. paths: /portfolios/{portfolio_id}/rebalancing: post: operationId: triggerPortfolioRebalancing summary: Upvest Trigger portfolio rebalancing description: Initiate a rebalancing operation to realign current holdings with target allocations. tags: - Portfolios Rebalancing parameters: - $ref: '#/components/parameters/PortfolioId' responses: '201': description: Rebalancing initiated content: application/json: schema: $ref: '#/components/schemas/RebalancingExecution' examples: triggerPortfolioRebalancing201Example: summary: Default triggerPortfolioRebalancing 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Rebalancing not possible content: application/json: schema: $ref: '#/components/schemas/Error' examples: triggerPortfolioRebalancing400Example: summary: Default triggerPortfolioRebalancing 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: triggerPortfolioRebalancing401Example: summary: Default triggerPortfolioRebalancing 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listRebalancingExecutions summary: Upvest List rebalancing executions description: Retrieve a list of rebalancing executions for a portfolio. tags: - Portfolios Rebalancing parameters: - $ref: '#/components/parameters/PortfolioId' responses: '200': description: List of rebalancing executions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/RebalancingExecution' examples: listRebalancingExecutions200Example: summary: Default listRebalancingExecutions 200 response x-microcks-default: true value: data: - id: {} portfolio_id: {} status: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listRebalancingExecutions401Example: summary: Default listRebalancingExecutions 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: parameters: PortfolioId: name: portfolio_id in: path required: true description: The unique identifier of the portfolio. schema: type: string format: uuid 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 RebalancingExecution: type: object description: A portfolio rebalancing operation. properties: id: type: string format: uuid description: The rebalancing execution identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: type: string format: uuid description: The portfolio being rebalanced. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED description: The rebalancing status. example: NEW created_at: type: string format: date-time description: When the rebalancing was initiated. example: '2025-03-15T14:30:00Z' 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/