Onfleet Orders API

Orders represent a pickup-dropoff task pair shared between a courier organization and its clients on the Onfleet Connect network. Clients can quote, create, update, clone, cancel, or reject orders; couriers can create orders on behalf of clients and respond to them.

Onfleet Orders API is one of 8 APIs that Onfleet publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Last Mile Delivery, Orders, and Courier. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

onfleet-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Onfleet Orders API
  description: |
    Orders represent a delivery workflow composed of a pair of tasks — a pickup
    and a corresponding dropoff — used by courier organizations and their
    clients in the Onfleet Connect network. The Orders API lets you quote,
    create, update, clone, cancel, and reject orders programmatically.
  version: '2.7'
  contact:
    name: Onfleet Support
    email: [email protected]
  license:
    name: Onfleet Terms of Service
    url: https://onfleet.com/legal
servers:
  - url: https://onfleet.com/api/v2
    description: Production
security:
  - basicAuth: []
tags:
  - name: Orders
paths:
  /taskOrders:
    post:
      tags: [Orders]
      summary: Create Order
      operationId: createOrder
      requestBody:
        required: true
        content:
          application/json:
            schema: {$ref: '#/components/schemas/OrderCreate'}
      responses:
        '200':
          description: Order created
          content:
            application/json:
              schema: {$ref: '#/components/schemas/Order'}
  /taskOrders/{orderShortId}:
    parameters:
      - name: orderShortId
        in: path
        required: true
        schema: {type: string}
    get:
      tags: [Orders]
      summary: Get Order
      operationId: getOrder
      responses:
        '200':
          description: Order
          content:
            application/json:
              schema: {$ref: '#/components/schemas/Order'}
    put:
      tags: [Orders]
      summary: Update Order
      operationId: updateOrder
      requestBody:
        required: true
        content:
          application/json:
            schema: {$ref: '#/components/schemas/OrderUpdate'}
      responses:
        '200':
          description: Updated order
          content:
            application/json:
              schema: {$ref: '#/components/schemas/Order'}
  /taskOrders/{orderShortId}/cancel:
    post:
      tags: [Orders]
      summary: Cancel Order
      operationId: cancelOrder
      parameters:
        - name: orderShortId
          in: path
          required: true
          schema: {type: string}
      responses:
        '200':
          description: Cancelled
  /taskOrders/{orderShortId}/reject:
    post:
      tags: [Orders]
      summary: Reject Order
      operationId: rejectOrder
      parameters:
        - name: orderShortId
          in: path
          required: true
          schema: {type: string}
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                reason: {type: string}
      responses:
        '200':
          description: Rejected
  /taskOrders/clone:
    post:
      tags: [Orders]
      summary: Clone Orders
      operationId: cloneOrders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                orderIds:
                  type: array
                  items: {type: string}
      responses:
        '200':
          description: Cloned orders
  /taskOrders/quote:
    post:
      tags: [Orders]
      summary: Quote Order
      operationId: quoteOrder
      requestBody:
        required: true
        content:
          application/json:
            schema: {$ref: '#/components/schemas/OrderCreate'}
      responses:
        '200':
          description: Price quote
          content:
            application/json:
              schema:
                type: object
                properties:
                  price: {type: number}
                  currency: {type: string}
                  estimatedDeliveryTime: {type: integer, format: int64}
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
  schemas:
    Order:
      type: object
      properties:
        id: {type: string}
        shortId: {type: string}
        organization: {type: string}
        client: {type: string}
        timeCreated: {type: integer, format: int64}
        deliveryServiceId: {type: string, nullable: true}
        price: {type: number, nullable: true}
        currency: {type: string, nullable: true}
        status: {type: string, enum: [QUOTED, CREATED, ASSIGNED, IN_PROGRESS, COMPLETED, CANCELLED, REJECTED]}
        pickupTask: {type: string}
        dropoffTask: {type: string}
    OrderCreate:
      type: object
      properties:
        client: {type: string}
        deliveryServiceId: {type: string}
        price: {type: number}
        currency: {type: string}
        pickupTask:
          $ref: 'onfleet-tasks-api-openapi.yml#/components/schemas/TaskCreate'
        dropoffTask:
          $ref: 'onfleet-tasks-api-openapi.yml#/components/schemas/TaskCreate'
    OrderUpdate:
      type: object
      properties:
        price: {type: number}
        currency: {type: string}
        pickupTask: {type: object}
        dropoffTask: {type: object}