List all products
curl --request GET \
--url https://api.kyrenpay.com/v1/products \
--header 'x-api-key: <api-key>'import requests
url = "https://api.kyrenpay.com/v1/products"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.kyrenpay.com/v1/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.kyrenpay.com/v1/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 => [
"x-api-key: <api-key>"
],
]);
$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.kyrenpay.com/v1/products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.kyrenpay.com/v1/products")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kyrenpay.com/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code": 0,
"message": "success",
"data": {
"items": [
{
"id": "prod_abc123",
"name": "1000 AI Credits",
"description": "Top up 1000 credits for AI API usage",
"image": null,
"price": "9.99",
"currency": "USD",
"status": "ACTIVE",
"metadata": {
"credits": "1000"
},
"createdAt": 1736932200000,
"updatedAt": 1736932200000
}
],
"pagination": {
"page": 1,
"size": 20,
"total": 1,
"totalPages": 1
}
}
}{
"code": 401,
"message": "Unauthorized"
}Products
List all products
Returns a paginated list of your products.
GET
/
v1
/
products
List all products
curl --request GET \
--url https://api.kyrenpay.com/v1/products \
--header 'x-api-key: <api-key>'import requests
url = "https://api.kyrenpay.com/v1/products"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.kyrenpay.com/v1/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.kyrenpay.com/v1/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 => [
"x-api-key: <api-key>"
],
]);
$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.kyrenpay.com/v1/products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.kyrenpay.com/v1/products")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kyrenpay.com/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code": 0,
"message": "success",
"data": {
"items": [
{
"id": "prod_abc123",
"name": "1000 AI Credits",
"description": "Top up 1000 credits for AI API usage",
"image": null,
"price": "9.99",
"currency": "USD",
"status": "ACTIVE",
"metadata": {
"credits": "1000"
},
"createdAt": 1736932200000,
"updatedAt": 1736932200000
}
],
"pagination": {
"page": 1,
"size": 20,
"total": 1,
"totalPages": 1
}
}
}{
"code": 401,
"message": "Unauthorized"
}Authorizations
Your API key. Public production API-key endpoints accept kyren_live_* keys. Staging credentials are environment-specific and must be used only with the staging environment for which Kyren issued them.
Query Parameters
Filter by product status
ACTIVE— Product is available for checkoutARCHIVED— Product is archived and cannot be used
Available options:
ACTIVE, ARCHIVED Page number (1-indexed)
Required range:
x >= 1Number of items per page
Required range:
1 <= x <= 100⌘I