Karrio Manifests API

This is an object representing your Karrio manifest details. Some carriers require manifests to be created after labels are generated. A manifest is a summary of all the shipments that are being sent out.

Business capability
Manifest and Cargo Declaration Management BC-2500.40

Operations 3

GET /v1/manifests List manifests #
POST /v1/manifests Create a manifest #
GET /v1/manifests/{id} Retrieve a manifest #

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:karrio-manifests-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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-manifests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Karrio is a multi-carrier shipping API that simplifies the integration of logistics carrier services.


    The Karrio API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded

    request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.


    The Karrio API differs for every account as we release new versions.

    These docs are customized to your version of the API.


    ## Versioning


    When backwards-incompatible changes are made to the API, a new, dated version is released.

    The current version is `2024.12.6`.


    Read our API changelog to learn more about backwards compatibility.


    As a precaution, use API versioning to check a new API version before committing to an upgrade.


    ## Environments


    The Karrio API offer the possibility to create and retrieve certain objects in `test_mode`.

    In development, it is therefore possible to add carrier connections, get live rates,

    buy labels, create trackers and schedule pickups in `test_mode`.


    ## Pagination


    All top-level API resources have support for bulk fetches via "list" API methods. For instance, you can list addresses,

    list shipments, and list trackers. These list API methods share a common structure, taking at least these

    two parameters: limit, and offset.


    Karrio utilizes offset-based pagination via the offset and limit parameters.

    Both parameters take a number as value (see below) and return objects in reverse chronological order.

    The offset parameter returns objects listed after an index.

    The limit parameter take a limit on the number of objects to be returned from 1 to 100.


    ```json

    {

    "count": 100,

    "next": "/v1/shipments?limit=25&offset=50",

    "previous": "/v1/shipments?limit=25&offset=25",

    "results": [

    { ... },

    ]

    }

    ```


    ## Metadata


    Updateable Karrio objects—including Shipment and Order have a metadata parameter.

    You can use this parameter to attach key-value data to these Karrio objects.


    Metadata is useful for storing additional, structured information on an object.

    As an example, you could store your user''s full name and corresponding unique identifier

    from your system on a Karrio Order object.


    Do not store any sensitive information as metadata.


    ## Authentication


    API keys are used to authenticate requests. You can view and manage your API keys in the Dashboard.


    Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret

    API keys in publicly accessible areas such as GitHub, client-side code, and so forth.


    Authentication to the API is performed via HTTP Basic Auth. Provide your API token as

    the basic auth username value. You do not need to provide a password.


    ```shell

    $ curl https://instance.api.com/v1/shipments \

    -u key_xxxxxx:

    # The colon prevents curl from asking for a password.

    ```


    If you need to authenticate via bearer auth (e.g., for a cross-origin request),

    use `-H "Authorization: Token key_xxxxxx"` instead of `-u key_xxxxxx`.


    All API requests must be made over HTTPS.

    API requests without authentication will also fail.'
  title: Karrio Manifests API
  version: 2024.12.6
tags:
- name: Manifests
  description: 'This is an object representing your Karrio manifest details.

    Some carriers require manifests to be created after labels are generated.

    A manifest is a summary of all the shipments that are being sent out.'
paths:
  /v1/manifests:
    get:
      operationId: listManifests
      description: Retrieve all manifests.
      summary: List manifests
      parameters:
      - in: query
        name: carrier_name
        schema:
          type: string
        description: 'The unique carrier slug. <br/>Values: `allied_express`, `allied_express_local`, `amazon_shipping`, `aramex`, `asendia_us`, `australiapost`, `boxknight`, `bpost`, `canadapost`, `canpar`, `chronopost`, `colissimo`, `dhl_express`, `dhl_parcel_de`, `dhl_poland`, `dhl_universal`, `dicom`, `dpd`, `dpdhl`, `easypost`, `easyship`, `eshipper`, `fedex`, `fedex_ws`, `freightcom`, `generic`, `geodis`, `hay_post`, `laposte`, `locate2u`, `nationex`, `purolator`, `roadie`, `royalmail`, `sapient`, `seko`, `sendle`, `tge`, `tnt`, `ups`, `usps`, `usps_international`, `usps_wt`, `usps_wt_international`, `zoom2u`'
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      tags:
      - Manifests
      security:
      - TokenBasic: []
      - Token: []
      - OAuth2: []
      - JWT: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManifestList'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: listManifests
    post:
      operationId: createManifest
      description: Create a manifest for one or many shipments with labels already purchased.
      summary: Create a manifest
      tags:
      - Manifests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManifestData'
        required: true
      security:
      - TokenBasic: []
      - Token: []
      - OAuth2: []
      - JWT: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Manifest'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '424':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessages'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: createManifest
  /v1/manifests/{id}:
    get:
      operationId: retrieveManifest
      description: Retrieve a shipping manifest.
      summary: Retrieve a manifest
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Manifests
      security:
      - TokenBasic: []
      - Token: []
      - OAuth2: []
      - JWT: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Manifest'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: ''
      x-operationId: retrieveManifest
