Karrio Carriers API

This is an object representing your Karrio carrier extension. You can retrieve all supported carrier extensions available.

Operations 4

GET /v1/carriers List all carriers #
GET /v1/carriers/{carrier_name} Get carrier details #
GET /v1/carriers/{carrier_name}/options Get carrier options #
GET /v1/carriers/{carrier_name}/services Get carrier services #

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/karrio-carriers-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

karrio-carriers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: "\nKarrio is a multi-carrier shipping API that simplifies the integration of logistics carrier services.\n\nThe Karrio API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded\nrequest bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.\n\nThe Karrio API differs for every account as we release new versions.\nThese docs are customized to your version of the API.\n\n\n## Versioning\n\nWhen backwards-incompatible changes are made to the API, a new, dated version is released.\nThe current version is `2026.1.32`.\n\nRead our API changelog to learn more about backwards compatibility.\n\nAs a precaution, use API versioning to check a new API version before committing to an upgrade.\n\n\n## Environments\n\nThe Karrio API offer the possibility to create and retrieve certain objects in `test_mode`.\nIn development, it is therefore possible to add carrier connections, get live rates,\nbuy labels, create trackers and schedule pickups in `test_mode`.\n\n\n## Pagination\n\nAll top-level API resources have support for bulk fetches via \"list\" API methods. For instance, you can list addresses,\nlist shipments, and list trackers. These list API methods share a common structure, taking at least these\ntwo parameters: limit, and offset.\n\nKarrio utilizes offset-based pagination via the offset and limit parameters.\nBoth parameters take a number as value (see below) and return objects in reverse chronological order.\nThe offset parameter returns objects listed after an index.\nThe limit parameter take a limit on the number of objects to be returned from 1 to 100.\n\n\n```json\n{\n    \"count\": 100,\n    \"next\": \"/v1/shipments?limit=25&offset=50\",\n    \"previous\": \"/v1/shipments?limit=25&offset=25\",\n    \"results\": [\n        { ... },\n    ]\n}\n```\n\n## Metadata\n\nUpdateable Karrio objects—including Shipment and Order have a metadata parameter.\nYou can use this parameter to attach key-value data to these Karrio objects.\n\nMetadata is useful for storing additional, structured information on an object.\nAs an example, you could store your user's full name and corresponding unique identifier\nfrom your system on a Karrio Order object.\n\nDo not store any sensitive information as metadata.\n\n## Authentication\n\nAPI keys are used to authenticate requests. You can view and manage your API keys in the Dashboard.\n\nYour API keys carry many privileges, so be sure to keep them secure! Do not share your secret\nAPI keys in publicly accessible areas such as GitHub, client-side code, and so forth.\n\nAuthentication to the API is performed via HTTP Basic Auth. Provide your API token as\nthe basic auth username value. You do not need to provide a password.\n\n```shell\n$ curl https://instance.api.com/v1/shipments \\\n    -u key_xxxxxx:\n# The colon prevents curl from asking for a password.\n```\n\nIf you need to authenticate via bearer auth (e.g., for a cross-origin request),\nuse `-H \"Authorization: Token key_xxxxxx\"` instead of `-u key_xxxxxx`.\n\nAll API requests must be made over [HTTPS](http://en.wikipedia.org/wiki/HTTP_Secure).\nAPI requests without authentication will also fail.\n"
  title: Karrio Carriers API
  version: 2026.1.32
tags:
- name: Carriers
  description: "This is an object representing your Karrio carrier extension.\n                You can retrieve all supported carrier extensions available.\n                "
