KORE Wireless · Authentication Profile

Kore Wireless Authentication

Authentication

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

TelecommunicationsUnited StatesIoTeSIMConnectivityMVNOSIM ManagementRoamingMessagingSMSDevice ManagementNetwork APIs
Methods: oauth2, apiKey, http Schemes: 3 OAuth flows: clientCredentials API key in: header

Security Schemes

Auth oauth2
· flows: clientCredentials
api_key apiKey
· in: header (x-api-key)
accountSid_authToken http
scheme: basic

Source

Authentication Profile

Raw ↑
generated: '2026-07-25'
method: searched
source: openapi/kore-wireless-api-clients.yml, openapi/kore-wireless-connectivity-pro.yml,
  openapi/kore-wireless-iam.yml, openapi/kore-wireless-programmable-wireless.yml,
  openapi/kore-wireless-sms.yml, openapi/kore-wireless-supersim.yml, openapi/kore-wireless-webhook.yml
docs: https://docs.korewireless.com/developers/api-management/auth
client_docs: https://docs.korewireless.com/developers/api-management/api-clients
refresh_guide: https://docs.korewireless.com/developers/how-to/apis/refresh-api-access-token
summary:
  primary: oauth2 client_credentials
  types: [oauth2, apiKey, http]
  api_key_in: [header]
  oauth2_flows: [clientCredentials]
  bearer_header: 'Authorization: Bearer {access_token}'
  credential_unit: API Client (Client ID + Client Secret), created per account in the
    console
primary_flow:
  name: OAuth 2.0 Client Credentials (RFC 6749 section 4.4)
  token_endpoint: https://api.korewireless.com/api-services/v1/auth/token
  method: POST
  content_type: application/x-www-form-urlencoded
  parameters: [grant_type=client_credentials, client_id, client_secret]
  example_request: |
    curl -X POST https://api.korewireless.com/api-services/v1/auth/token \
      --header 'cache-control: no-cache' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data "grant_type=client_credentials" \
      --data "client_id=$KORE_CLIENT_ID" \
      --data "client_secret=$KORE_CLIENT_SECRET"
  response_shape: '{access_token, expires_in, token_type: Bearer, scope}'
  token_format: RS256-signed JWT (iss/aud/sub/exp/iat/jti plus KORE claims account-id,
    client-type, client_id, scopes)
  expires_in_unit: seconds
  expiry_options: [1 hour, 24 hours, 30 days, 24 months]
  refresh: no refresh token — repeat the client-credentials exchange
  spec: openapi/kore-wireless-token.yml
credentials:
  where: API Client details in the KORE console (https://build.korewireless.com/clients/list)
  client_secret_visibility: shown once at creation and never retrievable again
  client_id_visibility: always visible
  scoping: Client Type (Admin or Standard) plus selected Global Resources and Products
  locking: a client can be locked so only Account Owner, Account Admins and the Client
    Owner may edit it
  per_account: a client targets exactly one account; child accounts each need their
    own client
errors:
- {stage: token exchange, http: 401, body: '{"error":"unauthorized_client","error_description":"Invalid
    client or Invalid client credentials"}'}
- {stage: API call, http: 403, body: '{"message":"User is not authorized to access
    this resource with an explicit deny","error":"Invalid or expired token"}'}
schemes:
- name: Auth
  type: oauth2
  flows:
  - {flow: clientCredentials, tokenUrl: 'https://api.korewireless.com/api-services/v1/auth/token',
    scopes: 0}
  sources:
  - openapi/kore-wireless-api-clients.yml
  - openapi/kore-wireless-connectivity-pro.yml
  - openapi/kore-wireless-iam.yml
  - openapi/kore-wireless-programmable-wireless.yml
  - openapi/kore-wireless-sms.yml
  - openapi/kore-wireless-supersim.yml
  - openapi/kore-wireless-webhook.yml
  status: current
- name: api_key
  type: apiKey
  in: header
  parameter: x-api-key
  sources: [openapi/kore-wireless-connectivity-pro.yml, openapi/kore-wireless-sms.yml]
  status: declared in spec, not documented
  note: >-
    Both specs declare an x-api-key header scheme alongside the OAuth scheme. The
    developer documentation describes only the OAuth 2.0 path, so treat the API key
    as a legacy developer-portal artifact rather than a supported alternative.
- name: accountSid_authToken
  type: http
  scheme: basic
  sources: [openapi/kore-wireless-supersim.yml]
  status: legacy (Twilio IoT inheritance)
  note: >-
    The Super SIM spec retains the Twilio-era Account SID + Auth Token HTTP Basic
    scheme next to the KORE OAuth scheme. Migration guidance moves callers to
    KORE client credentials.
webhook_direction:
  description: authenticity of KORE-to-customer callbacks is a separate contract —
    KORE signs every event with the kore-signature header.
  docs: https://docs.korewireless.com/developers/how-to/webhooks/validate-webhook-signatures
  artifact: asyncapi/kore-wireless-event-streams-webhooks.yml
cross_links:
  scopes: scopes/kore-wireless-scopes.yml
  conventions: conventions/kore-wireless-conventions.yml
  errors: errors/kore-wireless-error-codes.yml