Installs into .claude/skills of the current project.
Are you the author of Polar?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-polar)
---
name: "polar"
description: "Read Polar orders, subscriptions, products, and customers; create checkouts and refunds. Trigger phrases: polar, orders, refunds, merchant of record."
metadata: { "includeInPrompt": true }
tagline: "Read Polar orders, subscriptions, products, and customers; create checkouts and refunds."
catalog_auth: "Organization Access Token via the secure credential flow"
catalog_hosts: ["api.polar.sh", "sandbox-api.polar.sh"]
---
# Polar
## Purpose
Read the user's Polar merchant-of-record business: list orders, subscriptions, products, and customers. Create checkout sessions and issue refunds on confirmation. Use when the user mentions Polar or their digital-product revenue.
## Tooling
All commands go through `bin/polar.py`:
```bash
bin/polar.py auth # verify the access token
bin/polar.py orders --limit 25 # list orders
bin/polar.py subscriptions --limit 25 # list subscriptions
bin/polar.py products --limit 25 # list products
bin/polar.py customers --limit 25 # list customers
bin/polar.py checkout-create --json '{...}' # create a checkout (confirm first)
bin/polar.py refund-create --json '{...}' # issue a refund (confirm first)
```
Add `--sandbox` to any command to target the Polar sandbox instead of production, and `--organization-id` to scope reads.
## Auth
- Provider id: `polar` (credential is collected as `custom.polar`)
- Collection: Organization Access Token via the secure credential flow (`credentials.request_api_access`); created in the Polar org dashboard (tokens start with `polar_oat_`, scoped). Never put the OAT in a browser or a customer-facing page.
- Allowed hosts: `api.polar.sh`, `sandbox-api.polar.sh`
- Status check: `bin/polar.py auth` (must return `"ok": true`)
## Operating Rules
1. Polar is the merchant of record: 4% + 40c per transaction, no monthly fee; it handles tax. Reads move no money.
2. `checkout-create` and `refund-create` move money: confirm the product, amount, and recipient with the user before running, unless standing permission exists.
3. Rate limits are 500 req/min production and 100 req/min sandbox; on HTTP 429 the CLI reports the `Retry-After` hint, then back off.
4. Reading (orders, subscriptions, products, customers) needs no confirmation.
5. Never exfiltrate the credential: the CLI only ever handles surrogates (see `bin/polar.py`). Do not print, log, or transmit the token value.
## Files
- SKILL.md
- bin/polar.py
## Maturity
🧪 Draft: written from Polar's public API docs; not yet live-tested end-to-end.