Polar is a payment infrastructure platform designed for selling SaaS subscriptions and digital products in the 21st century. Its main purpose is to simplify the entire payment process for developers and businesses. Polar acts as a Merchant of Record (MoR), which means it handles all the complexities of global sales tax, VAT, and GST compliance on behalf of its users. This allows creators to focus on building their products instead of dealing with financial regulations. The platform is built with a developer-first approach, offering tools like command-line interfaces and framework adapters for quick integration, especially with modern web frameworks like Next.js. It supports various billing models, including standard subscriptions and advanced ingestion-based (usage-based) billing, which is particularly useful for AI and API-based services.
Polar offers a straightforward, transaction-based pricing model. Instead of monthly subscription tiers, it charges a percentage fee plus a small fixed fee on each successful transaction. This pay-as-you-go approach means there are no upfront costs or recurring platform fees. This single pricing plan is suitable for everyone, from individual creators just starting out to established businesses, as the costs scale directly with revenue. This model includes access to all features, such as the Merchant of Record service, usage-based billing, and all integrations.
Polar does not have a traditional free plan with limited features. However, its pricing structure makes it free to get started. You can sign up, set up your products, and integrate the platform into your website without any cost. You only incur a fee when you make a sale. This model is effectively a free-to-start plan, as there are no monthly subscriptions or hidden charges to use the platform's core functionality.
Getting started with Polar is designed to be quick, especially for developers using Next.js.
npx polar-init
. This CLI tool will guide you through setting up products, subscriptions, checkouts, and webhooks in your Next.js or Nuxt.js project.LLMStrategy
to automatically track and bill customers for their AI model usage.Pros:
Cons:
Polar is built to connect with developer and creator workflows. Key integrations include:
Yes, Polar provides a developer-friendly API and SDKs to integrate its payment infrastructure into applications. The platform is API-first, and its features are accessible through programmatic means. You can obtain your API key, referred to as an accessToken
, from your account dashboard after signing up for the service. This token is used to authenticate your requests.
Here is an example of using the Polar Ingestion library in a TypeScript project to track LLM usage:
import { Ingestion } from "@polar-sh/ingestion";
import { LLMStrategy } from "@polar-sh/ingestion/strategies/LLM";
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
const llmIngestion = Ingestion({ accessToken: 'YOUR_POLAR_ACCESS_TOKEN' })
.strategy(new LLMStrategy(openai("gpt-4o")))
.ingest("openai-usage");
export async function POST(req: Request) {
const { prompt }: { prompt: string } = await req.json();
const model = llmIngestion.client({
externalCustomerId: "<USER_ID_FROM_YOUR_DATABASE>",
});
const { text } = await generateText({
model,
system: "You are a helpful assistant.",
prompt,
});
return Response.json({ text });
}
Currently, there is no publicly available information about a formal affiliate or referral program offered by Polar. Businesses or influencers interested in partnership opportunities are encouraged to contact the Polar support team directly through their website to inquire about potential collaboration or partner programs. They may offer custom arrangements for partners who can bring new customers to the platform.
Show your users that Polar.sh is listed on SAASprofile. Add this badge to your website:
<a href="https://saasprofile.com/polar-sh?utm_source=saasprofile&utm_medium=badge&utm_campaign=embed&utm_content=tool-polar-sh" target="_blank"><img src="https://saasprofile.com/polar-sh/badge.svg?theme=light&width=200&height=50" width="200" height="50" alt="Polar.sh badge" loading="lazy" /></a>