Swiftly · Authentication Profile

Swiftly Authentication

Authentication

Swiftly secures its APIs with apiKey and http across 2 declared security schemes, as derived from its OpenAPI definitions.

RetailRetail MediaGroceryAdvertisingLoyaltyCouponsCommerceArtificial IntelligenceMobileCompany
Methods: apiKey, http Schemes: 2 OAuth flows: API key in: header

Security Schemes

SwiftlyAccountKey apiKey
· in: header ()
BearerToken http
scheme: bearer

Source

Authentication Profile

swiftly-authentication.yml Raw ↑
generated: '2026-08-05'
method: probed
source: >-
  live probes of https://prod.swiftlyapi.net/graphql plus the first-party Swiftly web
  client bundle shipped on savemart.com (a Swiftly-built storefront)
docs: null
docs_note: >-
  Swiftly publishes no authentication documentation. There is no developer portal, no
  API reference and no /.well-known/openid-configuration or
  /.well-known/oauth-authorization-server on any Swiftly host (both 404). Everything
  below was observed from live responses and from the JavaScript Swiftly ships to
  shopper browsers — it is not a provider claim.
summary:
  types: [apiKey, http]
  api_key_in: [header]
  oauth2_flows: []
  anonymous_introspection: true
schemes:
- name: SwiftlyAccountKey
  type: apiKey
  in: header
  parameter_name: X-Swiftly-Account-Key
  description: >-
    Per-tenant (retailer chain) key the Swiftly client sends on every GraphQL call. Without
    a chain context the API returns
    "IllegalStateException: Chain not available in session context".
  evidence: >-
    Header literal "X-Swiftly-Account-Key" found in
    https://savemart.com/build/entry.client-UHAB2OGQ.js (Swiftly-built storefront)
  sources: [graphql/swiftly-shopper.graphql]
- name: BearerToken
  type: http
  scheme: bearer
  description: >-
    Shopper-scoped access token carried in the Authorization header. Required for
    shopper-account, loyalty-account and reward mutations. Anonymous calls to those
    fields return "InvalidTokenException: Invalid access token."
  evidence: >-
    POST {getShopperAccount(swiftlyShopperId:"test"){__typename}} to
    https://prod.swiftlyapi.net/graphql returned InvalidTokenException (HTTP 200,
    GraphQL errors[])
  sources: [graphql/swiftly-shopper.graphql]
context_headers:
- name: X-Swiftly-Account-Key
  purpose: retailer chain / tenant selection
- name: X-Swiftly-User-Agent
  purpose: client identification
- name: X-Swiftly-Lat
  purpose: shopper latitude, used for store resolution
- name: X-Swiftly-Lng
  purpose: shopper longitude, used for store resolution
open_surface:
  introspection: true
  note: >-
    GraphQL introspection is enabled for anonymous callers and returns the full 308-type
    schema (45 queries, 11 mutations). Schema discovery therefore requires no credential;
    data access does.
x-evidence:
  fetched: '2026-08-05'
  url: https://prod.swiftlyapi.net/graphql
  http_status: 200
  probes:
  - {url: 'https://prod.swiftlyapi.net/.well-known/openid-configuration', http_status: 404}
  - {url: 'https://prod.swiftlyapi.net/.well-known/oauth-authorization-server', http_status: 404}
  - {url: 'https://swiftly.com/.well-known/openid-configuration', http_status: 404}