Boxc Estimate API

The Estimate resource allows a user to retrieve the estimated cost of shipping a package based on weight, dimensions, entry point, destination, and other parameters. No services will be returned if a route can't be matched against the provided parameters.

Operations 1

GET /estimate GET /estimate #

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/boxc-estimate-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

boxc-estimate-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://storage.googleapis.com/boxc_cdn/public/boxc-logo.png
    altText: BoxC
  title: BoxC CalculateDuty Estimate API
  version: '1.123'
  description: 'A simple but powerful logistics API that drives international ecommerce by utilizing a single integration with access to dozens of carriers and global markets. BoxC can complete every leg or only select steps of a shipment''s journey on your behalf with our routing engine.

    '
servers:
- url: https://api.boxc.com/v1
tags:
- name: Estimate
  x-displayName: Estimate
  description: The Estimate resource allows a user to retrieve the estimated cost of shipping a package based on weight, dimensions, entry point, destination, and other parameters. No services will be returned if a route can't be matched against the provided parameters.
paths:
  /estimate:
    get:
      tags:
      - Estimate
      summary: GET /estimate
      description: Retrieves an estimate.
      operationId: getEstimate
      security:
      - JWT: []
      parameters:
      - in: query
        name: carrier
        description: The preffered last mile carrier the shipment should use for delivery.
        required: false
        example: DHLeC
        schema:
          type: string
          default: null
      - in: query
        name: country
        description: The destination country in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
        required: true
        example: US
        schema:
          type: string
          format:
          - A-Z
          maxLength: 2
          minLength: 2
      - in: query
        name: currency
        description: The ISO 4217 currency code for the **value** parameter and rates that are returned.
        required: false
        example: USD
        schema:
          type: string
          format:
          - A-Z
          default: USD
          maxLength: 3
          minLength: 3
      - in: query
        name: dg_codes
        description: A string or array of [dangerous good codes](/#tag/DangerousGoods) contained in the shipment.
        required: false
        example: 0965
        schema:
          type: string|array
      - in: query
        name: entry_point
        description: The code for the drop off location. See [Entry Points](/#tag/EntryPoints) for a list of codes.
        required: true
        example: LAXI01
        schema:
          type: string
          maxLength: 6
          minLength: 6
      - in: query
        name: exit_point
        description: The IATA port where the shipment should enter for last mile delivery. Providing this limits results to only those routes with the matching port.
        required: false
        example: JFK
        schema:
          type: string
          default: null
          maxLength: 3
          minLength: 3
      - in: query
        name: height
        description: The height of the shipment in CM.
        required: false
        example: 10.5
        schema:
          type: decimal
          default: 1
      - in: query
        name: insurance
        description: By default all shipments except for BoxC Post include insurance covering up to $30 of the total item value including shipping cost. Setting this to true will increase the insured value for an additional fee.
        required: false
        example: true
        schema:
          type: boolean
          default: false
      - in: query
        name: irregular
        description: Indicates this shipment was packaged in irregular shaped polybag or soft packaging to assist in calculating the volumetric weight.
        required: false
        example: true
        schema:
          type: boolean
          default: false
      - in: query
        name: is_return
        description: Indicates this shipment is a return.
        required: false
        example: true
        schema:
          type: boolean
          default: false
      - in: query
        name: length
        description: The length of the shipment in CM.
        required: false
        example: 25
        schema:
          type: integer
          default: 15
      - in: query
        name: packages
        schema:
          type: array
          items:
            $ref: '#/components/schemas/PackageEstimate'
          default: []
          maxItems: 12
      - in: query
        name: postal_code
        description: The destination Postal Code or ZIP Code. Conditional.
        required: false
        example: 10128
        schema:
          type: string
          maxLength: 10
      - in: query
        name: province
        description: The destination province / state code. Conditional.
        required: false
        example: NY
        schema:
          type: string
          maxLength: 40
      - in: query
        name: signature_confirmation
        description: The shipment requires signature confirmation.
        required: false
        example: true
        schema:
          type: boolean
          default: false
      - in: query
        name: terms
        description: The preferred incoterms.
        required: false
        example: DDU
        schema:
          type: string
          enum:
          - DAP
          - DDU
          - DDP
          default: null
      - in: query
        name: value
        description: The total value of the items to calculate tax and insurance. Used with <i>currency</i>.
        required: false
        example: 100
        schema:
          type: decimal
          default: 0
      - in: query
        name: weight
        description: The weight of the shipment in KG.
        required: true
        example: 0.345
        schema:
          type: decimal
          exclusiveMinimum: 0
      - in: query
        name: width
        description: The width of the shipment in CM.
        required: false
        example: 2
        schema:
          type: integer
          default: 10
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n  -H \"Accept: application/json\" \\\n  https://api.boxc.com/v1/estimate\\?entry_point=TEST01\\&weight=0.345\\&height=10.5\\&width=2\\&length=15\\&province=CA\\&postal_code=94041\\&country=US\\&signature_confirmation=false\\&value=100\\&currency=CAD\\&irregular=0\\&insurance=true\\&carrier=DHLeC\\&is_return=false&packages[0][length]=10&packages[0][height]=5&packages[0][width]=15&packages[0][weight]=5&packages[1][length]=20&packages[1][height]=10&packages[1][width]=12&packages[1][weight]=4\n"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Estimate'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/schemas/Unauthorized'
        '403':
          $ref: '#/components/schemas/Forbidden'
        '429':
          $ref: '#/components/schemas/RateLimit'
components:
  schemas:
    service:
      type: object
      description: A list of services and their estimated price and transit time. Set by the system. If an empty array is returned then there are currently no services available for the given route.
      properties:
        carrier:
          description: The last mile carrier the shipment will use for delivery.
          type: string
          example: USPS
        chargeable_weight:
          description: The greater of the gross weight and volumetric weight.
          type: decimal
          example: 0.412
        cost:
          description: The estimated shipping cost.
          type: decimal
          example: 3.55
        exit_point:
          description: The destination port the shipment will be transported to before last mile delivery.
          type: string
          default: null
          example: LAX
        gross_weight:
          description: The greater of the requested weight and minimum gross weight for the route.
          type: decimal
          example: 0.25
        insurance:
          type: object
          description: Insurance details for this service.
          properties:
            coverage:
              type: decimal
              description: The dollar amount covered by the insurance policy.
              example: 30
            fee:
              type: decimal
              description: The cost of coverage if insured.
              example: 0
        service:
          type: string
          description: Service name
          example: BoxC Priority
        surcharge:
          description: Additional cost for this shipment based on the route and chargeable weight.
          type: decimal
          example: 0.75
        terms:
          type: array
          description: Acceptable incoterms for this route.
          items:
            type: string
          example:
          - DAP
          - DDU
          - DDP
        total_cost:
          description: The total estimated shipping cost including applicable fees.
          type: decimal
          example: 3.55
        transit_min:
          type: integer
          description: Estimated minimum transit time in days.
          example: 5
        transit_max:
          type: integer
          description: Estimated maximum transit time in days.
          example: 10
        volumetric_weight:
          description: The volumetric weight based on the requested dimensions and route's divisor.
          type: decimal
          example: 0.412
    rate-limit:
      description: Too Many Requests
      content:
        application/json:
          schema:
            type: object
            summary: Too Many Requests
            description: Error for too many requests in a given time frame. See [Rate Limits](/#tag/RateLimit) for more information.
            properties:
              code:
                description: Error code. Refer to the list of [Errors](/#tag/Errors).
                type: integer
              message:
                description: Error message explaining the code.
                type: string
              status:
                type: string
                enum:
                - error
                example: error
              errors:
                description: Displays processing error.
                type: array
                minItems: 1
                maxItems: 1
                items:
                  type: string
          examples:
            rateLimit:
              summary: Too Many Requests
              description: Too many requests. Please wait before trying again.
              value:
                code: 1015
                message: Too many requests. Please wait before trying again.
                errors:
                - Too many requests. Please wait before trying again.
    RateLimit:
      $ref: '#/components/schemas/rate-limit'
    forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            summary: Forbidden
            description: Error relating to insufficient permissions for a resource
            properties:
              code:
                description: Error code. Refer to the list of [Errors](/#tag/Errors).
                type: integer
              message:
                description: Error message explaining the code.
                type: string
              status:
                type: string
                enum:
                - error
                example: error
              errors:
                description: Displays processing error.
                type: array
                minItems: 1
                maxItems: 1
                items:
                  type: string
          examples:
            revoked:
              summary: Forbidden Authorization Revoked
              description: 'Forbidden: Authorization revoked'
              value:
                code: 1008
                message: 'Forbidden: Authorization revoked'
                errors:
                - 'Forbidden: Authorization revoked'
            scope:
              summary: Forbidden Scope
              description: 'Forbidden: Missing required scope'
              value:
                code: 1009
                message: 'Forbidden: Missing required scope'
                errors:
                - 'Forbidden: Missing required scope'
    estimate:
      type: object
      description: Retrieves an estimate.
      properties:
        estimate:
          type: object
          properties:
            currency:
              description: The ISO 4217 currency code for the **value** parameter and rates that are returned.
              type: string
              example: CAD
              readOnly: true
            entry_point:
              description: The code for the drop off location. See [Entry Points](/#tag/EntryPoints) for a list of codes.
              type: string
              default: null
              example: LAXI01
              readOnly: true
            services:
              type: array
              readOnly: true
              items:
                $ref: '#/components/schemas/Service'
    PackageEstimate:
      $ref: '#/components/schemas/package-estimate'
    Estimate:
      $ref: '#/components/schemas/estimate'
    bad-request:
      type: object
      summary: Bad Request
      description: Validation error with the request
      properties:
        code:
          description: Error code. Refer to the list of [Errors](/#tag/Errors).
          type: integer
        message:
          description: Error message explaining the code.
          type: string
        status:
          type: string
          enum:
          - error
          example: error
        errors:
          description: Lists validation errors with the schema or the resource being operated on.
          type: array
          minItems: 1
          maxItems: 5
          items:
            type: string
    Forbidden:
      $ref: '#/components/schemas/forbidden'
    Service:
      $ref: '#/components/schemas/service'
    BadRequest:
      $ref: '#/components/schemas/bad-request'
    package-estimate:
      type: object
      title: Package
      properties:
        height:
          description: The height of the package in cm.
          type: decimal
          exclusiveMinimum: 0
          exclusiveMaximum: 1000
          example: 1
        length:
          description: The length of the package in cm.
          type: decimal
          exclusiveMinimum: 0
          exclusiveMaximum: 1000
          example: 15
        weight:
          description: The weight of the package in kg.
          type: decimal
          exclusiveMinimum: 0
          exclusiveMaximum: 1000
          example: 15
        width:
          description: The width of the package in cm.
          type: decimal
          exclusiveMinimum: 0
          exclusiveMaximum: 1000
          example: 10
      required:
      - height
      - length
      - weight
      - width
    Unauthorized:
      $ref: '#/components/schemas/unauthorized'
    unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            summary: Unauthorized
            description: Lack of valid authentication credentials for the resource
            properties:
              code:
                description: Error code. Refer to the list of [Errors](/#tag/Errors).
                type: integer
              message:
                description: Error message explaining the code.
                type: string
              status:
                type: string
                enum:
                - error
                example: error
              errors:
                description: Displays processing error.
                type: array
                minItems: 1
                maxItems: 1
                items:
                  type: string
          examples:
            accessToken:
              summary: Invalid access token
              description: Invalid access token
              value:
                code: 1005
                message: Invalid access token
                errors:
                - Invalid access token
  securitySchemes:
    JWT:
      type: http
      scheme: bearer
      bearerScheme: JWT
      in: header
      description: All operations require a JSON Web Token after completing an [OAuth2 flow](#tag/Authentication).
    PrivilegedClient:
      type: http
      scheme: bearer
      bearerScheme: JWT
      description: Some clients require special privileges to use operations. No additional scope is needed.
x-servers:
- url: https://api.boxc.com/v1
x-tagGroups:
- name: Overview
  tags:
  - Introduction
  - Authentication
  - RateLimit
  - Paginate
  - Changelog
- name: Operations
  tags:
  - CalculateDuty
  - Classify
  - Invoices
  - Users
  - ValidateAddress
  - Webhooks
- name: Shipping
  tags:
  - Credentials
  - CustomsProducts
  - EntryPoints
  - Estimate
  - Labels
  - Manifests
  - Overpacks
  - Shipments
  - Track
- name: Fulfillment
  tags:
  - Inbound
  - Orders
  - Products
  - Shops
  - Warehouses
- name: Returns
  tags:
  - Reshipments
  - Returns
- name: Data
  tags:
  - CarrierCredentials
  - DangerousGoods
  - Errors
  - Languages
  - CarrierParameters
  - ReturnsProcess
  - TrackingEvents