paths:
  /v1/carriers:
    get:
      operationId: '&&list'
      description: Returns the list of configured carriers
      summary: List all carriers
      parameters:
      - in: query
        name: lang
        schema:
          type: string
        description: Language code for translated labels (e.g., 'de', 'en').
      tags:
      - Carriers
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CarrierDetails'
              examples:
                CarrierList:
                  value:
                  - carrier_name: dhl_parcel_de
                    display_name: DHL Parcel DE
                    integration_status: in-development
                    capabilities:
                    - rating
                    - shipping
                    - tracking
                    connection_fields:
                      username:
                        name: username
                        required: true
                        type: string
                      password:
                        name: password
                        required: true
                        type: string
                      dhl_api_key:
                        name: dhl_api_key
                        required: true
                        type: string
                      customer_number:
                        name: customer_number
                        required: false
                        type: string
                      tracking_consumer_key:
                        name: tracking_consumer_key
                        required: false
                        type: string
                      tracking_consumer_secret:
                        name: tracking_consumer_secret
                        required: false
                        type: string
                      services:
                        default:
                        - active: true
                          currency: EUR
                          dimension_unit: CM
                          domicile: true
                          max_height: 60
                          max_length: 120
                          max_weight: 31.5
                          max_width: 60
                          metadata: {}
                          min_weight: 0.01
                          service_code: dhl_parcel_de_paket
                          service_name: DHL Paket
                          weight_unit: KG
                          zones:
                          - rate: 0.0
                        - active: true
                          currency: EUR
                          dimension_unit: CM
                          domicile: false
                          international: true
                          max_height: 60
                          max_length: 120
                          max_weight: 31.5
                          max_width: 60
                          metadata: {}
                          min_weight: 0.01
                          service_code: dhl_parcel_de_paket_international
                          service_name: DHL Paket International
                          weight_unit: KG
                          zones:
                          - rate: 0.0
                        - active: true
                          currency: EUR
                          dimension_unit: CM
                          domicile: false
                          international: true
                          max_height: 60
                          max_length: 120
                          max_weight: 31.5
                          max_width: 60
                          metadata: {}
                          min_weight: 0.01
                          service_code: dhl_parcel_de_europaket
                          service_name: DHL EuroPaket
                          weight_unit: KG
                          zones:
                          - rate: 0.0
                        - active: true
                          currency: EUR
                          dimension_unit: CM
                          domicile: true
                          international: false
                          max_height: 5
                          max_length: 35
                          max_weight: 1
                          max_width: 7
                          metadata: {}
                          min_weight: 0.01
                          service_code: dhl_parcel_de_warenpost
                          service_name: DHL Warenpost
                          weight_unit: KG
                          zones:
                          - rate: 0.0
                        - active: true
                          currency: EUR
                          dimension_unit: CM
                          domicile: false
                          international: true
                          max_height: 10
                          max_length: 35.3
                          max_weight: 1
                          max_width: 9
                          metadata: {}
                          min_weight: 0.01
                          service_code: dhl_parcel_de_warenpost_international
                          service_name: DHL Warenpost International
                          weight_unit: KG
                          zones:
                          - rate: 0.0
                        name: services
                        required: false
                        type: list
                    config_fields:
                      profile:
                        code: profile
                        name: profile
                        required: false
                        type: string
                      cost_center:
                        code: cost_center
                        name: cost_center
                        required: false
                        type: string
                      creation_software:
                        code: creation_software
                        name: creation_software
                        required: false
                        type: string
                      shipping_options:
                        code: shipping_options
                        name: shipping_options
                        required: false
                        type: list
                      shipping_services:
                        code: shipping_services
                        name: shipping_services
                        required: false
                        type: list
                      language:
                        code: language
                        enum:
                        - de
                        - en
                        name: language
                        required: false
                        type: string
                      label_type:
                        code: label_type
                        enum:
                        - PDF_A4
                        - ZPL2_A4
                        - PDF_910_300_700
                        - ZPL2_910_300_700
                        - PDF_910_300_700_oz
                        - ZPL2_910_300_700_oz
                        - PDF_910_300_710
                        - ZPL2_910_300_710
                        - PDF_910_300_600
                        - ZPL2_910_300_600
                        - PDF_910_300_610
                        - ZPL2_910_300_610
                        - PDF_910_300_400
                        - ZPL2_910_300_400
                        - PDF_910_300_410
                        - ZPL2_910_300_410
                        - PDF_910_300_300
                        - ZPL2_910_300_300
                        - PDF_910_300_300_oz
                        - ZPL2_910_300_300_oz
                        name: label_type
                        required: false
                        type: string
                    shipping_services:
                      dhl_parcel_de_paket: V01PAK
                      dhl_parcel_de_warenpost: V62WP
                      dhl_parcel_de_europaket: V54EPAK
                      dhl_parcel_de_paket_international: V53WPAK
                      dhl_parcel_de_warenpost_international: V66WPI
                    shipping_options:
                      dhl_parcel_de_preferred_neighbour:
                        code: preferredNeighbour
                        type: string
                      dhl_parcel_de_preferred_location:
                        code: preferredLocation
                        type: string
                      dhl_parcel_de_visual_check_of_age:
                        code: visualCheckOfAge
                        type: string
                      dhl_parcel_de_named_person_only:
                        code: namedPersonOnly
                        type: boolean
                      dhl_parcel_de_signed_for_by_recipient:
                        code: signedForByRecipient
                        type: boolean
                      dhl_parcel_de_endorsement:
                        code: endorsement
                        type: string
                      dhl_parcel_de_preferred_day:
                        code: preferredDay
                        type: string
                      dhl_parcel_de_no_neighbour_delivery:
                        code: noNeighbourDelivery
                        type: boolean
                      dhl_parcel_de_additional_insurance:
                        code: additionalInsurance
                        type: float
                      dhl_parcel_de_bulky_goods:
                        code: bulkyGoods
                        type: boolean
                      dhl_parcel_de_cash_on_delivery:
                        code: cashOnDelivery
                        type: float
                      dhl_parcel_de_individual_sender_requirement:
                        code: individualSenderRequirement
                        type: string
                      dhl_parcel_de_premium:
                        code: premium
                        type: boolean
                      dhl_parcel_de_closest_drop_point:
                        code: closestDropPoint
                        type: boolean
                      dhl_parcel_de_parcel_outlet_routing:
                        code: parcelOutletRouting
                        type: string
                      dhl_parcel_de_postal_delivery_duty_paid:
                        code: postalDeliveryDutyPaid
                        type: boolean
                  summary: Carrier List
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: listCarriers
  /v1/carriers/{carrier_name}:
    get:
      operationId: '&&get_details'
      description: Retrieve a carrier's details
      summary: Get carrier details
      parameters:
      - in: path
        name: carrier_name
        schema:
          type: string
        description: 'The unique carrier slug. <br/>Values: `aramex`, `asendia`, `asendia_us`, `australiapost`, `boxknight`, `bpost`, `canadapost`, `canpar`, `chronopost`, `colissimo`, `dhl_express`, `dhl_parcel_de`, `dhl_poland`, `dhl_universal`, `dicom`, `dpd`, `dpd_meta`, `dtdc`, `easypost`, `easyship`, `eshipper`, `fedex`, `freightcom`, `generic`, `geodis`, `gls`, `hay_post`, `hermes`, `landmark`, `laposte`, `locate2u`, `mydhl`, `nationex`, `parcelone`, `postat`, `purolator`, `roadie`, `royalmail`, `sapient`, `seko`, `sendle`, `shipengine`, `smartkargo`, `spring`, `teleship`, `tge`, `tnt`, `ups`, `usps`, `usps_international`, `veho`, `zoom2u`'
        required: true
      tags:
      - Carriers
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierDetails'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: getDetails
  /v1/carriers/{carrier_name}/options:
    get:
      operationId: '&&get_options'
      description: Retrieve a carrier's options
      summary: Get carrier options
      parameters:
      - in: path
        name: carrier_name
        schema:
          type: string
        description: 'The unique carrier slug. <br/>Values: `aramex`, `asendia`, `asendia_us`, `australiapost`, `boxknight`, `bpost`, `canadapost`, `canpar`, `chronopost`, `colissimo`, `dhl_express`, `dhl_parcel_de`, `dhl_poland`, `dhl_universal`, `dicom`, `dpd`, `dpd_meta`, `dtdc`, `easypost`, `easyship`, `eshipper`, `fedex`, `freightcom`, `generic`, `geodis`, `gls`, `hay_post`, `hermes`, `landmark`, `laposte`, `locate2u`, `mydhl`, `nationex`, `parcelone`, `postat`, `purolator`, `roadie`, `royalmail`, `sapient`, `seko`, `sendle`, `shipengine`, `smartkargo`, `spring`, `teleship`, `tge`, `tnt`, `ups`, `usps`, `usps_international`, `veho`, `zoom2u`'
        required: true
      tags:
      - Carriers
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
              examples:
                CarrierOptions:
                  value:
                    sendle_hide_pickup_address:
                      code: hide_pickup_address
                      type: boolean
                    sendle_first_mile_option:
                      code: first_mile_option
                      type: boolean
                  summary: Carrier Options
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: getOptions
  /v1/carriers/{carrier_name}/services:
    get:
      operationId: '&&get_services'
      description: Retrieve a carrier's services
      summary: Get carrier services
      parameters:
      - in: path
        name: carrier_name
        schema:
          type: string
        description: 'The unique carrier slug. <br/>Values: `aramex`, `asendia`, `asendia_us`, `australiapost`, `boxknight`, `bpost`, `canadapost`, `canpar`, `chronopost`, `colissimo`, `dhl_express`, `dhl_parcel_de`, `dhl_poland`, `dhl_universal`, `dicom`, `dpd`, `dpd_meta`, `dtdc`, `easypost`, `easyship`, `eshipper`, `fedex`, `freightcom`, `generic`, `geodis`, `gls`, `hay_post`, `hermes`, `landmark`, `laposte`, `locate2u`, `mydhl`, `nationex`, `parcelone`, `postat`, `purolator`, `roadie`, `royalmail`, `sapient`, `seko`, `sendle`, `shipengine`, `smartkargo`, `spring`, `teleship`, `tge`, `tnt`, `ups`, `usps`, `usps_international`, `veho`, `zoom2u`'
        required: true
      tags:
      - Carriers
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
              examples:
                CarrierList:
                  value:
                    canadapost_regular_parcel: DOM.RP
                    canadapost_expedited_parcel: DOM.EP
                    canadapost_xpresspost: DOM.XP
                    canadapost_xpresspost_certified: DOM.XP.CERT
                    canadapost_priority: DOM.PC
                    canadapost_library_books: DOM.LIB
                    canadapost_expedited_parcel_usa: USA.EP
                    canadapost_priority_worldwide_envelope_usa: USA.PW.ENV
                    canadapost_priority_worldwide_pak_usa: USA.PW.PAK
                    canadapost_priority_worldwide_parcel_usa: USA.PW.PARCEL
                    canadapost_small_packet_usa_air: USA.SP.AIR
                    canadapost_tracked_packet_usa: USA.TP
                    canadapost_tracked_packet_usa_lvm: USA.TP.LVM
                    canadapost_xpresspost_usa: USA.XP
                    canadapost_xpresspost_international: INT.XP
                    canadapost_international_parcel_air: INT.IP.AIR
                    canadapost_international_parcel_surface: INT.IP.SURF
                    canadapost_priority_worldwide_envelope_intl: INT.PW.ENV
                    canadapost_priority_worldwide_pak_intl: INT.PW.PAK
                    canadapost_priority_worldwide_parcel_intl: INT.PW.PARCEL
                    canadapost_small_packet_international_air: INT.SP.AIR
                    canadapost_small_packet_international_surface: INT.SP.SURF
                    canadapost_tracked_packet_international: INT.TP
                  summary: Carrier List
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: getServices
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/APIError'
          description: The list of API errors
    CarrierDetails:
      type: object
      properties:
        carrier_name:
          enum:
          - aramex
          - asendia
          - asendia_us
          - australiapost
          - boxknight
          - bpost
          - canadapost
          - canpar
          - chronopost
          - colissimo
          - dhl_express
          - dhl_parcel_de
          - dhl_poland
          - dhl_universal
          - dicom
          - dpd
          - dpd_meta
          - dtdc
          - easypost
          - easyship
          - eshipper
          - fedex
          - freightcom
          - generic
          - geodis
          - gls
          - hay_post
          - hermes
          - landmark
          - laposte
          - locate2u
          - mydhl
          - nationex
          - parcelone
          - postat
          - purolator
          - roadie
          - royalmail
          - sapient
          - seko
          - sendle
          - shipengine
          - smartkargo
          - spring
          - teleship
          - tge
          - tnt
          - ups
          - usps
          - usps_international
          - veho
          - zoom2u
          type: string
          x-spec-enum-id: ae0f7f0940fb5243
          description: Indicates a carrier (type)
        display_name:
          type: string
          description: The carrier verbose name.
        integration_status:
          enum:
          - in-development
          - beta
          - production-ready
          type: string
          x-spec-enum-id: d58225b23f9a1710
          description: The carrier integration status.
        capabilities:
          type: array
          items:
            type: string
          default: []
          description: The carrier supported and enabled capabilities.
        connection_fields:
          type: object
          additionalProperties: {}
          default: {}
          description: The carrier connection fields.
        config_fields:
          type: object
          additionalProperties: {}
          default: {}
          description: The carrier connection config.
        shipping_services:
          type: object
          additionalProperties: {}
          default: {}
          description: The carrier shipping services.
        shipping_options:
          type: object
          additionalProperties: {}
          default: {}
          description: The carrier shipping options.
      required:
      - carrier_name
      - display_name
      - integration_status
    APIError:
      type: object
      properties:
        message:
          type: string
          description: The error or warning message
        code:
          type: string
          description: The message code
        level:
          type: string
          description: The message level
        details:
          type: object
          additionalProperties: {}
          description: any additional details
  securitySchemes:
    JWT:
      in: header
      type: apiKey
      scheme: bearer
      bearerFormat: JWT
      name: Authorization
      description: 'Authorization: Bearer xxx.xxx.xxx'
    OAuth2:
      type: oauth2
      in: header
      name: Authorization
      flows:
        authorizationCode:
          authorizationUrl: /oauth/authorize/
          tokenUrl: /oauth/token/
          scopes:
            read: Read access to Karrio data
            write: Write access to Karrio data
            openid: OpenID connect
      description: 'Authorization: Bearer xxxxxxxx'
    Token:
      type: apiKey
      in: header
      name: Authorization
      description: 'Authorization: Token key_xxxxxxxx'
    TokenBasic:
      type: http
      scheme: basic
      name: Authorization
      description: '-u key_xxxxxxxx:'