Ally Invest Orders API

Order placement, preview, retrieval, and cancellation

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/ally-invest-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 email required.

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

OpenAPI Specification

ally-invest-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Ally Invest Accounts Orders API
  description: The Ally Invest REST API (originally developed from the TradeKing acquisition) provides programmatic access to self-directed brokerage account management, order placement, real-time and delayed market data, watchlist management, and member profile information. Authentication uses OAuth 1.0 with consumer and token credentials. Responses are available in JSON and XML formats.
  version: v1
  contact:
    email: InvestAPI@ally.com
  termsOfService: https://www.ally.com/content/dam/pdf/invest/api-agreement.pdf
  x-logo:
    url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
servers:
- url: https://api.ally.com/v1
  description: Ally Invest REST API
- url: https://stream.ally.com/v1
  description: Ally Invest Streaming API
tags:
- name: Orders
  description: Order placement, preview, retrieval, and cancellation
paths:
  /accounts/{id}/orders.json:
    get:
      operationId: getOrders
      summary: Get open orders for an account
      description: Returns a list of open orders for a specific account.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      responses:
        '200':
          description: Successful response with orders list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdersResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - OAuth1: []
    post:
      operationId: postOrder
      summary: Place an order
      description: Places an equity or options order for a specific account. Orders are submitted in a FIXML-variant XML format. Requires OAuth 1.0 authentication.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/FIXMLOrderRequest'
            example: "<FIXML xmlns=\"http://www.fixprotocol.org/FIXML-5-0-SP2\">\n  <Order TmInForce=\"0\" Typ=\"1\" Side=\"1\" Acct=\"12345678\">\n    <Instrmt SecTyp=\"CS\" Sym=\"GE\"/>\n    <OrdQty Qty=\"1\"/>\n  </Order>\n</FIXML>"
      responses:
        '200':
          description: Order successfully placed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - OAuth1: []
  /accounts/{id}/orders/preview.json:
    post:
      operationId: previewOrder
      summary: Preview an order before placement
      description: Previews an order for a specific account to validate parameters and see estimated costs before actual execution. Uses the same FIXML-variant XML format as order placement.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/FIXMLOrderRequest'
      responses:
        '200':
          description: Order preview successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderPreviewResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - OAuth1: []
  /accounts/{id}/orders/{orderId}.json:
    delete:
      operationId: cancelOrder
      summary: Cancel a pending order
      description: Cancels a specific pending order for an account.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: orderId
        in: path
        required: true
        description: The order ID to cancel
        schema:
          type: string
      responses:
        '200':
          description: Order cancelled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelOrderResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - OAuth1: []
components:
  responses:
    Unauthorized:
      description: Authentication required or credentials invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    FIXMLOrderRequest:
      type: object
      description: FIXML-variant XML order document. The root element is <FIXML> with a child <Order> element containing trade attributes and child elements for <Instrmt> (instrument), <OrdQty> (quantity), and optionally <CommInfo> (commission).
      xml:
        name: FIXML
        namespace: http://www.fixprotocol.org/FIXML-5-0-SP2
    ErrorResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            error:
              type: string
              description: Error message
            elapsedtime:
              type: string
            id:
              type: string
    OrderPreviewResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            order:
              $ref: '#/components/schemas/Order'
            cost:
              type: object
              properties:
                commission:
                  type: string
                estimatedcost:
                  type: string
                estimatednetamount:
                  type: string
                estimatedprice:
                  type: string
                estimatedpriceimpact:
                  type: string
                marginrequirement:
                  type: string
                tax:
                  type: string
            warnings:
              type: object
              properties:
                warning:
                  type: array
                  items:
                    type: string
            elapsedtime:
              type: string
            id:
              type: string
            error:
              type: string
    OrderResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            order:
              $ref: '#/components/schemas/Order'
            elapsedtime:
              type: string
            id:
              type: string
            error:
              type: string
    OrdersResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            orders:
              type: object
              properties:
                order:
                  type: array
                  items:
                    $ref: '#/components/schemas/Order'
            elapsedtime:
              type: string
            id:
              type: string
            error:
              type: string
    CancelOrderResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            order:
              $ref: '#/components/schemas/Order'
            elapsedtime:
              type: string
            id:
              type: string
            error:
              type: string
    Order:
      type: object
      properties:
        accountid:
          type: string
        createtime:
          type: string
        displayqty:
          type: string
        duration:
          type: string
          description: Order duration (day, gtc, etc.)
        executedqty:
          type: string
        id:
          type: string
          description: Order ID
        img:
          type: string
        instrument:
          type: object
          properties:
            exch:
              type: string
            sectyp:
              type: string
            sym:
              type: string
        ordertype:
          type: string
          description: Order type (market, limit, stop, stop_limit)
        origclordid:
          type: string
        price:
          type: string
        qty:
          type: string
        side:
          type: string
          description: Order side (buy, sell, sell_short, buy_to_cover)
        stopprice:
          type: string
        statustext:
          type: string
        xref:
          type: string
  parameters:
    AccountId:
      name: id
      in: path
      required: true
      description: The account ID (account number)
      schema:
        type: string
  securitySchemes:
    OAuth1:
      type: apiKey
      in: header
      name: Authorization
      description: OAuth 1.0 authentication using consumer key/secret and OAuth token/secret pairs. The Authorization header must include oauth_consumer_key, oauth_token, oauth_signature_method (HMAC-SHA1), oauth_timestamp, oauth_nonce, oauth_version, and oauth_signature.
externalDocs:
  description: Ally Invest API Documentation
  url: https://www.ally.com/api/invest/documentation/getting-started/