As a LoyaltyLion partner, you can authenticate with our API as an OAuth client. Our server implements the OAuth 2.0 specification.
OAuth authentication is designed only for LoyaltyLion partners building
apps to be used across many stores. If you’re building an integration for a
single store, use an API key.
Before you can authenticate with OAuth, you’ll need to register your app with LoyaltyLion. To register a new OAuth app with LoyaltyLion, please email partnersupport@loyaltylion.com with the following information:
Required
Description
name
Your company/app name
description
Short description (max 150 characters) of your app
url
URL to your company/app
image_url
Copy of your company logo or link to a press pack
install_url
Your install URL, must be https
Merchants who initiate installation from their LoyaltyLion account are sent here. It should require login / signup to your app. Once the merchant is authenticated with your app, it should redirect into the LoyaltyLion OAuth approval flow.
redirect_url
Your redirect URL, must be https
We redirect merchants here once they approve access for your app, for example: https://app.example.com/auth/loyaltylion. Landing on this page should initiate token exchange
Once we’ve approved your OAuth 2.0 app, we’ll provide you with a client id
and secret. Your client secret must be kept private. If you believe it has
been compromised, please contact us immediately.
To kick off the OAuth flow, start by sending the user to our authorize URL, https://app.loyaltylion.com/oauth/authorize, with the following parameters:
The return URL, which must match the URL provided to us at registration
state
no
An encoded string that can be used to lookup and restore the previous state of your app, for example to identify users who are sent back to your app after authorization is complete
If the user approves the request, we’ll redirect them to your redirect_uri including a code as query param you can swap for an access_token.For example:
Once you’ve received the access token, use it to make authenticated API requests allowed by the approved scopes. To do so, pass the access token using the bearer authentication scheme.
Scopes let you specify the type of access your app needs, and limit the capability of the associated access tokens. When making your initial request to our authorize URL, you should pass through the scopes needed by your app as a comma separated list.Our webhooks API is available to all access tokens, but you can only create webhooks for resources permitted by the token’s scope.
Scope
Description
read_customers
Read-only access to customers, including their points, tiers, rewards and activities. Doesn’t include orders.
write_customers
Read and write access to customers. Can add and remove customer points, change tiers and trigger customer activities.
read_unsubscribes
Read-only access to the loyalty email unsubscribes list and unsubscribes webhook
write_unsubscribes
Read and write access to the loyalty email unsubscribes list. Can add emails to the list.
read_orders
Read-only access to orders.
write_orders
Read and write access to orders. Can create, update and cancel orders.
write_configuration
Modify program configuration, such as rules and rewards
read_reviews
Read-only access to reviews.
write_reviews
Read and write access to reviews. Can create, update and delete reviews.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LoyaltyLion","colors":{"primary":"#7533f2","light":"#BEAAFF","dark":"#5C18D6"},"logo":{"light":"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/logo/loyaltylion-logo-black.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=a8042001d5f93ef344ce190752bfba7d","dark":"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/logo/loyaltylion-logo-white.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=37ab9b9089a7e1a44d13df2ae9398de1"},"favicon":"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/images/favicon.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=2d71e6cbb2847c7a83d1d3a4abb6d05e","api":{"playground":{"display":"simple"}},"background":{"color":{}},"navbar":{"links":[{"href":"https://status.loyaltylion.com","label":"Status"},{"href":"https://help.loyaltylion.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.loyaltylion.com"}},"footer":{"socials":{"x":"https://x.com/loyaltylionhq","github":"https://github.com/loyaltylion","linkedin":"https://linkedin.com/company/loyaltylion"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"loyaltylion","hasAudioNarration":false,"actualSubdomain":"loyaltylion","customDomains":["developers.loyaltylion.com"],"gitSource":{"type":"github","owner":"loyaltylion","repo":"dev-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae1b5305ca9b4a2f462dff2","collectionId":"dd1c153e-eca5-4bac-aa9e-0ac53c122973","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae1b5305ca9b4a2f462dff2"},"feedback":{"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1b5305ca9b4a2f462dff2","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Admin API","count":67},{"language":"default","tag":"Resources","count":56},{"language":"default","tag":"SDK","count":37},{"language":"default","tag":"Headless API","count":34},{"language":"default","tag":"Webhooks","count":25},{"language":"default","tag":"Webhook events","count":21},{"language":"default","tag":"Embeddable components","count":15},{"language":"default","tag":"Customers","count":13},{"language":"default","tag":"LoyaltyLion SDK","count":13},{"language":"default","tag":"Standalone components","count":12}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".not-prose.mb-6{display:flex;flex-wrap:wrap;gap:0 1.5rem}.not-prose.mb-6>li{margin-left:0!important}"}],"page":{"pagePath":"api-reference/authentication/oauth","slug":"/api-reference/authentication/oauth","pageMetadata":{"title":"OAuth","description":null,"href":"/api-reference/authentication/oauth"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Check,CodeBlock,Heading,Info,Table,Warning}=_components;if(!Check)_missingMdxReference(`Check`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`As a LoyaltyLion partner, you can authenticate with our API as an OAuth client. Our server implements the `,_jsx(_components.a,{href:`https://tools.ietf.org/html/rfc6749`,children:`OAuth 2.0 specification`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`OAuth authentication is designed `,_jsx(_components.strong,{children:`only`}),` for LoyaltyLion partners building\napps to be used across many stores. If you’re building an integration for a\nsingle store, `,_jsx(_components.a,{href:`/api-reference/authentication/api-keys`,children:`use an API key`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`register-your-oauth-app`,children:`Register your OAuth app`}),`\n`,_jsxs(_components.p,{children:[`Before you can authenticate with OAuth, you’ll need to register your app with LoyaltyLion. To register a new OAuth app with LoyaltyLion, please email `,_jsx(_components.a,{href:`mailto:partnersupport@loyaltylion.com`,children:`partnersupport@loyaltylion.com`}),` with the following information:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`Your company/app name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`Short description (max 150 characters) of your app`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`url`})}),_jsx(_components.td,{children:`URL to your company/app`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`image_url`})}),_jsx(_components.td,{children:`Copy of your company logo or link to a press pack`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`install_url`})}),_jsxs(_components.td,{children:[`Your install URL, must be `,_jsx(_components.code,{children:`https`}),` `,_jsxs(Info,{children:[`Merchants who initiate installation from their LoyaltyLion account are sent here. It should require login / signup to your app. Once the merchant is authenticated with your app, it should redirect into the `,_jsx(_components.a,{href:`#initiate-oauth-2-0-approval`,children:`LoyaltyLion OAuth approval flow`}),`.`]})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`redirect_url`})}),_jsxs(_components.td,{children:[`Your redirect URL, must be `,_jsx(_components.code,{children:`https`}),` `,_jsxs(Info,{children:[` We redirect merchants here once they approve access for your app, for example: `,_jsx(_components.code,{children:`https://app.example.com/auth/loyaltylion`}),`. Landing on this page should initiate `,_jsx(_components.a,{href:`#acquire-an-access-token`,children:`token exchange`}),` `]})]})]})]})]}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[`Once we’ve approved your OAuth 2.0 app, we’ll provide you with a `,_jsx(_components.strong,{children:`client id`}),`\nand `,_jsx(_components.strong,{children:`secret`}),`. Your client secret must be kept private. If you believe it has\nbeen compromised, please contact us immediately.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`perform-the-oauth-2-0-flow`,children:`Perform the OAuth 2.0 flow`}),`\n`,_jsx(Heading,{level:`3`,id:`initiate-oauth-2-0-approval`,children:`Initiate OAuth 2.0 approval`}),`\n`,_jsxs(_components.p,{children:[`To kick off the OAuth flow, start by sending the user to our authorize URL, `,_jsx(_components.code,{children:`https://app.loyaltylion.com/oauth/authorize`}),`, with the following parameters:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Param`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`client_id`})}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Your client id`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`scope`})}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[`A comma separated list of `,_jsx(_components.a,{href:`#resource-scopes`,children:`resource scopes`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`redirect_uri`})}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`The return URL, which must match the URL provided to us at registration`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`state`})}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`An encoded string that can be used to lookup and restore the previous state of your app, for example to identify users who are sent back to your app after authorization is complete`})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`example-authorize-url`,children:`Example authorize URL:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# client_id: 317979793529`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# scope: read_customers`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# redirect_uri: https://api.example.com/auth/loyaltylion`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`https://app.loyaltylion.com/oauth/authorize?client_id`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`=317979793529`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`scope`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`read_customers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`redirect_uri`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`https%3A%2F%2Fapi.example.com%2Fauth%2Floyaltylion`})]}),`\n`]})})}),`\n`,_jsx(Check,{children:_jsx(_components.p,{children:`When a user is redirected to the authorize URL, we’ll show them your app name,\ndescription and logo and ask them to approve the requested scopes.`})}),`\n`,_jsx(Heading,{level:`3`,id:`acquire-access-token`,children:`Acquire access token`}),`\n`,_jsxs(_components.p,{children:[`If the user approves the request, we’ll redirect them to your `,_jsx(_components.code,{children:`redirect_uri`}),` including a `,_jsx(_components.code,{children:`code`}),` as query param you can swap for an `,_jsx(_components.code,{children:`access_token`}),`.`]}),`\n`,_jsx(_components.p,{children:`For example:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://app.example.com/auth/loyaltylion?code=fe53739dab6d76cc`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`To exchange the code for a permanent access token, your server should make a `,_jsx(_components.code,{children:`POST`}),` request with the code, your client id and your client secret.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# client_id: 317979793529`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# client_secret: 97b0dc6dde30f189`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# code: fe53739dab6d76cc`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://app.loyaltylion.com/oauth/access-token'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'client_id=317979793529\u0026client_secret=97b0dc6dde30f189\u0026code=fe53739dab6d76cc'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --include`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`If the exchange is successful, we’ll return a JSON response containing your permanent access token and a comma separated list of the approved scopes:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"access_token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"e1c752f1b5cd8b743148a586e573b679\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"read_customers\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`use-access-token`,children:`Use access token`}),`\n`,_jsxs(_components.p,{children:[`Once you’ve received the access token, use it to make authenticated API requests allowed by the approved scopes. To do so, pass the access token using the `,_jsx(_components.a,{href:`https://tools.ietf.org/html/rfc6750`,children:`bearer authentication scheme`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# access_token: e1c752f1b5cd8b743148a586e573b679`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Bearer e1c752f1b5cd8b743148a586e573b679'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.loyaltylion.com/v2/customers'`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`resource-scopes`,children:`Resource scopes`}),`\n`,_jsx(_components.p,{children:`Scopes let you specify the type of access your app needs, and limit the capability of the associated access tokens. When making your initial request to our authorize URL, you should pass through the scopes needed by your app as a comma separated list.`}),`\n`,_jsx(_components.p,{children:`Our webhooks API is available to all access tokens, but you can only create webhooks for resources permitted by the token’s scope.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scope`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_customers`})}),_jsx(_components.td,{children:`Read-only access to customers, including their points, tiers, rewards and activities. Doesn’t include orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`write_customers`})}),_jsx(_components.td,{children:`Read and write access to customers. Can add and remove customer points, change tiers and trigger customer activities.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_unsubscribes`})}),_jsx(_components.td,{children:`Read-only access to the loyalty email unsubscribes list and unsubscribes webhook`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`write_unsubscribes`})}),_jsx(_components.td,{children:`Read and write access to the loyalty email unsubscribes list. Can add emails to the list.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_orders`})}),_jsx(_components.td,{children:`Read-only access to orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`write_orders`})}),_jsx(_components.td,{children:`Read and write access to orders. Can create, update and cancel orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`write_configuration`})}),_jsx(_components.td,{children:`Modify program configuration, such as rules and rewards`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_reviews`})}),_jsx(_components.td,{children:`Read-only access to reviews.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`write_reviews`})}),_jsx(_components.td,{children:`Read and write access to reviews. Can create, update and delete reviews.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"OAuth","description":null,"href":"/api-reference/authentication/oauth"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Register your OAuth app","slug":"register-your-oauth-app","depth":2,"children":[]},{"title":"Perform the OAuth 2.0 flow","slug":"perform-the-oauth-2-0-flow","depth":2,"children":[{"title":"Initiate OAuth 2.0 approval","slug":"initiate-oauth-2-0-approval","depth":3,"children":[]},{"title":"Example authorize URL:","slug":"example-authorize-url","depth":4,"children":[]},{"title":"Acquire access token","slug":"acquire-access-token","depth":3,"children":[]},{"title":"Use access token","slug":"use-access-token","depth":3,"children":[]}]},{"title":"Resource scopes","slug":"resource-scopes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"loyaltylion","siteName":"LoyaltyLion","title":"OAuth - LoyaltyLion","navMaps":{"firstHrefInVersion":{"v2":{"href":"/api-reference/authentication/oauth","matchLevel":0},"2025-06":{"href":"/headless-api/introduction","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T09:43:17.048Z","originalFileLocation":"api-reference/authentication/oauth.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"LoyaltyLion\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"OAuth - LoyaltyLion\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LoyaltyLion\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.loyaltylion.com/api-reference/authentication/oauth\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://loyaltylion.mintlify.app/_mintlify/api/og/v2?division=Authentication\u0026amp;title=OAuth\u0026amp;theme=ba374c8767f6d28b4848a12c\u0026amp;signature=c33403608cd728a5028d9ae4943a9093721ac90f06dc4f72e8b310459338e90a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"OAuth - LoyaltyLion\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://loyaltylion.mintlify.app/_mintlify/api/og/v2?division=Authentication\u0026amp;title=OAuth\u0026amp;theme=ba374c8767f6d28b4848a12c\u0026amp;signature=c33403608cd728a5028d9ae4943a9093721ac90f06dc4f72e8b310459338e90a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/loyaltylion/-HHkKRQ0-0oU9Wqj/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LoyaltyLion\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7533f2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.loyaltylion.com/api-reference/authentication/oauth\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/authentication/oauth.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.loyaltylion.com/#organization\",\"name\":\"LoyaltyLion\",\"url\":\"https://developers.loyaltylion.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/loyaltylion/qoWgzO-fbs5_an5D/logo/loyaltylion-logo-black.svg?fit=max\u0026auto=format\u0026n=qoWgzO-fbs5_an5D\u0026q=85\u0026s=a8042001d5f93ef344ce190752bfba7d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.loyaltylion.com#website\",\"name\":\"LoyaltyLion\",\"url\":\"https://developers.loyaltylion.com\",\"publisher\":{\"@id\":\"https://developers.loyaltylion.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth#webpage\",\"url\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth\",\"name\":\"OAuth\",\"dateModified\":\"2026-10-27T09:43:17.048Z\",\"isPartOf\":{\"@id\":\"https://developers.loyaltylion.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Admin API\",\"item\":\"https://developers.loyaltylion.com/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication\",\"item\":\"https://developers.loyaltylion.com/api-reference/authentication/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"OAuth\",\"item\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth#article\",\"headline\":\"OAuth\",\"name\":\"OAuth\",\"url\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth\",\"mainEntityOfPage\":{\"@id\":\"https://developers.loyaltylion.com/api-reference/authentication/oauth#webpage\"},\"dateModified\":\"2026-10-27T09:43:17.048Z\",\"publisher\":{\"@id\":\"https://developers.loyaltylion.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.loyaltylion.com#website\"}}]}\u003c/script>","siteName":"LoyaltyLion","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/introduction"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/overview"}]},{"tab":"Admin API","versions":[{"version":"v2","default":true,"groups":[{"group":"Admin API","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"group":"Authentication","pages":[{"title":"Overview","href":"/api-reference/authentication/overview"},{"title":"API keys","description":null,"href":"/api-reference/authentication/api-keys"},{"title":"OAuth","href":"/api-reference/authentication/oauth"},{"title":"Token \u0026 secret (deprecated)","description":null,"href":"/api-reference/authentication/token-secret"}]},{"title":"Pagination","href":"/api-reference/pagination"}]},{"group":"Resources","pages":[{"group":"Identity","pages":[{"title":"Who Am I","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/identity/whoami","href":"/api-reference/v2/resources/whoami"}]},{"group":"Customers","pages":[{"title":"List Customers","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers","href":"/api-reference/v2/resources/customers/list-customers"},{"title":"Update Customer","version":"v2","openapi":"api-reference/v2/openapi.json PATCH /v2/customers/{merchant_id}","href":"/api-reference/v2/resources/customers/update-customer"},{"title":"Add Points","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/points","href":"/api-reference/v2/resources/customers/add-points"},{"title":"Remove Points","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/remove_points","href":"/api-reference/v2/resources/customers/remove-points"},{"title":"List Available Rewards","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/{merchant_id}/available_rewards","href":"/api-reference/v2/resources/customers/rewards/list-available-rewards"},{"title":"Redeem Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/claimed_rewards","href":"/api-reference/v2/resources/customers/rewards/redeem-reward"},{"title":"Refund Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/{merchant_id}/claimed_rewards/{claimed_reward_id}/refund","href":"/api-reference/v2/resources/customers/rewards/refund-reward"},{"title":"List Transactions","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/{merchant_id}/transactions","href":"/api-reference/v2/resources/customers/list-transactions"}]},{"group":"Activities","pages":[{"title":"List Activities","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/activities","href":"/api-reference/v2/resources/activities/list-activities"},{"title":"Create Activity","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/activities","href":"/api-reference/v2/resources/activities/create-activity"},{"title":"Update Activity","version":"v2","openapi":"api-reference/v2/openapi.json PUT /v2/activities/{name}/{merchant_id}","href":"/api-reference/v2/resources/activities/update-activity"}]},{"group":"Transactions","pages":[{"title":"List Transactions","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/transactions","href":"/api-reference/v2/resources/transactions/list-transactions"}]},{"group":"Orders","pages":[{"title":"List Orders","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/orders","href":"/api-reference/v2/resources/orders/list-orders"},{"title":"Get Order","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/orders/{merchant_id}","href":"/api-reference/v2/resources/orders/get-order"},{"title":"Create Order","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/orders","href":"/api-reference/v2/resources/orders/create-order"},{"title":"Update Order","version":"v2","openapi":"api-reference/v2/openapi.json PUT /v2/orders/{merchant_id}","href":"/api-reference/v2/resources/orders/update-order"}]},{"group":"Sites","pages":[{"title":"List Sites","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/sites","href":"/api-reference/v2/resources/sites/list-sites"},{"title":"Create WebView Session","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/sites/{site_id}/webviews/sessions","href":"/api-reference/v2/resources/sites/create-webview-session"}]},{"group":"Reviews","pages":[{"title":"Create Review","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/reviews/{platform}","href":"/api-reference/v2/resources/reviews/create-review"},{"title":"Update Review","version":"v2","openapi":"api-reference/v2/openapi.json PUT /v2/reviews/{platform}/{merchant_id}","href":"/api-reference/v2/resources/reviews/update-review"},{"title":"Delete Review","version":"v2","openapi":"api-reference/v2/openapi.json DELETE /v2/reviews/{platform}/{merchant_id}","href":"/api-reference/v2/resources/reviews/delete-review"}]},{"group":"Rewards","pages":[{"title":"Enable Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/rewards/{reward_id}/enable","href":"/api-reference/v2/resources/rewards/enable-reward"},{"title":"Disable Reward","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/rewards/{reward_id}/disable","href":"/api-reference/v2/resources/rewards/disable-reward"}]},{"group":"Emails","pages":[{"title":"List Unsubscribes","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/loyalty_emails/unsubscribes","href":"/api-reference/v2/resources/emails/list-unsubscribes"},{"title":"Create Unsubscribe","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/loyalty_emails/unsubscribes","href":"/api-reference/v2/resources/emails/create-unsubscribe"}]},{"group":"Exports","pages":[{"title":"Customer exports","version":"v2","href":"/api-reference/v2/resources/customers/exports/overview"},{"title":"Create Export","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/customers/exports","href":"/api-reference/v2/resources/customers/exports/create-export"},{"title":"Get Export","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/exports/{id}","href":"/api-reference/v2/resources/customers/exports/get-export"},{"title":"List Exports","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/customers/exports","href":"/api-reference/v2/resources/customers/exports/list-exports"}]},{"group":"Webhooks","pages":[{"title":"List Webhooks","version":"v2","openapi":"api-reference/v2/openapi.json GET /v2/webhooks","href":"/api-reference/v2/resources/webhooks/list-webhooks"},{"title":"Create Webhook","version":"v2","openapi":"api-reference/v2/openapi.json POST /v2/webhooks","href":"/api-reference/v2/resources/webhooks/create-webhook"},{"title":"Delete Webhook","version":"v2","openapi":"api-reference/v2/openapi.json DELETE /v2/webhooks/{webhook_id}","href":"/api-reference/v2/resources/webhooks/delete-webhook"}]}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/api-reference/v2/webhooks/overview"},{"group":"Webhook events","pages":[{"title":"customers/update","href":"/api-reference/v2/webhooks/events/customers-update"},{"title":"loyalty_emails/unsubscribe","href":"/api-reference/v2/webhooks/events/loyalty-emails-unsubscribe"},{"title":"rewards/store_fulfilment","href":"/api-reference/v2/webhooks/events/rewards-store-fulfilment"},{"title":"receipts/manual_approval_required","href":"/api-reference/v2/webhooks/events/receipts-manual-approval-required"},{"title":"program_events/customer.enrolled","href":"/api-reference/v2/webhooks/events/program-events/customer-enrolled"},{"title":"program_events/customer.tier_upgraded","href":"/api-reference/v2/webhooks/events/program-events/customer-tier-upgraded"},{"title":"program_events/customer.tier_downgraded","href":"/api-reference/v2/webhooks/events/program-events/customer-tier-downgraded"},{"title":"program_events/customer.reward_available_notification","href":"/api-reference/v2/webhooks/events/program-events/customer-reward-available-notification"},{"title":"program_events/customer.recurring_reward_available_reminder","href":"/api-reference/v2/webhooks/events/program-events/customer-recurring-reward-available-reminder"},{"title":"program_events/customer.claimed_reward","href":"/api-reference/v2/webhooks/events/program-events/customer-claimed-reward"},{"title":"program_events/customer.points_earned","href":"/api-reference/v2/webhooks/events/program-events/customer-points-earned"},{"title":"program_events/customer.referral_complete","href":"/api-reference/v2/webhooks/events/program-events/customer-referral-complete"},{"title":"program_events/customer.rule_completed","href":"/api-reference/v2/webhooks/events/program-events/customer-rule-completed"},{"title":"program_events/customer.approaching_tier_upgrade","href":"/api-reference/v2/webhooks/events/program-events/customers-approaching-tier-upgrade"},{"title":"program_events/customer.moved_to_defected_segment","href":"/api-reference/v2/webhooks/events/program-events/customer-moved-to-defected-segment"},{"title":"program_events/customer.moved_to_loyal_segment","href":"/api-reference/v2/webhooks/events/program-events/customer-moved-to-loyal-segment"},{"title":"program_events/customer.moved_to_at_risk_segment","href":"/api-reference/v2/webhooks/events/program-events/customer-moved-to-at-risk-segment"},{"title":"program_events/customer.approaching_points_expiration","href":"/api-reference/v2/webhooks/events/program-events/customer-approaching-points-expiration"},{"title":"program_events/customer.approaching_reward_expiration","href":"/api-reference/v2/webhooks/events/program-events/customer-approaching-reward-expiration"},{"title":"program_events/customer.receipt_approved","href":"/api-reference/v2/webhooks/events/program-events/customer-receipt-approved"},{"title":"program_events/customer.receipt_declined","href":"/api-reference/v2/webhooks/events/program-events/customer-receipt-declined"}]}]}]}]},{"tab":"Headless API","versions":[{"version":"2025-06","default":true,"groups":[{"group":"Headless API","pages":[{"title":"Introduction","href":"/headless-api/introduction"},{"title":"Customer session tokens","href":"/headless-api/session-tokens"},{"title":"Errors","href":"/headless-api/errors"},{"title":"Changelog","href":"/headless-api/changelog"}]},{"group":"Guides","pages":[{"title":"Referrals","href":"/headless-api/guides/referrals"},{"group":"Shopify Hydrogen","pages":[{"title":"Integrate with Hydrogen","href":"/headless-api/guides/hydrogen/integrate"},{"title":"Free product rewards","href":"/headless-api/guides/hydrogen/free-product-rewards"}]}]},{"group":"Resources","pages":[{"group":"Configuration","pages":[{"title":"Get Configuration","version":"v2","openapi":"headless-api/2025-06/openapi.json GET /headless/2025-06/{site_id}/configuration","href":"/headless-api/2025-06/configuration/get-configuration"}]},{"group":"Customers","pages":[{"title":"Get Customer","version":"v2","openapi":"headless-api/2025-06/openapi.json GET /headless/2025-06/{site_id}/customers/{merchant_id}","href":"/headless-api/2025-06/customers/get-customer"},{"title":"Initialize Session","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/sessions","href":"/headless-api/2025-06/customers/initialize-session"},{"title":"Enroll Customer","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/enroll","href":"/headless-api/2025-06/customers/enroll-customer"},{"title":"Set Birthday","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/birthday","href":"/headless-api/2025-06/customers/set-birthday"},{"title":"Subscribe to Email Marketing","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/customers/{merchant_id}/email_marketing/subscribe","href":"/headless-api/2025-06/customers/subscribe-email-marketing"}]},{"group":"Referrals","pages":[{"title":"Claim Referee Incentive","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/referrals/referee_incentive","href":"/headless-api/2025-06/referrals/claim-referee-incentive"},{"title":"Track Share","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/referrals/shares","href":"/headless-api/2025-06/referrals/track-share"},{"title":"Register Guest Referrer","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/referrals/guest_registrations","href":"/headless-api/2025-06/referrals/register-guest-referrer"}]},{"group":"Reward redemption","pages":[{"title":"Cart Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/cart_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/cart-discount-voucher"},{"title":"Free Shipping Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/free_shipping_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/free-shipping-voucher"},{"title":"Collection Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/collection_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/collection-discount-voucher"},{"title":"Product Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/product_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/product-discount-voucher"},{"title":"Gift Card","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/gift_card/redeem","href":"/headless-api/2025-06/reward-redemption/gift-card"},{"title":"Active Subscription Discount Voucher","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/active_subscription_discount_voucher/redeem","href":"/headless-api/2025-06/reward-redemption/active-subscription-discount-voucher"},{"title":"Active Subscription Product","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/active_subscription_product/redeem","href":"/headless-api/2025-06/reward-redemption/active-subscription-product"},{"title":"Free Product","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/product_cart/redeem","href":"/headless-api/2025-06/reward-redemption/free-product"}]},{"group":"Reward refunds","pages":[{"title":"Free Product","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rewards/product_cart/refund","href":"/headless-api/2025-06/reward-refund/free-product"}]},{"group":"Complete rules","pages":[{"title":"Clickthrough","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/clickthrough/complete","href":"/headless-api/2025-06/complete-rules/clickthrough"},{"title":"Facebook Like","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/facebook_like/complete","href":"/headless-api/2025-06/complete-rules/facebook-like"},{"title":"Instagram Follow","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/instagram_follow/complete","href":"/headless-api/2025-06/complete-rules/instagram-follow"},{"title":"TikTok Follow","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/tiktok_follow/complete","href":"/headless-api/2025-06/complete-rules/tiktok-follow"},{"title":"Twitter/X Follow","version":"v2","openapi":"headless-api/2025-06/openapi.json POST /headless/2025-06/{site_id}/rules/twitter_follow/complete","href":"/headless-api/2025-06/complete-rules/twitter-follow"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/docs/mcp/overview"}]}]},"basePath":"","title":"OAuth - LoyaltyLion","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}