Upvest Orders API

Place, manage, and track buy and sell orders for instruments.

Operations 3

GET /orders Upvest List orders #
POST /orders Upvest Place an order #
GET /orders/{order_id} Upvest Retrieve an order #

Documentation

Specifications

Schemas & Data

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/upvest-orders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

upvest-orders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Upvest Investment Account Transfers Orders 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: Orders
  description: Place, manage, and track buy and sell orders for instruments.
paths:
  /orders:
    get:
      operationId: listOrders
      summary: Upvest List orders
      description: Retrieve a paginated list of orders. Supports filtering by account, status, and other criteria.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - name: account_id
        in: query
        description: Filter orders by account identifier.
        schema:
          type: string
          format: uuid
        example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      - name: status
        in: query
        description: Filter orders by status.
        schema:
          type: string
          enum:
          - NEW
          - PROCESSING
          - FILLED
          - CANCELLED
          - REJECTED
        example: NEW
      responses:
        '200':
          description: A paginated list of orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
              examples:
                listOrders200Example:
                  summary: Default listOrders 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: {}
                      account_id: {}
                      user_id: {}
                      instrument_id: {}
                      side: {}
                      type: {}
                      status: {}
                      quantity: {}
                      cash_amount: {}
                      limit_price: {}
                      stop_price: {}
                      currency: {}
                      created_at: {}
                      updated_at: {}
                    meta:
                      offset: 0
                      limit: 20
                      count: 100
                      total: 100
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                listOrders401Example:
                  summary: Default listOrders 401 response
                  x-microcks-default: true
                  value:
                    type: standard
                    status: 100
                    title: example-value
                    detail: example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createOrder
      summary: Upvest Place an order
      description: Place a new buy or sell order for a financial instrument. Orders are processed asynchronously and their status can be tracked via webhooks or polling.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreate'
            examples:
              createOrderRequestExample:
                summary: Default createOrder request
                x-microcks-default: true
                value:
                  account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  side: BUY
                  type: MARKET
                  quantity: example-value
                  cash_amount: example-value
                  limit_price: example-value
                  stop_price: example-value
                  currency: EUR
      responses:
        '201':
          description: Order successfully placed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
              examples:
                createOrder201Example:
                  summary: Default createOrder 201 response
                  x-microcks-default: true
                  value:
                    id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    side: BUY
                    type: MARKET
                    status: NEW
                    quantity: example-value
                    cash_amount: example-value
                    limit_price: example-value
                    stop_price: example-value
                    currency: EUR
                    created_at: '2025-03-15T14:30:00Z'
                    updated_at: '2025-03-15T14:30:00Z'
        '400':
          description: Invalid order request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                createOrder400Example:
                  summary: Default createOrder 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:
                createOrder401Example:
                  summary: Default createOrder 401 response
                  x-microcks-default: true
                  value:
                    type: standard
                    status: 100
                    title: example-value
                    detail: example-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /orders/{order_id}:
    get:
      operationId: retrieveOrder
      summary: Upvest Retrieve an order
      description: Retrieve details for a specific order including current status and execution information.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/OrderId'
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
              examples:
                retrieveOrder200Example:
                  summary: Default retrieveOrder 200 response
                  x-microcks-default: true
                  value:
                    id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    side: BUY
                    type: MARKET
                    status: NEW
                    quantity: example-value
                    cash_amount: example-value
                    limit_price: example-value
                    stop_price: example-value
                    currency: EUR
                    created_at: '2025-03-15T14:30:00Z'
                    updated_at: '2025-03-15T14:30:00Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                retrieveOrder401Example:
                  summary: Default retrieveOrder 401 response
                  x-microcks-default: true
                  value:
                    type: standard
                    status: 100
                    title: example-value
                    detail: example-value
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                retrieveOrder404Example:
                  summary: Default retrieveOrder 404 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:
    Limit:
      name: limit
      in: query
      description: The maximum number of items to return per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    OrderId:
      name: order_id
      in: path
      required: true
      description: The unique identifier of the order.
      schema:
        type: string
        format: uuid
    Offset:
      name: offset
      in: query
      description: The number of items to skip for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
  schemas:
    OrderCreate:
      type: object
      description: Request body for placing an order.
      required:
      - account_id
      - instrument_id
      - side
      - type
      properties:
        account_id:
          type: string
          format: uuid
          description: The account to place the order for.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        instrument_id:
          type: string
          format: uuid
          description: The instrument to trade.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        side:
          type: string
          enum:
          - BUY
          - SELL
          description: Whether to buy or sell.
          example: BUY
        type:
          type: string
          enum:
          - MARKET
          - LIMIT
          - STOP
          description: The order type.
          example: MARKET
        quantity:
          type: string
          description: The quantity of shares to trade as a decimal string.
          example: example-value
        cash_amount:
          type: string
          description: The cash amount to invest as a decimal string.
          example: example-value
        limit_price:
          type: string
          description: The limit price for limit orders as a decimal string.
          example: example-value
        stop_price:
          type: string
          description: The stop price for stop orders as a decimal string.
          example: example-value
        currency:
          type: string
          description: The order currency as an ISO 4217 code.
          pattern: ^[A-Z]{3}$
          example: EUR
    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
    Order:
      type: object
      description: A buy or sell order for a financial instrument.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the order.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        account_id:
          type: string
          format: uuid
          description: The account the order belongs to.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        user_id:
          type: string
          format: uuid
          description: The user who placed the order.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        instrument_id:
          type: string
          format: uuid
          description: The instrument being traded.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        side:
          type: string
          enum:
          - BUY
          - SELL
          description: Whether this is a buy or sell order.
          example: BUY
        type:
          type: string
          enum:
          - MARKET
          - LIMIT
          - STOP
          description: The order type.
          example: MARKET
        status:
          type: string
          enum:
          - NEW
          - PROCESSING
          - FILLED
          - CANCELLED
          - REJECTED
          description: The current status of the order.
          example: NEW
        quantity:
          type: string
          description: The quantity of shares to trade as a decimal string.
          example: example-value
        cash_amount:
          type: string
          description: The cash amount to invest as a decimal string.
          example: example-value
        limit_price:
          type: string
          description: The limit price for limit orders as a decimal string.
          example: example-value
        stop_price:
          type: string
          description: The stop price for stop orders as a decimal string.
          example: example-value
        currency:
          type: string
          description: The order currency as an ISO 4217 code.
          pattern: ^[A-Z]{3}$
          example: EUR
        created_at:
          type: string
          format: date-time
          description: When the order was placed.
          example: '2025-03-15T14:30:00Z'
        updated_at:
          type: string
          format: date-time
          description: When the order was last updated.
          example: '2025-03-15T14:30:00Z'
    PaginationMeta:
      type: object
      description: Pagination metadata for list responses.
      properties:
        offset:
          type: integer
          description: The current offset.
          example: 0
        limit:
          type: integer
          description: The page size.
          example: 20
        count:
          type: integer
          description: The total number of items in the current page.
          example: 100
        total:
          type: integer
          description: The total number of items available.
          example: 100
  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/