ShipStation Orders API

Manage customer orders

OpenAPI Specification

shipstation-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ShipStation V1 Accounts Orders API
  description: The ShipStation V1 API provides programmatic access to ShipStation's shipping platform for ecommerce businesses. Endpoints cover order management, shipment creation, label generation, carrier rate shopping, package tracking, warehouse management, product management, and store integrations. Authentication uses HTTP Basic auth with API key and secret.
  version: '1.0'
  contact:
    name: ShipStation
    url: https://www.shipstation.com/docs/api/
    email: apisupport@shipstation.com
  license:
    name: ShipStation API Terms
    url: https://www.shipstation.com/legal/terms-of-service/
  x-date: '2026-05-02'
servers:
- url: https://ssapi.shipstation.com
  description: ShipStation V1 API
security:
- BasicAuth: []
tags:
- name: Orders
  description: Manage customer orders
paths:
  /orders:
    get:
      operationId: listOrders
      summary: List Orders
      description: Obtains a list of orders that match the specified criteria.
      tags:
      - Orders
      parameters:
      - name: customerName
        in: query
        description: Returns orders that match the specified name
        schema:
          type: string
      - name: itemKeyword
        in: query
        description: Returns orders that contain items that match the specified keyword
        schema:
          type: string
      - name: createDateStart
        in: query
        description: Returns orders that were created in ShipStation after the specified date
        schema:
          type: string
          format: date-time
      - name: createDateEnd
        in: query
        description: Returns orders that were created in ShipStation before the specified date
        schema:
          type: string
          format: date-time
      - name: modifyDateStart
        in: query
        description: Returns orders modified after the specified date
        schema:
          type: string
          format: date-time
      - name: modifyDateEnd
        in: query
        description: Returns orders modified before the specified date
        schema:
          type: string
          format: date-time
      - name: orderDateStart
        in: query
        description: Returns orders that were placed after the specified date
        schema:
          type: string
          format: date-time
      - name: orderDateEnd
        in: query
        description: Returns orders that were placed before the specified date
        schema:
          type: string
          format: date-time
      - name: orderNumber
        in: query
        description: Filter by order number
        schema:
          type: string
      - name: orderStatus
        in: query
        description: Filter by order status
        schema:
          type: string
          enum:
          - awaiting_payment
          - awaiting_shipment
          - pending_fulfillment
          - shipped
          - on_hold
          - cancelled
      - name: paymentDateStart
        in: query
        schema:
          type: string
          format: date-time
      - name: paymentDateEnd
        in: query
        schema:
          type: string
          format: date-time
      - name: storeId
        in: query
        description: Filters orders by store
        schema:
          type: integer
      - name: sortBy
        in: query
        schema:
          type: string
          enum:
          - OrderDate
          - ModifyDate
          - CreateDate
      - name: sortDir
        in: query
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: page
        in: query
        schema:
          type: integer
      - name: pageSize
        in: query
        schema:
          type: integer
          maximum: 500
      responses:
        '200':
          description: A list of orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderPaginatedList'
    post:
      operationId: createOrUpdateOrder
      summary: Create or Update Order
      description: Creates a new order or updates an existing order. This call does not support partial updates. The entire resource must be provided in the body of the request.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateRequest'
      responses:
        '200':
          description: Order created or updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /orders/{orderId}:
    get:
      operationId: getOrder
      summary: Get Order
      description: Retrieves a single order from the database.
      tags:
      - Orders
      parameters:
      - name: orderId
        in: path
        required: true
        description: The system-generated identifier for the order
        schema:
          type: integer
      responses:
        '200':
          description: Order object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
    delete:
      operationId: deleteOrder
      summary: Delete Order
      description: Removes order from ShipStation's UI.
      tags:
      - Orders
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Order deleted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
  /orders/createorder:
    post:
      operationId: createOrder
      summary: Create Order
      description: Creates a new order. Use this endpoint when creating an order for the first time.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateRequest'
      responses:
        '200':
          description: Order created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /orders/createorders:
    post:
      operationId: createOrders
      summary: Create Orders (Bulk)
      description: Creates multiple orders in a single request. Supports up to 100 orders.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/OrderCreateRequest'
              maxItems: 100
      responses:
        '200':
          description: Orders created
          content:
            application/json:
              schema:
                type: object
                properties:
                  hasErrors:
                    type: boolean
                  results:
                    type: array
                    items:
                      type: object
  /orders/holduntil:
    post:
      operationId: holdOrderUntil
      summary: Hold Order Until
      description: Marks an order as on hold until the given date.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orderId:
                  type: integer
                holdUntilDate:
                  type: string
                  format: date-time
      responses:
        '200':
          description: Order placed on hold
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
  /orders/markasshipped:
    post:
      operationId: markOrderAsShipped
      summary: Mark Order as Shipped
      description: Marks an order as shipped without creating a label in ShipStation.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orderId:
                  type: integer
                carrierId:
                  type: integer
                shipDate:
                  type: string
                trackingNumber:
                  type: string
                notifyCustomer:
                  type: boolean
                notifySalesChannel:
                  type: boolean
      responses:
        '200':
          description: Order marked as shipped
          content:
            application/json:
              schema:
                type: object
  /orders/{orderId}/assignuser:
    post:
      operationId: assignOrderToUser
      summary: Assign Order to User
      description: Assigns the requested orders to the user specified.
      tags:
      - Orders
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  type: string
      responses:
        '200':
          description: Order assigned to user
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    OrderPaginatedList:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'
        total:
          type: integer
        page:
          type: integer
        pages:
          type: integer
    Weight:
      type: object
      properties:
        value:
          type: number
          format: float
        units:
          type: string
          enum:
          - pounds
          - ounces
          - grams
        WeightUnits:
          type: integer
    Address:
      type: object
      properties:
        name:
          type: string
          description: Name of person
        company:
          type: string
          description: Company
        street1:
          type: string
          description: First line of address
        street2:
          type: string
          description: Second line of address
        street3:
          type: string
          description: Third line of address
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        country:
          type: string
        phone:
          type: string
        residential:
          type: boolean
          description: Whether the address is residential
    OrderCreateRequest:
      type: object
      required:
      - orderNumber
      - orderDate
      - orderStatus
      - billTo
      - shipTo
      properties:
        orderNumber:
          type: string
        orderKey:
          type: string
        orderDate:
          type: string
          format: date-time
        paymentDate:
          type: string
          format: date-time
        shipByDate:
          type: string
          format: date-time
        orderStatus:
          type: string
        customerId:
          type: integer
        customerUsername:
          type: string
        customerEmail:
          type: string
        billTo:
          $ref: '#/components/schemas/Address'
        shipTo:
          $ref: '#/components/schemas/Address'
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        amountPaid:
          type: number
        taxAmount:
          type: number
        shippingAmount:
          type: number
        customerNotes:
          type: string
        internalNotes:
          type: string
        gift:
          type: boolean
        giftMessage:
          type: string
        paymentMethod:
          type: string
        requestedShippingService:
          type: string
        carrierCode:
          type: string
        serviceCode:
          type: string
        packageCode:
          type: string
        confirmation:
          type: string
        shipDate:
          type: string
          format: date
        weight:
          $ref: '#/components/schemas/Weight'
        dimensions:
          $ref: '#/components/schemas/Dimensions'
        tagIds:
          type: array
          items:
            type: integer
    Order:
      type: object
      properties:
        orderId:
          type: integer
          description: System-generated identifier for each order
        orderNumber:
          type: string
          description: User-generated order number
        orderKey:
          type: string
          description: Unique identifier from the selling channel
        orderDate:
          type: string
          format: date-time
        createDate:
          type: string
          format: date-time
        modifyDate:
          type: string
          format: date-time
        paymentDate:
          type: string
          format: date-time
        shipByDate:
          type: string
          format: date-time
        orderStatus:
          type: string
          enum:
          - awaiting_payment
          - awaiting_shipment
          - pending_fulfillment
          - shipped
          - on_hold
          - cancelled
        customerId:
          type: integer
        customerUsername:
          type: string
        customerEmail:
          type: string
        billTo:
          $ref: '#/components/schemas/Address'
        shipTo:
          $ref: '#/components/schemas/Address'
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        orderTotal:
          type: number
          format: float
        amountPaid:
          type: number
          format: float
        taxAmount:
          type: number
          format: float
        shippingAmount:
          type: number
          format: float
        customerNotes:
          type: string
        internalNotes:
          type: string
        gift:
          type: boolean
        giftMessage:
          type: string
        paymentMethod:
          type: string
        requestedShippingService:
          type: string
        carrierCode:
          type: string
        serviceCode:
          type: string
        packageCode:
          type: string
        confirmation:
          type: string
          enum:
          - none
          - delivery
          - signature
          - adult_signature
          - direct_signature
        shipDate:
          type: string
          format: date
        holdUntilDate:
          type: string
          format: date-time
        weight:
          $ref: '#/components/schemas/Weight'
        dimensions:
          $ref: '#/components/schemas/Dimensions'
        insuranceOptions:
          type: object
        internationalOptions:
          type: object
        advancedOptions:
          type: object
        tagIds:
          type: array
          items:
            type: integer
        userId:
          type: string
        externallyFulfilled:
          type: boolean
        externallyFulfilledBy:
          type: string
    OrderItem:
      type: object
      properties:
        lineItemKey:
          type: string
        sku:
          type: string
        name:
          type: string
        imageUrl:
          type: string
        weight:
          $ref: '#/components/schemas/Weight'
        quantity:
          type: integer
        unitPrice:
          type: number
          format: float
        taxAmount:
          type: number
          format: float
        shippingAmount:
          type: number
          format: float
        warehouseLocation:
          type: string
        options:
          type: array
          items:
            type: object
        productId:
          type: integer
        fulfillmentSku:
          type: string
        adjustment:
          type: boolean
        upc:
          type: string
    Dimensions:
      type: object
      properties:
        length:
          type: number
          format: float
        width:
          type: number
          format: float
        height:
          type: number
          format: float
        units:
          type: string
          enum:
          - inches
          - centimeters
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using API Key as username and API Secret as password