List Products
List products.
Scopes: products:read products:write
package main
import(
"context"
"os"
polargo "github.com/polarsource/polar-go"
"github.com/polarsource/polar-go/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := polargo.New(
polargo.WithSecurity(os.Getenv("POLAR_ACCESS_TOKEN")),
)
res, err := s.Products.List(ctx, operations.ProductsListRequest{
OrganizationID: polargo.Pointer(operations.CreateProductsListQueryParamOrganizationIDFilterStr(
"1dbfc517-0bbf-4301-9ba8-555ca42b9737",
)),
})
if err != nil {
log.Fatal(err)
}
if res.ListResourceProduct != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}from polar_sdk import Polar
with Polar(
access_token="<YOUR_BEARER_TOKEN_HERE>",
) as polar:
res = polar.products.list(organization_id=None, page=1, limit=10)
while res is not None:
# Handle items
res = res.next()import { Polar } from "@polar-sh/sdk";
const polar = new Polar({
accessToken: process.env["POLAR_ACCESS_TOKEN"] ?? "",
});
async function run() {
const result = await polar.products.list({
organizationId: "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
});
for await (const page of result) {
console.log(page);
}
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Polar;
use Polar\Models\Operations;
$sdk = Polar\Polar::builder()
->setSecurity(
'<YOUR_BEARER_TOKEN_HERE>'
)
->build();
$request = new Operations\ProductsListRequest(
organizationId: '1dbfc517-0bbf-4301-9ba8-555ca42b9737',
);
$responses = $sdk->products->list(
request: $request
);
foreach ($responses as $response) {
if ($response->statusCode === 200) {
// handle response
}
}curl --request GET \
--url https://api.polar.sh/v1/products/ \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.polar.sh/v1/products/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.polar.sh/v1/products/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.polar.sh/v1/products/")
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": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"recurring_interval_count": 123,
"is_recurring": true,
"is_archived": true,
"organization_id": "<string>",
"metadata": {},
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount_type": "<string>",
"price_currency": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"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
}
],
"medias": [
{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "<string>",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>",
"public_url": "<string>"
}
],
"attached_custom_fields": [
{
"custom_field_id": "<string>",
"custom_field": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"metadata": {},
"type": "<string>",
"slug": "<string>",
"name": "<string>",
"organization_id": "<string>",
"properties": {
"form_label": "<string>",
"form_help_text": "<string>",
"form_placeholder": "<string>",
"textarea": true,
"min_length": 1073741823,
"max_length": 1073741823
}
},
"order": 123,
"required": true
}
]
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
You can generate an Organization Access Token from your organization's settings.
Query Parameters
Filter by product ID. The product ID.
Filter by organization ID. The organization ID.
"1dbfc517-0bbf-4301-9ba8-555ca42b9737"
Filter by product name.
Filter on archived products.
Filter on recurring products. If true, only subscriptions tiers are returned. If false, only one-time purchase products are returned.
Filter products granting specific benefit. The benefit ID.
Filter by visibility.
draft, private, public Page number, defaults to 1.
Size of a page, defaults to 10. Maximum is 100.
Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.
created_at, -created_at, name, -name, price_amount_type, -price_amount_type, price_amount, -price_amount Filter by metadata key-value pairs. It uses the deepObject style, e.g. ?metadata[key]=value.
Show child attributes
Show child attributes
Was this page helpful?
package main
import(
"context"
"os"
polargo "github.com/polarsource/polar-go"
"github.com/polarsource/polar-go/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := polargo.New(
polargo.WithSecurity(os.Getenv("POLAR_ACCESS_TOKEN")),
)
res, err := s.Products.List(ctx, operations.ProductsListRequest{
OrganizationID: polargo.Pointer(operations.CreateProductsListQueryParamOrganizationIDFilterStr(
"1dbfc517-0bbf-4301-9ba8-555ca42b9737",
)),
})
if err != nil {
log.Fatal(err)
}
if res.ListResourceProduct != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}from polar_sdk import Polar
with Polar(
access_token="<YOUR_BEARER_TOKEN_HERE>",
) as polar:
res = polar.products.list(organization_id=None, page=1, limit=10)
while res is not None:
# Handle items
res = res.next()import { Polar } from "@polar-sh/sdk";
const polar = new Polar({
accessToken: process.env["POLAR_ACCESS_TOKEN"] ?? "",
});
async function run() {
const result = await polar.products.list({
organizationId: "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
});
for await (const page of result) {
console.log(page);
}
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Polar;
use Polar\Models\Operations;
$sdk = Polar\Polar::builder()
->setSecurity(
'<YOUR_BEARER_TOKEN_HERE>'
)
->build();
$request = new Operations\ProductsListRequest(
organizationId: '1dbfc517-0bbf-4301-9ba8-555ca42b9737',
);
$responses = $sdk->products->list(
request: $request
);
foreach ($responses as $response) {
if ($response->statusCode === 200) {
// handle response
}
}curl --request GET \
--url https://api.polar.sh/v1/products/ \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.polar.sh/v1/products/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.polar.sh/v1/products/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.polar.sh/v1/products/")
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": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"recurring_interval_count": 123,
"is_recurring": true,
"is_archived": true,
"organization_id": "<string>",
"metadata": {},
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount_type": "<string>",
"price_currency": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"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
}
],
"medias": [
{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "<string>",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>",
"public_url": "<string>"
}
],
"attached_custom_fields": [
{
"custom_field_id": "<string>",
"custom_field": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"metadata": {},
"type": "<string>",
"slug": "<string>",
"name": "<string>",
"organization_id": "<string>",
"properties": {
"form_label": "<string>",
"form_help_text": "<string>",
"form_placeholder": "<string>",
"textarea": true,
"min_length": 1073741823,
"max_length": 1073741823
}
},
"order": 123,
"required": true
}
]
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}
