Karrio · Authentication Profile

Karrio Authentication

Authentication

Karrio accepts four credential types, and the one most integrators reach for first is the least obvious: the API token is sent as the HTTP Basic USERNAME with an empty password. All four resolve to the same instance-scoped organization context.

Karrio secures its APIs with apiKey, http, and oauth2 across 4 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

ShippingLogisticsLabel GenerationPackage TrackingCarriersFulfillmentOpen-SourceMulti-CarrierRatingWebhook
Methods: apiKey, http, oauth2 Schemes: 4 OAuth flows: authorizationCode API key in: header

Security Schemes

Token apiKey
· in: header (Authorization)
TokenBasic http
scheme: basic
JWT apiKey
· in: header (Authorization)
OAuth2 oauth2
· flows: authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-08-27'
method: searched
source: >-
  openapi/karrio-api-openapi.yml (Karrio API 2026.1.32) securitySchemes, upgraded with the
  Authentication section of the API reference at https://karrio.io/docs/api-reference and
  the token flow documented at https://karrio.io/docs/developing/api-development.
docs: https://karrio.io/docs/api-reference
provider: Karrio
providerId: karrio
description: >-
  Karrio accepts four credential types, and the one most integrators reach for first is
  the least obvious: the API token is sent as the HTTP Basic USERNAME with an empty
  password. All four resolve to the same instance-scoped organization context.
summary:
  types:
  - apiKey
  - http
  - oauth2
  api_key_in:
  - header
  oauth2_flows:
  - authorizationCode
  primary: Token
  transport_requirement: HTTPS. "All API requests must be made over HTTPS. API requests without authentication will also fail."
schemes:
- name: Token
  type: apiKey
  in: header
  parameter: Authorization
  format: 'Authorization: Token key_xxxxxxxx'
  description: >-
    The primary credential. A long-lived API key issued per organization from Settings ->
    API Keys in the dashboard, or read from the GraphQL `token { key }` query. Carries
    the full privileges of the organization.
  token_prefix: key_
  sources:
  - openapi/karrio-api-openapi.yml
  - https://karrio.io/docs/api-reference
- name: TokenBasic
  type: http
  scheme: basic
  format: '-u key_xxxxxxxx:'
  description: >-
    The SAME API token, supplied as the HTTP Basic username with an empty password. This
    is the form Karrio's own documentation leads with. The trailing colon is required —
    it stops curl prompting for a password.
  quoted: >-
    "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."
  sources:
  - openapi/karrio-api-openapi.yml
  - https://karrio.io/docs/api-reference
- name: JWT
  type: apiKey
  in: header
  parameter: Authorization
  format: 'Authorization: Bearer xxx.xxx.xxx'
  description: >-
    Short-lived JSON Web Token obtained from POST /api/token with username and password,
    refreshed at POST /api/token/refresh, verified at POST /api/token/verify. Used by the
    dashboard and by the GraphQL management API; also the path to issuing an API key
    programmatically.
  operations:
  - '&&authenticate (POST /api/token)'
  - '&&refresh_token (POST /api/token/refresh)'
  - '&&verify_token (POST /api/token/verify)'
  - '&&get_verified_token (POST /api/token/verified)'
  - '&&generate_resource_token (POST /api/tokens)'
  - '&&logout (POST /api/logout)'
  sources:
  - openapi/karrio-api-openapi.yml
- name: OAuth2
  type: oauth2
  flows:
  - flow: authorizationCode
    authorizationUrl: /oauth/authorize/
    tokenUrl: /oauth/token/
    scopes: 3
  description: >-
    Authorization-code flow for third-party applications built on a Karrio instance
    (the app-store / platform surface). Scopes read, write and openid. See
    scopes/karrio-scopes.yml.
  sources:
  - openapi/karrio-api-openapi.yml
modes:
  test_and_live: true
  selected_by: the credential
  note: >-
    Each API key is issued as either test or live. Mode is a property of the credential,
    not of the URL — there is no separate sandbox host. GraphQL calls can also carry
    `x-test-mode: true`. See sandbox/karrio-sandbox.yml.
gaps:
- No /.well-known/openid-configuration or /.well-known/oauth-authorization-server is served on any host (probed 2026-08-27, all 404 or 503), so the OAuth2 and openid surfaces are not discoverable.
- Key rotation, expiry and revocation policy is not published.
- No published distinction between the test-key and live-key string format; both are documented as `key_`.
maintainers:
  - FN: Kin Lane
    email: kin@apievangelist.com

Work with this as data

Every security artifact 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 security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • 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 security artifact
curl "https://apis.io/api/v1/security/karrio-authentication"
All security posture
curl "https://apis.io/api/v1/security?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.