Documentation

Developers

SDK

We officially maintain client libraries and SDK for a variety of languages. It'll help you integrate Polar API into your project in no time!

JavaScript

We maintain a SDK for JavaScript runtimes (Node.js and browsers). It's available on npm.

Quickstart

npm add @polar-sh/sdk
import { Polar } from '@polar-sh/sdk'

const polar = new Polar({
  accessToken: process.env['POLAR_ACCESS_TOKEN'] ?? '',
})

async function run() {
  const result = await polar.users.benefits.list({})

  for await (const page of result) {
    // Handle the page
    console.log(page)
  }
}

run()

Read more

Sandbox environment

You can configure the SDK so it hits the sandbox environment instead of the production one. You just need to add the server property to the configuration object:

const polar = new Polar({
  server: 'sandbox',
  accessToken: process.env['POLAR_ACCESS_TOKEN'] ?? '',
})

Python

We maintain a SDK for Python. It's fully type-hinted and allows both synchronous and asynchronous usage, thanks to HTTPX. Under the hood, schemas are validated by Pydantic.

It's available on PyPI.

Quickstart

pip install polar-sdk
# Synchronous Example
from polar_sdk import Polar

s = Polar(
    access_token="<YOUR_BEARER_TOKEN_HERE>",
)


res = s.users.benefits.list()

if res is not None:
    while True:
        # handle items

        res = res.Next()
        if res is None:
            break

Read more

Sandbox environment

You can configure the SDK so it hits the sandbox environment instead of the production one. You just need to add the server argument when instantiating the client:

s = Polar(
    server="sandbox",
    access_token="<YOUR_BEARER_TOKEN_HERE>",
)

Go

We maintain a SDK for Go.

Quickstart

go get github.com/polarsource/polar-go
package main

import(
	"context"
	"os"
	polargo "github.com/polarsource/polar-go"
	"log"
)

func main() {
    ctx := context.Background()

    s := polargo.New(
        polargo.WithSecurity(os.Getenv("POLAR_ACCESS_TOKEN")),
    )

    res, err := s.Benefits.List(ctx, nil, nil, nil, nil)
    if err != nil {
        log.Fatal(err)
    }
    if res.ListResourceBenefit != nil {
        for {
            // handle items

            res, err = res.Next()

            if err != nil {
                // handle error
            }

            if res == nil {
                break
            }
        }
    }
}

Read more

Sandbox environment

You can configure the SDK so it hits the sandbox environment instead of the production one. You just need to add the WithServer option when initializing the client:

s := polargo.New(
		polargo.WithServer("sandbox"),
		polargo.WithSecurity(os.Getenv("POLAR_ACCESS_TOKEN")),
	)