components:
  schemas:
    ManifestList:
      type: object
      properties:
        count:
          type:
          - integer
          - 'null'
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/Manifest'
      required:
      - results
    ErrorMessages:
      type: object
      properties:
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          description: The list of error messages
    Message:
      type: object
      properties:
        message:
          type: string
          description: The error or warning message
        code:
          type: string
          description: The message code
        details:
          type: object
          additionalProperties: {}
          description: any additional details
        carrier_name:
          type: string
          description: The targeted carrier
        carrier_id:
          type: string
          description: The targeted carrier name (unique identifier)
    Manifest:
      type: object
      properties:
        id:
          type: string
          description: A unique manifest identifier
        object_type:
          type: string
          default: manifest
          description: Specifies the object type
        carrier_name:
          type: string
          description: The manifest carrier
        carrier_id:
          type: string
          description: The manifest carrier configured name
        meta:
          type:
          - object
          - 'null'
          additionalProperties: {}
          description: provider specific metadata
        test_mode:
          type: boolean
          description: Specified whether it was created with a carrier in test mode
        address:
          allOf:
          - $ref: '#/components/schemas/AddressData'
          description: The address of the warehouse or location where the shipments originate.
        options:
          type: object
          additionalProperties: {}
          default: {}
          description: "<details>\n        <summary>The options available for the manifest.</summary>\n\n        {\n            \"shipments\": [\n                {\n                    \"tracking_number\": \"123456789\",\n                    ...\n                    \"meta\": {...}\n                }\n            ]\n        }\n        </details>\n        "
        reference:
          type:
          - string
          - 'null'
          description: The manifest reference
        shipment_identifiers:
          type: array
          items:
            type: string
          description: "The list of shipment identifiers you want to add to your manifest.<br/>\n        shipment_identifier is often a tracking_number or shipment_id returned when you purchase a label.\n        "
        metadata:
          type: object
          additionalProperties: {}
          default: {}
          description: User metadata for the pickup
        manifest_url:
          type:
          - string
          - 'null'
          format: uri
          description: The Manifest file URL
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          default: []
          description: The list of note or warning messages
      required:
      - address
      - carrier_id
      - carrier_name
      - shipment_identifiers
      - test_mode
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/APIError'
          description: The list of API errors
    APIError:
      type: object
      properties:
        message:
          type: string
          description: The error or warning message
        code:
          type: string
          description: The message code
        details:
          type: object
          additionalProperties: {}
          description: any additional details
    ManifestData:
      type: object
      properties:
        carrier_name:
          type: string
          description: The manifest's carrier
        address:
          allOf:
          - $ref: '#/components/schemas/AddressData'
          description: The address of the warehouse or location where the shipments originate.
        options:
          type: object
          additionalProperties: {}
          default: {}
          description: "<details>\n        <summary>The options available for the manifest.</summary>\n\n        {\n            \"shipments\": [\n                {\n                    \"tracking_number\": \"123456789\",\n                    ...\n                    \"meta\": {...}\n                }\n            ]\n        }\n        </details>\n        "
        reference:
          type:
          - string
          - 'null'
          description: The manifest reference
        shipment_ids:
          type: array
          items:
            type: string
          description: The list of existing shipment object ids with label purchased.
      required:
      - address
      - carrier_name
      - shipment_ids
    AddressData:
      type: object
      properties:
        postal_code:
          type:
          - string
          - 'null'
          description: "The address postal code\n        **(required for shipment purchase)**\n        "
          maxLength: 10
        city:
          type:
          - string
          - 'null'
          description: "The address city.\n        **(required for shipment purchase)**\n        "
          maxLength: 30
        federal_tax_id:
          type:
          - string
          - 'null'
          description: The party frederal tax id
          maxLength: 20
        state_tax_id:
          type:
          - string
          - 'null'
          description: The party state id
          maxLength: 20
        person_name:
          type:
          - string
          - 'null'
          description: "Attention to\n        **(required for shipment purchase)**\n        "
          maxLength: 50
        company_name:
          type:
          - string
          - 'null'
          description: The company name if the party is a company
          maxLength: 50
        country_code:
          enum:
          - AC
          - AD
          - AE
          - AF
          - AG
          - AI
          - AL
          - AM
          - AN
          - AO
          - AR
          - AS
          - AT
          - AU
          - AW
          - AZ
          - BA
          - BB
          - BD
          - BE
          - BF
          - BG
          - BH
          - BI
          - BJ
          - BM
          - BN
          - BO
          - BR
          - BS
          - BT
          - BW
          - BY
          - BZ
          - CA
          - CD
          - CF
          - CG
          - CH
          - CI
          - CK
          - CL
          - CM
          - CN
          - CO
          - CR
          - CU
          - CV
          - CY
          - CZ
          - DE
          - DJ
          - DK
          - DM
          - DO
          - DZ
          - EC
          - EE
          - EG
          - ER
          - ES
          - ET
          - FI
          - FJ
          - FK
          - FM
          - FO
          - FR
          - GA
          - GB
          - GD
          - GE
          - GF
          - GG
          - GH
          - GI
          - GL
          - GM
          - GN
          - GP
          - GQ
          - GR
          - GT
          - GU
          - GW
          - GY
          - HK
          - HN
          - HR
          - HT
          - HU
          - IC
          - ID
          - IE
          - IL
          - IN
          - IQ
          - IR
          - IS
          - IT
          - JE
          - JM
          - JO
          - JP
          - KE
          - KG
          - KH
          - KI
          - KM
          - KN
          - KP
          - KR
          - KV
          - KW
          - KY
          - KZ
          - LA
          - LB
          - LC
          - LI
          - LK
          - LR
          - LS
          - LT
          - LU
          - LV
          - LY
          - MA
          - MC
          - MD
          - ME
          - MG
          - MH
          - MK
          - ML
          - MM
          - MN
          - MO
          - MP
          - MQ
          - MR
          - MS
          - MT
          - MU
          - MV
          - MW
          - MX
          - MY
          - MZ
          - NA
          - NC
          - NE
          - NG
          - NI
          - NL
          - 'NO'
          - NP
          - NR
          - NU
          - NZ
          - OM
          - PA
          - PE
          - PF
          - PG
          - PH
          - PK
          - PL
          - PR
          - PT
          - PW
          - PY
          - QA
          - RE
          - RO
          - RS
          - RU
          - RW
          - SA
          - SB
          - SC
          - SD
          - SE
          - SG
          - SH
          - SI
          - SK
          - SL
          - SM
          - SN
          - SO
          - SR
          - SS
          - ST
          - SV
          - SY
          - SZ
          - TC
          - TD
          - TG
          - TH
          - TJ
          - TL
          - TN
          - TO
          - TR
          - TT
          - TV
          - TW
          - TZ
          - UA
          - UG
          - US
          - UY
          - UZ
          - VA
          - VC
          - VE
          - VG
          - VI
          - VN
          - VU
          - WS
          - XB
          - XC
          - XE
          - XM
          - XN
          - XS
          - XY
          - YE
          - YT
          - ZA
          - ZM
          - ZW
          - EH
          - IM
          - BL
          - MF
          - SX
          type: string
          x-spec-enum-id: 05a7b91de773db3e
          description: The address country code
        email:
          type:
          - string
          - 'null'
          description: The party email
        phone_number:
          type:
          - string
          - 'null'
          description: The party phone number.
          maxLength: 20
        state_code:
          type:
          - string
          - 'null'
          description: The address state code
          maxLength: 20
        residential:
          type:
          - boolean
          - 'null'
          default: false
          description: Indicate if the address is residential or commercial (enterprise)
        street_number:
          type:
          - string
          - 'null'
          description: The address street number
          maxLength: 20
        address_line1:
          type:
          - string
          - 'null'
          description: "The address line with street number <br/>\n        **(required for shipment purchase)**\n        "
          maxLength: 50
        address_line2:
          type:
          - string
          - 'null'
          description: The address line with suite number
          maxLength: 50
        validate_location:
          type:
          - boolean
          - 'null'
          default: false
          description: Indicate if the address should be validated
      required:
      - country_code
  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: Reading scope
            write: Writing scope
            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:'
x-provenance:
  method: harvested
  publisher: Karrio
  source: https://www.karrio.io/openapi.yml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)