Shipwell Quoting API

Rates, quotes, RFQs, spot negotiations, and carrier bids. (modeled)

OpenAPI Specification

shipwell-quoting-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Shipwell v2 Core Carriers Quoting API
  description: 'Partial, honestly-modeled OpenAPI description of the Shipwell transportation management system (TMS) API. Shipwell is an AI-powered freight execution platform; its public documentation and full API reference live at https://docs.shipwell.com/ but the complete platform and API are enterprise and contract-gated, so exact request and response schemas are best confirmed against the live reference and an authenticated account.


    Endpoints marked "confirmed" below appear directly in Shipwell''s public docs (shipment create/list/get, shipment notes, carrier assignments, tenders, and the events list). Endpoints marked "modeled" are honestly inferred from the documented resource groups (quoting, spot-negotiations, carrier-bids, carriers, carrier-relationships, orders, purchase-orders, webhooks) and are included to represent the shape of each logical API - verify them before use.


    Base URLs. Most of the v2 Core API is served under https://api.shipwell.com/v2 with a fully separate sandbox at https://sandbox-api.shipwell.com/v2. The newer Orders API is served under the host root without the /v2 prefix (for example https://api.shipwell.com/orders). Requests are authenticated with company-scoped API keys passed in the Authorization header (the docs call this the AuthToken scheme). Production and sandbox use separate keys, and objects created in one environment cannot be manipulated from the other.'
  version: '2.0'
  contact:
    name: Shipwell
    url: https://docs.shipwell.com/
servers:
- url: https://api.shipwell.com/v2
  description: Production (v2 Core API)
- url: https://sandbox-api.shipwell.com/v2
  description: Sandbox (v2 Core API)
- url: https://api.shipwell.com
  description: Production host root (Orders API, served without the /v2 prefix)
security:
- authToken: []
tags:
- name: Quoting
  description: Rates, quotes, RFQs, spot negotiations, and carrier bids. (modeled)
paths:
  /quotes/:
    post:
      operationId: createQuote
      tags:
      - Quoting
      summary: Request a quote / rates
      description: Requests rates and quotes for a shipment (an RFQ). Modeled from the documented quoting resource group - confirm the exact path, request, and response schema against the live reference. (modeled)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteRequest'
      responses:
        '201':
          description: The created quote / rate request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/ValidationError'
  /quotes/{quoteId}/:
    parameters:
    - name: quoteId
      in: path
      required: true
      description: The ID of the quote.
      schema:
        type: string
    get:
      operationId: getQuote
      tags:
      - Quoting
      summary: Retrieve a quote
      description: Retrieves a quote and its returned rates. (modeled)
      responses:
        '200':
          description: The requested quote.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    QuoteRequest:
      type: object
      properties:
        shipment:
          type: string
          description: ID of the shipment to rate, or an inline shipment payload.
        mode:
          type: array
          items:
            type: string
        equipment_type:
          type: array
          items:
            type: string
    Quote:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
        rates:
          type: array
          items:
            type: object
            properties:
              carrier:
                type: string
              total:
                type: number
              currency:
                type: string
              transit_days:
                type: integer
    Error:
      type: object
      properties:
        error_description:
          type: string
        errors:
          type: array
          items:
            type: object
            additionalProperties: true
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ValidationError:
      description: The request payload failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    authToken:
      type: apiKey
      in: header
      name: Authorization
      description: Company-scoped API key passed in the Authorization header (the docs refer to this as the AuthToken scheme). Production and sandbox use separate keys. Keys can be permission-restricted.