This documentation is for a legacy version of Remix and Supabase. For the latest version, please visit the Remix and Supabase V2 documentation

Organization Subscription SDK - Fetch the Organization Subscription

Learn how to use the Organization Subscription SDK to fetch the current organization Subscription details

The Subscription SDK helps with getting details about the current organization Subscription. The Subscription is available in the organization namespace of the SDK

Get the current organization Subscription

To retrieve the current organization Subscription, use the organization.getSubscription() method to first get the current organization, and then get the Subscription from the organization.

import { LoaderFunctionArgs } from '@remix-run/node';
import getSdk from '~/lib/sdk';
import getSupabaseServerClient from '~/core/supabase/server-client';
export async function loader(args: LoaderFunctionArgs) {
const client = getSupabaseServerClient(args.request);
const sdk = getSdk(client);
const subscription = await sdk.organization.getSubscription();
// ...
}

Check if the current organization has an active subscription

To check if the current organization has an active subscription, use the subscription.isActive() method.

import { LoaderFunctionArgs } from '@remix-run/node';
import getSdk from '~/lib/sdk';
import getSupabaseServerClient from '~/core/supabase/server-client';
export async function loader(args: LoaderFunctionArgs) {
const client = getSupabaseServerClient(args.request);
const sdk = getSdk(client);
const subscription = await sdk.organization.getSubscription();
const isActive = await sdk.organization.isActive(); // false|true
// ...
}

This method will return true in two cases:

  • the status of the subscription is active
  • the status of the subscription is trialing

Check if it's a Trial Subscription

To check if the current organization is a trial, use the subscription.isTrial() method.

import { LoaderFunctionArgs } from '@remix-run/node';
import getSdk from '~/lib/sdk';
import getSupabaseServerClient from '~/core/supabase/server-client';
export async function loader(args: LoaderFunctionArgs) {
const client = getSupabaseServerClient(args.request);
const sdk = getSdk(client);
const subscription = await sdk.organization.getSubscription();
const isTrial = await sdk.organization.isTrial(); // false|true
// ...
}

This method will return true when the status of the subscription is trialing.

Check the status of the Subscription

To check the status of the current organization Subscription, use the subscription.status computed property.

import { LoaderFunctionArgs } from '@remix-run/node';
import getSdk from '~/lib/sdk';
import getSupabaseServerClient from '~/core/supabase/server-client';
export async function loader(args: LoaderFunctionArgs) {
const client = getSupabaseServerClient(args.request);
const sdk = getSdk(client);
const subscription = await sdk.organization.getSubscription();
const status = await sdk.organization.status; // Stripe.Subscription.Status
// ...
}

Check the status of the Subscription is a certain status

To check the status of the current organization Subscription, use the subscription.isStatus method. The method accepts a single argument, which is the status to check against. This is the Stripe.Subscription.Status enum.

import { LoaderFunctionArgs } from '@remix-run/node';
import getSdk from '~/lib/sdk';
import getSupabaseServerClient from '~/core/supabase/server-client';
export async function loader(args: LoaderFunctionArgs) {
const client = getSupabaseServerClient(args.request);
const sdk = getSdk(client);
const subscription = await sdk.organization.getSubscription();
const isActive = await sdk.organization.isStatus('active');
// ...
}