Sendle Products & Quoting API

Get one quote per shipping product for a given route. GET /products handles domestic and DAP international; POST /products adds DDP Price Guaranteed (duties + taxes included). Each quote includes plan, ETA, route classification, allowed packaging, and product code (e.g. STANDARD-PICKUP). The legacy GET /quote is deprecated.

OpenAPI Specification

sendle-products-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Sendle Shipping Manifests Products API
  version: '1.0'
  description: 'Create and manage shipping manifests so a driver can collect multiple parcels

    by scanning a single barcode. Currently supports USPS SCAN Forms for US domestic

    orders only. Manifests can only include orders booked the same day.

    '
  contact:
    name: Sendle API Support
    email: api@sendle.com
    url: https://developers.sendle.com
servers:
- url: https://api.sendle.com/api
  description: Production
- url: https://sandbox.sendle.com/api
  description: Sandbox
security:
- basicAuth: []
tags:
- name: Products
  description: Quote shipments and list serviceable products
paths:
  /products:
    get:
      operationId: getProducts
      summary: Get Products
      tags:
      - Products
      description: Returns one quote for each shipping product Sendle supports for the given route via query parameters. Supports Duties Unpaid (DAP) international quotes only.
      parameters:
      - name: sender_address_country
        in: query
        required: true
        schema:
          type: string
          example: AU
      - name: sender_address_suburb
        in: query
        schema:
          type: string
      - name: sender_address_postcode
        in: query
        required: true
        schema:
          type: string
      - name: receiver_address_country
        in: query
        required: true
        schema:
          type: string
          example: AU
      - name: receiver_address_suburb
        in: query
        schema:
          type: string
      - name: receiver_address_postcode
        in: query
        required: true
        schema:
          type: string
      - name: weight_value
        in: query
        required: true
        schema:
          type: string
      - name: weight_units
        in: query
        required: true
        schema:
          type: string
          enum:
          - kg
          - lb
          - g
          - oz
      - name: length_value
        in: query
        schema:
          type: string
      - name: width_value
        in: query
        schema:
          type: string
      - name: height_value
        in: query
        schema:
          type: string
      - name: dimension_units
        in: query
        schema:
          type: string
          enum:
          - cm
          - in
      - name: packaging_type
        in: query
        schema:
          type: string
          enum:
          - box
          - satchel
          - unlimited satchel
      responses:
        '200':
          description: List of available products with quotes
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductQuote'
    post:
      operationId: postProducts
      summary: Serviceable Products
      tags:
      - Products
      description: Returns one quote per shipping product for the given route. Supports both Duties Unpaid (DAP) and Duties Paid (DDP Price Guaranteed) for international.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductsRequest'
      responses:
        '200':
          description: List of available products with quotes
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductQuote'
  /quote:
    get:
      operationId: getQuote
      summary: Get A Quote (Deprecated)
      tags:
      - Products
      deprecated: true
      description: Legacy quote endpoint. Use GET or POST /products instead.
      parameters:
      - name: pickup_suburb
        in: query
        schema:
          type: string
      - name: pickup_postcode
        in: query
        schema:
          type: string
      - name: pickup_country
        in: query
        schema:
          type: string
      - name: delivery_suburb
        in: query
        schema:
          type: string
      - name: delivery_postcode
        in: query
        schema:
          type: string
      - name: delivery_country
        in: query
        schema:
          type: string
      - name: weight_value
        in: query
        schema:
          type: string
      - name: weight_units
        in: query
        schema:
          type: string
          enum:
          - kg
          - lb
          - g
          - oz
      responses:
        '200':
          description: Legacy quote
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductQuote'
components:
  schemas:
    ProductQuote:
      type: object
      properties:
        quote:
          type: object
          properties:
            gross:
              $ref: '#/components/schemas/Money'
            net:
              $ref: '#/components/schemas/Money'
            tax:
              $ref: '#/components/schemas/Money'
        price_breakdown:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Money'
        tax_breakdown:
          type: object
          additionalProperties: true
        plan:
          type: string
          example: Sendle Pro
        eta:
          type: object
          properties:
            days_range:
              type: array
              items:
                type: integer
              minItems: 2
              maxItems: 2
            date_range:
              type: array
              items:
                type: string
                format: date
              minItems: 2
              maxItems: 2
            for_send_date:
              type: string
              format: date
        route:
          type: object
          properties:
            description:
              type: string
            type:
              type: string
              enum:
              - same-city
              - national
              - remote
              - export
        allowed_packaging:
          type: string
          enum:
          - any
          - box
          - satchel
          - unlimited satchel
        product:
          type: object
          properties:
            code:
              type: string
            name:
              type: string
            first_mile_option:
              type: string
              enum:
              - pickup
              - drop off
            service:
              type: string
              enum:
              - standard
              - express
            atl_only:
              type: boolean
        cover:
          type: object
          properties:
            price:
              type: object
              properties:
                gross:
                  $ref: '#/components/schemas/Money'
                net:
                  $ref: '#/components/schemas/Money'
                tax:
                  $ref: '#/components/schemas/Money'
    AddressOnly:
      type: object
      required:
      - suburb
      - postcode
      - country
      properties:
        address_line1:
          type: string
        address_line2:
          type: string
        suburb:
          type: string
        postcode:
          type: string
        country:
          type: string
    Money:
      type: object
      properties:
        amount:
          type: number
        currency:
          type: string
          enum:
          - AUD
          - CAD
          - USD
    ProductsRequest:
      type: object
      required:
      - sender
      - receiver
      - weight
      properties:
        sender:
          $ref: '#/components/schemas/PartyAddress'
        receiver:
          $ref: '#/components/schemas/PartyAddress'
        weight:
          type: object
          properties:
            value:
              type: string
            units:
              type: string
              enum:
              - kg
              - lb
              - g
              - oz
        dimensions:
          type: object
          properties:
            length:
              type: string
            width:
              type: string
            height:
              type: string
            units:
              type: string
              enum:
              - cm
              - in
        packaging_type:
          type: string
          enum:
          - box
          - satchel
          - unlimited satchel
        parcel_contents:
          type: array
          items:
            type: object
            properties:
              description:
                type: string
              value:
                type: string
              quantity:
                type: integer
              country_of_origin:
                type: string
              hs_code:
                type: string
        contents_type:
          type: string
          enum:
          - Documents
          - Gift
          - Merchandise
          - Returned Goods
          - Sample
          - Other
        cover:
          type: object
          properties:
            total_cover:
              type: object
              properties:
                amount:
                  type: number
    PartyAddress:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/AddressOnly'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic