Thanx · OAuth Scopes
Thanx OAuth Scopes
OAuth 2.0
searched
Thanx uses OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (e.g. client-credentials or role-based authorization) rather than per-scope consent.
This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.
RestaurantLoyaltyGuest EngagementMarketingCRMOnline OrderingWebhookPointsRewardsCampaigns
Scopes: 0
Flows:
Method: searched
Scopes (0)
Thanx implements OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (client-credentials or role-based authorization) rather than per-scope consent.
📄 Provider scope reference: https://docs.thanx.com/partner/metadata/get-scopes
Source
OAuth Scopes
generated: '2026-08-13'
method: searched
docs: https://docs.thanx.com/partner/metadata/get-scopes
source: >-
Read from the "Scope required" callout published on every Partner API endpoint page across
https://docs.thanx.com (Auth, Campaigns, Feedbacks, Issuance Jobs, Promotions, Purchases,
Reward Templates, Subscribers, Tags, Users), plus
https://docs.thanx.com/partner/overview (scope model) and
https://docs.thanx.com/consumer/sso/overview (consumer OAuth scope).
description: >-
Thanx's Partner API is scope-limited: each API credential is provisioned with an agreed-upon
set of scopes granting access to a subset of endpoints, and every Partner endpoint page names
the scope it requires. The scopes are NOT declared in an OpenAPI oauth2 securityScheme —
running derive-oauth-scopes.py against openapi/ found zero oauth2 schemes and therefore zero
scopes — so this catalog is read from the documentation, endpoint by endpoint. Scopes are
introspectable at runtime: GET /partner/scopes returns the list the calling credential holds.
model:
grant: Assigned by Thanx per API credential during partnership onboarding; not self-serve.
introspection:
operation: getScopes
path: GET /partner/scopes
returns: '{"scopes": ["subscribers.write"]}'
docs: https://docs.thanx.com/partner/metadata/get-scopes
naming: '<resource>.<action> — read / write, plus the resource-specific issue and create verbs'
enforcement_status: 403 Forbidden when the credential lacks the required scope
consumer_api: >-
The Consumer API does not use these scopes. Thanx SSO issues user access tokens through the
OAuth 2.0 authorization code grant with the scope value "passwordless"; authorization is by
user identity, not by scope.
scopes:
- name: auth.create
description: Mint privileged end-user access tokens on behalf of a merchant's users.
operations: [createToken]
endpoints: ['POST /partner/oauth/token']
docs: https://docs.thanx.com/partner/auth/create-token
- name: rewards.issue
description: >-
Create and read campaigns and reward templates, and issue or revoke rewards against a
campaign variant. The broadest Partner scope — it spans the whole issuance flow.
operations: [createCampaign, listCampaigns, getCampaign, issueRewards, getIssuanceJob, revokeIssuanceJob]
endpoints:
- 'POST /partner/campaigns'
- 'GET /partner/campaigns'
- 'GET /partner/campaigns/{id}'
- 'POST /partner/campaigns/issue'
- 'GET /partner/issuance_jobs/{id}'
- 'POST /partner/issuance_jobs/{id}/revoke'
- 'GET /partner/reward_templates'
- 'GET /partner/reward_templates/{id}'
docs: https://docs.thanx.com/partner/campaigns/issue-rewards
- name: subscribers.write
description: Ingest subscribers (email/SMS marketing opt-ins) for a merchant.
operations: [createSubscriber]
endpoints: ['POST /partner/subscribers']
docs: https://docs.thanx.com/partner/subscribers/create-subscriber
- name: purchases.write
description: Submit purchases to Thanx for processing so loyalty points accrue.
operations: [createPurchase]
endpoints: ['POST /partner/purchases']
docs: https://docs.thanx.com/partner/purchases/create-purchase
- name: users.read
description: Read the users of a merchant, individually or as a collection.
operations: [getPartnerUser, getPartnerUsers]
endpoints: ['GET /partner/users', 'GET /partner/users/{id}']
docs: https://docs.thanx.com/partner/users/get-users
- name: users.write
description: Update a merchant's user records.
operations: []
endpoints: ['PUT /partner/users/{id}']
docs: https://docs.thanx.com/partner/users/update-user
note: Documented endpoint not yet captured in openapi/.
- name: tags.read
description: Read attribute tags on a merchant's users.
operations: []
endpoints: ['GET /partner/tags']
docs: https://docs.thanx.com/partner/tags/get-tags
note: Documented endpoint not yet captured in openapi/.
- name: tags.write
description: Create, update and delete attribute tags.
operations: []
endpoints: ['PUT /partner/tags', 'DELETE /partner/tags']
docs: https://docs.thanx.com/partner/tags/upsert-tags
note: Documented endpoints not yet captured in openapi/.
- name: feedbacks.read
description: Read guest feedback records for a merchant.
operations: []
endpoints: ['GET /partner/feedbacks']
docs: https://docs.thanx.com/partner/feedbacks/get-feedbacks
note: Documented endpoint not yet captured in openapi/.
- name: feedbacks.write
description: Respond to a guest feedback record.
operations: []
endpoints: ['POST /partner/feedbacks/{id}/response']
docs: https://docs.thanx.com/partner/feedbacks/feedback-response
note: Documented endpoint not yet captured in openapi/.
- name: promos.read
description: Read promotions and the codes in a promotion's active pool.
operations: []
endpoints: ['GET /partner/promotions', 'GET /partner/promotions/{id}', 'GET /partner/promotions/{id}/codes']
docs: https://docs.thanx.com/partner/promotions/overview
note: Documented endpoints not yet captured in openapi/.
- name: promos.write
description: Create promotions and generate batches of single-use promotion codes.
operations: []
endpoints: ['POST /partner/promotions', 'POST /partner/promotions/{id}/codes']
docs: https://docs.thanx.com/partner/promotions/create-promotion
note: >-
Documented endpoints not yet captured in openapi/. Both accept X-Idempotency-Key — see
conventions/thanx-conventions.yml.
consumer_oauth:
grant_type: authorization_code
spec: RFC 6749 §4.1
scope_value: passwordless
endpoints:
- 'POST /oauth/authorize — passwordless flow, emails an auth code link'
- 'POST /oauth/authorize-cross-domain — issues a code for an already-authenticated user, no email'
- 'POST /oauth/token — exchange authorization code for access token'
- 'POST /oauth/revoke — revoke an access token'
docs: https://docs.thanx.com/consumer/sso/overview
summary:
scope_count: 12
scopes_in_openapi: 0
scopes_documented: 12
gap: >-
Every Partner scope is documented in prose but none is declared in an OpenAPI
securityScheme, so no generated client or agent can enforce or discover them from the spec.