Show a Product
curl --request GET \
--url https://public-api.stora.co/2025-09/products/{product_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/products/{product_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public-api.stora.co/2025-09/products/{product_id}', 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://public-api.stora.co/2025-09/products/{product_id}",
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://public-api.stora.co/2025-09/products/{product_id}"
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://public-api.stora.co/2025-09/products/{product_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/products/{product_id}")
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{
"product": {
"id": "prod_82f059cc36dded80",
"accounting_code": "CUSTOM-PRODUCT-1",
"category": {
"id": "pcat_a434b3a5bc8102bc"
},
"charge_type": "one_time",
"created_at": "2025-02-20T14:41:00Z",
"description": "Custom product description",
"images": {
"default": null
},
"name": "One Time Product",
"prices": [
{
"billing_period": "one_time",
"price": {
"amount": 2000,
"currency": "GBP",
"formatted": "£20.00"
},
"stripe_price_id": "price_yJbKiofvzKf1OvsYIAlQQNF0"
}
],
"site": {
"id": "site_14b419f1096013f1"
},
"sku": null,
"updated_at": "2025-02-22T14:41:00Z"
},
"meta": {
"request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
"curies": [
{
"name": "bo",
"href": "https://app.stora.test{rel}",
"templated": true,
"title": "Backoffice"
},
{
"name": "sf",
"href": "https://acme.stora.test{rel}",
"templated": true,
"title": "Storefront"
}
]
}
}Products
Show a Product
Retrieve a specific product by its ID.
Required authorization scope: public.product:read
GET
/
2025-09
/
products
/
{product_id}
Show a Product
curl --request GET \
--url https://public-api.stora.co/2025-09/products/{product_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/products/{product_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public-api.stora.co/2025-09/products/{product_id}', 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://public-api.stora.co/2025-09/products/{product_id}",
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://public-api.stora.co/2025-09/products/{product_id}"
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://public-api.stora.co/2025-09/products/{product_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/products/{product_id}")
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{
"product": {
"id": "prod_82f059cc36dded80",
"accounting_code": "CUSTOM-PRODUCT-1",
"category": {
"id": "pcat_a434b3a5bc8102bc"
},
"charge_type": "one_time",
"created_at": "2025-02-20T14:41:00Z",
"description": "Custom product description",
"images": {
"default": null
},
"name": "One Time Product",
"prices": [
{
"billing_period": "one_time",
"price": {
"amount": 2000,
"currency": "GBP",
"formatted": "£20.00"
},
"stripe_price_id": "price_yJbKiofvzKf1OvsYIAlQQNF0"
}
],
"site": {
"id": "site_14b419f1096013f1"
},
"sku": null,
"updated_at": "2025-02-22T14:41:00Z"
},
"meta": {
"request_id": "01563646-58c1-4607-8fe0-cae3e92c4477",
"curies": [
{
"name": "bo",
"href": "https://app.stora.test{rel}",
"templated": true,
"title": "Backoffice"
},
{
"name": "sf",
"href": "https://acme.stora.test{rel}",
"templated": true,
"title": "Storefront"
}
]
}
}Authorizations
BearerOAuth2
Bearer Token necessary to use API
Path Parameters
The ID of the product to retrieve
Query Parameters
This endpoint supports expandable responses. For more, see the documentation page.
Was this page helpful?
⌘I