diff --git a/.changeset/wild-rice-carry.md b/.changeset/wild-rice-carry.md new file mode 100644 index 00000000000..39daea4f5b9 --- /dev/null +++ b/.changeset/wild-rice-carry.md @@ -0,0 +1,5 @@ +--- +'@clerk/backend': minor +--- + +Get user's subscription via BillingApi. diff --git a/packages/backend/src/api/endpoints/BillingApi.ts b/packages/backend/src/api/endpoints/BillingApi.ts index 7aba2908e09..ee136fc3dc6 100644 --- a/packages/backend/src/api/endpoints/BillingApi.ts +++ b/packages/backend/src/api/endpoints/BillingApi.ts @@ -9,6 +9,7 @@ import { AbstractAPI } from './AbstractApi'; const basePath = '/commerce'; const organizationBasePath = '/organizations'; +const userBasePath = '/users'; type GetOrganizationListParams = ClerkPaginationRequest<{ payerType: 'org' | 'user'; @@ -59,4 +60,16 @@ export class BillingAPI extends AbstractAPI { path: joinPaths(organizationBasePath, organizationId, 'billing', 'subscription'), }); } + + /** + * @experimental This is an experimental API for the Billing feature that is available under a public beta, and the API is subject to change. + * It is advised to pin the SDK version to avoid breaking changes. + */ + public async getUserBillingSubscription(userId: string) { + this.requireId(userId); + return this.request({ + method: 'GET', + path: joinPaths(userBasePath, userId, 'billing', 'subscription'), + }); + } }