Libraries & code examples Libraries & codevoorbeelden
Every library on this page is generated straight from the OpenAPI spec, so method names match the reference one-to-one — login(), listOrders(), getOrder(). Prefer raw HTTP? The quickstart below runs in any language with no dependencies.
Elke library op deze pagina is rechtstreeks gegenereerd uit de OpenAPI-spec, dus de method-namen komen één-op-één overeen met de referentie — login(), listOrders(), getOrder(). Liever kale HTTP? De quickstart hieronder draait in elke taal, zonder dependencies.
Quickstart · no SDK Quickstart · zonder SDK
The same two steps in seven languages: exchange your login for a 30-minute bearer token, then send it on every request. Dezelfde twee stappen in zeven talen: wissel je login in voor een bearer-token van 30 minuten en stuur die mee bij elk verzoek.
# 1 — exchange your login for a 30-minute bearer token
TOKEN=$(curl -s https://api.storekeeper.me/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"account":"demo","email":"you@example.com","password":"..."}' \
| jq -r .token)
# 2 — send it on every other request
curl -s "https://api.storekeeper.me/api/orders?from=2026-07-01&limit=25" \
-H "Authorization: Bearer $TOKEN"<?php
$base = 'https://api.storekeeper.me';
// 1 — log in → 30-minute bearer token
$ch = curl_init("$base/api/auth/login");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'account' => 'demo', 'email' => 'you@example.com', 'password' => '...',
]),
CURLOPT_RETURNTRANSFER => true,
]);
$token = json_decode(curl_exec($ch), true)['token'];
// 2 — call any endpoint with it
$ch = curl_init("$base/api/orders?from=2026-07-01&limit=25");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token"],
CURLOPT_RETURNTRANSFER => true,
]);
$orders = json_decode(curl_exec($ch), true);
print_r($orders['data']);const BASE = 'https://api.storekeeper.me';
// 1 — log in → 30-minute bearer token
const { token } = await fetch(`${BASE}/api/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
account: 'demo', email: 'you@example.com', password: '...',
}),
}).then((r) => r.json());
// 2 — call any endpoint with it
const orders = await fetch(`${BASE}/api/orders?from=2026-07-01&limit=25`, {
headers: { Authorization: `Bearer ${token}` },
}).then((r) => r.json());
console.log(orders.data);import requests
BASE = "https://api.storekeeper.me"
# 1 — log in → 30-minute bearer token
token = requests.post(f"{BASE}/api/auth/login", json={
"account": "demo", "email": "you@example.com", "password": "...",
}).json()["token"]
# 2 — call any endpoint with it
orders = requests.get(
f"{BASE}/api/orders",
params={"from": "2026-07-01", "limit": 25},
headers={"Authorization": f"Bearer {token}"},
).json()
print(orders["data"])using System.Net.Http.Json;
using System.Text.Json.Nodes;
var http = new HttpClient { BaseAddress = new Uri("https://api.storekeeper.me") };
// 1 — log in → 30-minute bearer token
var login = await http.PostAsJsonAsync("/api/auth/login",
new { account = "demo", email = "you@example.com", password = "..." });
var token = (await login.Content.ReadFromJsonAsync<JsonNode>())!["token"]!.ToString();
// 2 — call any endpoint with it
http.DefaultRequestHeaders.Authorization = new("Bearer", token);
var orders = await http.GetFromJsonAsync<JsonNode>(
"/api/orders?from=2026-07-01&limit=25");
Console.WriteLine(orders!["data"]);import java.net.URI;
import java.net.http.*;
var http = HttpClient.newHttpClient();
String base = "https://api.storekeeper.me";
// 1 — log in → 30-minute bearer token (raw HTTP; use the SDK for typed models)
var res = http.send(HttpRequest.newBuilder(URI.create(base + "/api/auth/login"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(
"{\"account\":\"demo\",\"email\":\"you@example.com\",\"password\":\"...\"}"))
.build(), HttpResponse.BodyHandlers.ofString());
String token = res.body().replaceAll(".*\"token\":\"([^\"]+)\".*", "$1");
// 2 — call any endpoint with it
var orders = http.send(HttpRequest.newBuilder(
URI.create(base + "/api/orders?from=2026-07-01&limit=25"))
.header("Authorization", "Bearer " + token)
.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(orders.body());package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
const base = "https://api.storekeeper.me"
func main() {
// 1 — log in → 30-minute bearer token
body, _ := json.Marshal(map[string]string{
"account": "demo", "email": "you@example.com", "password": "...",
})
res, _ := http.Post(base+"/api/auth/login", "application/json", bytes.NewReader(body))
var login struct {
Token string `json:"token"`
}
json.NewDecoder(res.Body).Decode(&login)
// 2 — call any endpoint with it
req, _ := http.NewRequest("GET", base+"/api/orders?from=2026-07-01&limit=25", nil)
req.Header.Set("Authorization", "Bearer "+login.Token)
orders, _ := http.DefaultClient.Do(req)
defer orders.Body.Close()
var out map[string]any
json.NewDecoder(orders.Body).Decode(&out)
fmt.Println(out["data"])
}Download an SDK Download een SDK
Each zip is a self-contained client with a class per endpoint group (AuthApi, OrdersApi, …) and its own README with a runnable example. Unzip and install locally — nothing is published to a package registry yet.
Elke zip is een zelfstandige client met een class per endpointgroep (AuthApi, OrdersApi, …) en een eigen README met een werkend voorbeeld. Uitpakken en lokaal installeren — er staat nog niets in een package-registry.
unzip storekeeper-php-sdk.zip cd storekeeper-php && composer install
unzip storekeeper-typescript-sdk.zip npm install ./storekeeper-typescript
unzip storekeeper-python-sdk.zip pip install ./storekeeper-python
unzip storekeeper-csharp-sdk.zip dotnet add reference \ storekeeper-csharp/src/Storekeeper.ApiClient/Storekeeper.ApiClient.csproj
unzip storekeeper-java-sdk.zip cd storekeeper-java && mvn install
unzip storekeeper-go-sdk.zip # import github.com/storekeeper-company/storekeeper-api-go/storekeeper
unzip storekeeper-rust-sdk.zip
# Cargo.toml: storekeeper = { path = "storekeeper-rust" }
unzip storekeeper-kotlin-sdk.zip cd storekeeper-kotlin && ./gradlew build
unzip storekeeper-swift-sdk.zip # add storekeeper-swift/Package.swift as a local SwiftPM dependency
How to use one. Configure the client with your bearer token, then call the method that matches the reference — e.g. Python: AuthApi().login(...) for the token, then OrdersApi(client).list_orders(...). Full examples live in each zip's README and mirror the interactive reference.
Hoe je er één gebruikt. Configureer de client met je bearer-token en roep de method aan die overeenkomt met de referentie — bijv. Python: AuthApi().login(...) voor het token, daarna OrdersApi(client).list_orders(...). Volledige voorbeelden staan in de README van elke zip en volgen de interactieve referentie.
Roll your own Maak je eigen client
All nine above are generated with openapi-generator from /api/doc.json. Point it at that URL to build a client in Ruby, Dart, Scala, C++, or anything else it supports.
Alle negen hierboven zijn gegenereerd met openapi-generator uit /api/doc.json. Richt 'm op die URL voor een client in Ruby, Dart, Scala, C++ of wat het verder ondersteunt.
# same toolchain we use — Ruby, for example
docker run --rm -v "$PWD:/out" \
openapitools/openapi-generator-cli generate \
-i https://api.storekeeper.me/api/doc.json \
-g ruby \
-o /out/storekeeper-ruby
Try calls live in the browser, or read the flows end to end. Vuur live verzoeken af in de browser, of lees de flows van begin tot eind.