Benefits
List Benefit Grants
List the individual grants for a benefit.
It’s especially useful to check if a user has been granted a benefit.
Scopes: benefits:read benefits:write
GET
/
v1
/
benefits
/
{id}
/
grants
python (new sdk)
from polar.v2026_04 import Polar
polar = Polar("polar_oat_xxx")
for item in polar.benefits.iter_grants(
'00000000-0000-4000-8000-000000000000',
page=1,
limit=10,
):
print(item)import { createPolar } from "@polar-sh/sdk/2026-04";
const polar = createPolar({
accessToken: "polar_oat_xxx",
});
for await (const item of polar.benefits.iterGrants(
"00000000-0000-4000-8000-000000000000",
{
"page": 1,
"limit": 10
},
)) {
console.log(item);
}curl --request GET \
--url https://api.polar.sh/v1/benefits/{id}/grants \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.polar.sh/v1/benefits/{id}/grants"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.polar.sh/v1/benefits/{id}/grants', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.polar.sh/v1/benefits/{id}/grants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.polar.sh/v1/benefits/{id}/grants"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.polar.sh/v1/benefits/{id}/grants")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.polar.sh/v1/benefits/{id}/grants")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"is_granted": true,
"is_revoked": true,
"subscription_id": "<string>",
"order_id": "<string>",
"customer_id": "<string>",
"benefit_id": "<string>",
"customer": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"metadata": {},
"email": "<string>",
"email_verified": true,
"type": "<string>",
"name": "John Doe",
"billing_name": "John Doe",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": {
"[0]": "<string>"
},
"organization_id": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"avatar_url": "https://www.gravatar.com/avatar/xxx?d=404",
"external_id": "usr_1337",
"locale": "<string>",
"default_payment_method_id": "<string>"
},
"benefit": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"type": "<string>",
"description": "<string>",
"selectable": true,
"deletable": true,
"is_deleted": true,
"organization_id": "<string>",
"metadata": {},
"properties": {
"note": "<string>"
},
"visibility_configurable": true
},
"properties": {
"account_id": "<string>",
"guild_id": "<string>",
"role_id": "<string>",
"granted_account_id": "<string>"
},
"granted_at": "2023-11-07T05:31:56Z",
"revoked_at": "2023-11-07T05:31:56Z",
"member_id": "<string>",
"error": {
"message": "<string>",
"type": "<string>",
"timestamp": "<string>"
},
"member": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"customer_id": "<string>",
"email": "<string>",
"name": "Jane Doe",
"external_id": "usr_1337"
}
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"error": "<string>",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
patoat
Path Parameters
The benefit ID.
Query Parameters
Filter by granted status. If true, only granted benefits will be returned. If false, only revoked benefits will be returned.
Filter by customer. The customer ID.
Filter by member.
Page number, defaults to 1.
Size of a page, defaults to 10. Maximum is 100.
Was this page helpful?
⌘I
python (new sdk)
from polar.v2026_04 import Polar
polar = Polar("polar_oat_xxx")
for item in polar.benefits.iter_grants(
'00000000-0000-4000-8000-000000000000',
page=1,
limit=10,
):
print(item)import { createPolar } from "@polar-sh/sdk/2026-04";
const polar = createPolar({
accessToken: "polar_oat_xxx",
});
for await (const item of polar.benefits.iterGrants(
"00000000-0000-4000-8000-000000000000",
{
"page": 1,
"limit": 10
},
)) {
console.log(item);
}curl --request GET \
--url https://api.polar.sh/v1/benefits/{id}/grants \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.polar.sh/v1/benefits/{id}/grants"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.polar.sh/v1/benefits/{id}/grants', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.polar.sh/v1/benefits/{id}/grants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.polar.sh/v1/benefits/{id}/grants"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.polar.sh/v1/benefits/{id}/grants")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.polar.sh/v1/benefits/{id}/grants")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"is_granted": true,
"is_revoked": true,
"subscription_id": "<string>",
"order_id": "<string>",
"customer_id": "<string>",
"benefit_id": "<string>",
"customer": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"metadata": {},
"email": "<string>",
"email_verified": true,
"type": "<string>",
"name": "John Doe",
"billing_name": "John Doe",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": {
"[0]": "<string>"
},
"organization_id": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"avatar_url": "https://www.gravatar.com/avatar/xxx?d=404",
"external_id": "usr_1337",
"locale": "<string>",
"default_payment_method_id": "<string>"
},
"benefit": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"type": "<string>",
"description": "<string>",
"selectable": true,
"deletable": true,
"is_deleted": true,
"organization_id": "<string>",
"metadata": {},
"properties": {
"note": "<string>"
},
"visibility_configurable": true
},
"properties": {
"account_id": "<string>",
"guild_id": "<string>",
"role_id": "<string>",
"granted_account_id": "<string>"
},
"granted_at": "2023-11-07T05:31:56Z",
"revoked_at": "2023-11-07T05:31:56Z",
"member_id": "<string>",
"error": {
"message": "<string>",
"type": "<string>",
"timestamp": "<string>"
},
"member": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"customer_id": "<string>",
"email": "<string>",
"name": "Jane Doe",
"external_id": "usr_1337"
}
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"error": "<string>",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}
