curl --request GET \
--url https://public-api.stora.co/2025-09/subscriptions \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/subscriptions"
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/subscriptions', 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/subscriptions",
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/subscriptions"
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/subscriptions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/subscriptions")
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{
"subscriptions": [
{
"id": "sub_125c561ac05edfa1",
"billing_period": "monthly",
"cancellation_reason": null,
"cancelled": false,
"contact": {
"id": "con_195h6kfm9ro15lof"
},
"created_at": "2025-02-22T14:41:00Z",
"current_period": {
"ends_at": null,
"starts_at": "2025-08-22T14:37:00Z"
},
"ends_at": null,
"line_items": [
{
"created_at": "2025-02-22T14:41:00Z",
"item": {
"id": "utype_f18fc91387cdf710"
},
"price": {
"amount": 5000,
"currency": "GBP",
"formatted": "£50.00"
},
"quantity": 1,
"type": "unit_type",
"updated_at": "2025-02-22T14:41:00Z"
},
{
"created_at": "2025-02-22T14:41:00Z",
"item": {
"id": "plvl_dfaf0f9b464627e9"
},
"price": {
"amount": 2000,
"currency": "GBP",
"formatted": "£20.00"
},
"quantity": 1,
"type": "protection",
"updated_at": "2025-02-22T14:41:00Z"
},
{
"created_at": "2025-02-22T14:41:00Z",
"item": {
"id": "prod_d81f4b51313aa8e9"
},
"price": {
"amount": 12345,
"currency": "GBP",
"formatted": "£123.45"
},
"quantity": 1,
"type": "custom_product",
"updated_at": "2025-02-22T14:41:00Z"
}
],
"order": {
"id": "order_8541ceb54c1b01f8"
},
"site": {
"id": "site_14b419f1096013f1"
},
"starts_at": "2025-02-22T14:41:00Z",
"stripe_subscription_id": null,
"stripe_subscription_schedule_id": null,
"tenancy": {
"id": "ten_acaf3269a573af74"
},
"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"
}
],
"pagination": {
"count": 1,
"last": 1,
"limit": 50,
"next": null,
"page": 1,
"pages": 1,
"prev": null
}
}
}List all Subscriptions
Retrieve a list of all subscriptions.
Required authorization scope: public.subscription:read
curl --request GET \
--url https://public-api.stora.co/2025-09/subscriptions \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/subscriptions"
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/subscriptions', 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/subscriptions",
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/subscriptions"
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/subscriptions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/subscriptions")
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{
"subscriptions": [
{
"id": "sub_125c561ac05edfa1",
"billing_period": "monthly",
"cancellation_reason": null,
"cancelled": false,
"contact": {
"id": "con_195h6kfm9ro15lof"
},
"created_at": "2025-02-22T14:41:00Z",
"current_period": {
"ends_at": null,
"starts_at": "2025-08-22T14:37:00Z"
},
"ends_at": null,
"line_items": [
{
"created_at": "2025-02-22T14:41:00Z",
"item": {
"id": "utype_f18fc91387cdf710"
},
"price": {
"amount": 5000,
"currency": "GBP",
"formatted": "£50.00"
},
"quantity": 1,
"type": "unit_type",
"updated_at": "2025-02-22T14:41:00Z"
},
{
"created_at": "2025-02-22T14:41:00Z",
"item": {
"id": "plvl_dfaf0f9b464627e9"
},
"price": {
"amount": 2000,
"currency": "GBP",
"formatted": "£20.00"
},
"quantity": 1,
"type": "protection",
"updated_at": "2025-02-22T14:41:00Z"
},
{
"created_at": "2025-02-22T14:41:00Z",
"item": {
"id": "prod_d81f4b51313aa8e9"
},
"price": {
"amount": 12345,
"currency": "GBP",
"formatted": "£123.45"
},
"quantity": 1,
"type": "custom_product",
"updated_at": "2025-02-22T14:41:00Z"
}
],
"order": {
"id": "order_8541ceb54c1b01f8"
},
"site": {
"id": "site_14b419f1096013f1"
},
"starts_at": "2025-02-22T14:41:00Z",
"stripe_subscription_id": null,
"stripe_subscription_schedule_id": null,
"tenancy": {
"id": "ten_acaf3269a573af74"
},
"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"
}
],
"pagination": {
"count": 1,
"last": 1,
"limit": 50,
"next": null,
"page": 1,
"pages": 1,
"prev": null
}
}
}Authorizations
Bearer Token necessary to use API
Query Parameters
Pagination: Page number
x >= 1Pagination: Limit number of items per page.
1 <= x <= 100Filter by Contact IDs. Supports multiple values separated by a comma.
Sorting by attribute. Default created_at
created_at, updated_at Sorting by ASC or DESC direction. Default DESC
ASC, DESC This endpoint supports expandable responses. For more, see the documentation page.
Filters results to created after (including given date) the given ISO 8601 timestamp (e.g., 2025-01-12T15:30:00Z).
Filters results to created before (excluding given date) the given ISO 8601 timestamp (e.g., 2025-01-12T15:30:00Z).
Filters results to updated after (including given date) the given ISO 8601 timestamp (e.g., 2025-01-12T15:30:00Z).
Filters results to updated before (excluding given date) the given ISO 8601 timestamp (e.g., 2025-01-12T15:30:00Z).
Was this page helpful?