curl --request GET \
--url https://public-api.stora.co/2025-09/sites \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/sites"
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/sites', 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/sites",
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/sites"
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/sites")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/sites")
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{
"sites": [
{
"id": "site_14b419f1096013f1",
"access_hours": {
"friday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"monday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"saturday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"sunday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"thursday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"tuesday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"wednesday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
}
},
"address": {
"city": "Segfault Springs",
"line_1": "42 Hitchhiker's Lane",
"line_2": "Unit NaN",
"postal_code": "NULL00"
},
"created_at": "2025-02-20T14:41:00Z",
"description": "A site for all your Stack Overflow needs.",
"directions": {
"google_maps_url": "https://maps.google.com/?q=Stora+-+Self+Storage+Software"
},
"images": {
"default": null
},
"name": "The Stack Overflow Station",
"opened_at": "2025-02-24T14:41:00Z",
"phone": "012345789",
"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 Sites
Retrieve a list of all sites.
Required authorization scope: public.site:read
curl --request GET \
--url https://public-api.stora.co/2025-09/sites \
--header 'Authorization: Bearer <token>'import requests
url = "https://public-api.stora.co/2025-09/sites"
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/sites', 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/sites",
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/sites"
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/sites")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.stora.co/2025-09/sites")
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{
"sites": [
{
"id": "site_14b419f1096013f1",
"access_hours": {
"friday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"monday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"saturday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"sunday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"thursday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"tuesday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
},
"wednesday": {
"close": "18:00",
"open": "08:00",
"status": "set_hours"
}
},
"address": {
"city": "Segfault Springs",
"line_1": "42 Hitchhiker's Lane",
"line_2": "Unit NaN",
"postal_code": "NULL00"
},
"created_at": "2025-02-20T14:41:00Z",
"description": "A site for all your Stack Overflow needs.",
"directions": {
"google_maps_url": "https://maps.google.com/?q=Stora+-+Self+Storage+Software"
},
"images": {
"default": null
},
"name": "The Stack Overflow Station",
"opened_at": "2025-02-24T14:41:00Z",
"phone": "012345789",
"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 <= 100Sorting by attribute. Default created_at
created_at, name, updated_at Sorting by ASC or DESC direction. Default DESC
ASC, DESC Search sites by name (fuzzy match). BETA
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?