List Products
curl --request GET \
--url https://api.sellauth.com/v1/reseller/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sellauth.com/v1/reseller/products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sellauth.com/v1/reseller/products', 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.sellauth.com/v1/reseller/products",
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.sellauth.com/v1/reseller/products"
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.sellauth.com/v1/reseller/products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sellauth.com/v1/reseller/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{
"current_page": 1,
"data": [
{
"id": 123,
"name": "Example Product",
"description": "<p>Full access for one month.</p>",
"currency": "USD",
"requires_fulfillment": false,
"image_urls": [
"https://imagedelivery.net/example/1/public"
],
"product_tabs": [
{
"slug": "how-it-works",
"title": "How it works",
"content": "<p>Redeem the key at example.com.</p>"
}
],
"updated_at": "2026-07-23T12:00:00.000000Z",
"variants": [
{
"id": 456,
"name": "1 Month",
"description": "<p>30 days of access.</p>",
"price": 10,
"reseller_price": 9,
"discount_percentage": 10,
"stock": 25,
"deliverables_type": "serials",
"order": 0,
"dynamic_url": "https://api.sellauth.com/v1/reseller/dynamic/{your_token}?product_id=123&variant_id=456",
"updated_at": "2026-07-23T12:00:00.000000Z"
}
]
}
],
"from": 1,
"last_page": 1,
"per_page": 20,
"to": 1,
"total": 1
}Products
List Products
The reseller catalog: enrolled products with their description, images and content tabs for display, plus list price, your price and stock per variant and your dynamic delivery URL. Variants are returned in the order the seller arranged them, and a variant’s stock is -1 when it has unlimited stock.
GET
/
v1
/
reseller
/
products
List Products
curl --request GET \
--url https://api.sellauth.com/v1/reseller/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sellauth.com/v1/reseller/products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sellauth.com/v1/reseller/products', 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.sellauth.com/v1/reseller/products",
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.sellauth.com/v1/reseller/products"
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.sellauth.com/v1/reseller/products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sellauth.com/v1/reseller/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{
"current_page": 1,
"data": [
{
"id": 123,
"name": "Example Product",
"description": "<p>Full access for one month.</p>",
"currency": "USD",
"requires_fulfillment": false,
"image_urls": [
"https://imagedelivery.net/example/1/public"
],
"product_tabs": [
{
"slug": "how-it-works",
"title": "How it works",
"content": "<p>Redeem the key at example.com.</p>"
}
],
"updated_at": "2026-07-23T12:00:00.000000Z",
"variants": [
{
"id": 456,
"name": "1 Month",
"description": "<p>30 days of access.</p>",
"price": 10,
"reseller_price": 9,
"discount_percentage": 10,
"stock": 25,
"deliverables_type": "serials",
"order": 0,
"dynamic_url": "https://api.sellauth.com/v1/reseller/dynamic/{your_token}?product_id=123&variant_id=456",
"updated_at": "2026-07-23T12:00:00.000000Z"
}
]
}
],
"from": 1,
"last_page": 1,
"per_page": 20,
"to": 1,
"total": 1
}Authorizations
Authenticate with your reseller API key, generated on the shop's customer panel under Reseller and sent as a Bearer token. Seller dashboard API keys will not work here.
Response
200 - application/json
Example:
1
Show child attributes
Show child attributes
Example:
[
{
"id": 123,
"name": "Example Product",
"description": "<p>Full access for one month.</p>",
"currency": "USD",
"requires_fulfillment": false,
"image_urls": [
"https://imagedelivery.net/example/1/public"
],
"product_tabs": [
{
"slug": "how-it-works",
"title": "How it works",
"content": "<p>Redeem the key at example.com.</p>"
}
],
"updated_at": "2026-07-23T12:00:00.000000Z",
"variants": [
{
"id": 456,
"name": "1 Month",
"description": "<p>30 days of access.</p>",
"price": 10,
"reseller_price": 9,
"discount_percentage": 10,
"stock": 25,
"deliverables_type": "serials",
"order": 0,
"dynamic_url": "https://api.sellauth.com/v1/reseller/dynamic/{your_token}?product_id=123&variant_id=456",
"updated_at": "2026-07-23T12:00:00.000000Z"
}
]
}
]
Example:
1
Example:
1
Example:
20
Example:
1
Example:
1