Integrations & API

Easily connect Stallingo to everything you already use

Your website, your accounting, your barrier or your own Excel reporting: with the Stallingo API you read and write data securely, with exactly the permissions you decide. You create an API key yourself — no ticket, no waiting.

curl https://stallingo.nl/api/mij -H "Authorization: Bearer sk_live_…"
# → { "data": { "stalling": "Stalling Flevoland", "via": "api-key", "scopes": ["klanten:lezen", …] } }

Create a key yourself

As owner you create a key in Settings → API integrations within a minute. No request, no waiting.

Scoped: only what is needed

Per key you choose exactly which permissions apply: e.g. read customers only, or create appointments only. Revoke at any time with one click.

Plain REST + JSON

The same API our own app uses. Works with any language and with tools like Zapier, Make, n8n or Power Automate.

What can you do with it?

Integrations storage businesses use every day

Registration form on your own website

New customers sign up on your site and appear on the waiting list in Stallingo right away — including object type and length.

Accounting kept up to date

Fetch sent and paid invoices and push them to Exact, Moneybird, Xero or QuickBooks.

Access and barrier

Check at the gate whether a licence plate belongs to a customer with a scheduled pick-up.

Your own dashboards

Occupancy per shed, revenue and outstanding items in Power BI, Google Sheets or your own reporting.

Appointments from your planning

Schedule pick-ups and drop-offs from an external planning board; the customer automatically receives an e-mail confirmation.

Multiple locations

Consolidate data from all your locations into one overview, with a separate key per location.

How it works

Connected in three steps

  1. 1

    Create an API key

    Go to Settings → API integrations, name the key and tick the scopes the integration needs.

  2. 2

    Send the key as a Bearer token

    Every request gets a header Authorization: Bearer sk_live_… . Test it right away with GET /api/mij.

  3. 3

    Read and write via JSON

    Use the endpoints below. Whatever you do via the API shows up in the app immediately — and vice versa.

Documentation

API reference

All endpoints speak JSON and live under the base URL below. Responses look like { data: … }; errors like { error, message, details }. Field names are in Dutch (the product language).

Base URLhttps://stallingo.nl/api

Authentication

Send your API key in the Authorization header as a Bearer token. Keys start with sk_live_ and belong to one storage business. Keep them secret (never in frontend code or a repository). A revoked or expired key returns 401.

Authorization: Bearer sk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Scopes

Each key has a set of scopes. A request to an endpoint the key has no scope for returns 403 with the missing scope in the message. User and settings management is deliberately never available via the API.

klanten:lezenRead customers
klanten:schrijvenCreate and update customers
objecten:lezenRead objects
objecten:schrijvenCreate and update objects
afspraken:lezenRead pick-up/drop-off appointments
afspraken:schrijvenCreate and update pick-up/drop-off appointments
plekken:lezenRead sheds and rows
plekken:schrijvenCreate and update sheds and rows
facturen:lezenRead invoices
facturen:schrijvenCreate and update invoices
contracten:lezenRead contracts
contracten:schrijvenCreate and update contracts
{ "error": "fout", "message": "API-key mist scope 'facturen:schrijven'" }

Endpoints

List endpoints return at most 500 rows, sorted by creation date. Amounts are always in cents (integer); dates in ISO 8601.

MethodPathScopeDescription
GET/api/mijStorage details and the key's scopes (test endpoint)
GET/api/klantenklanten:lezenAll customers
POST/api/klantenklanten:schrijvenCreate customer
GET/api/klanten/{id}klanten:lezenOne customer with objects
PATCH/api/klanten/{id}klanten:schrijvenUpdate customer
GET/api/objectenobjecten:lezenAll caravans, campers and boats
POST/api/objectenobjecten:schrijvenCreate object
PATCH/api/objecten/{id}objecten:schrijvenUpdate or move object
GET/api/loodsenplekken:lezenSheds with rows and occupancy
GET/api/rijenplekken:lezenRows with free length
GET/api/afsprakenafspraken:lezenPick-up/drop-off appointments (filter: ?status=gepland)
POST/api/afsprakenafspraken:schrijvenSchedule appointment (customer gets a confirmation)
PATCH/api/afspraken/{id}afspraken:schrijvenChange status or time
GET/api/inschrijvingenklanten:lezenWaiting list / registrations
GET/api/facturenfacturen:lezenInvoices (filter: ?status=verzonden)
POST/api/facturenfacturen:schrijvenCreate invoice (draft)
POST/api/facturen/{id}facturen:schrijvenAction: verzenden (with iDEAL link), betaald, annuleren
GET/api/contractencontracten:lezenContracts
POST/api/contractencontracten:schrijvenCreate contract (PDF)

Example: create a customer and schedule an appointment

First create the customer, then attach an object and schedule a drop-off. The customer automatically receives an e-mail confirmation on behalf of your business.

# 1. Klant aanmaken
curl -X POST https://stallingo.nl/api/klanten \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"naam":"J. de Vries","email":"j.devries@example.com","telefoon":"06-12345678"}'
# → { "data": { "id": "6f1c…", "klantnummer": "K1041", … } }

# 2. Object koppelen
curl -X POST https://stallingo.nl/api/objecten \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"klantId":"6f1c…","type":"caravan","merk":"Hobby De Luxe 495","kenteken":"WK-12-34","lengteCm":650}'

# 3. Brengafspraak inplannen (klant krijgt e-mailbevestiging)
curl -X POST https://stallingo.nl/api/afspraken \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"objectId":"9a2b…","type":"brengen","gepland":"2026-09-04T10:30:00+02:00"}'

Error codes

  • 400Invalid input — details lists what is wrong per field
  • 401Missing or invalid API key
  • 402API access not in your plan (upgrade to Unlimited)
  • 403Key lacks the required scope
  • 404Not found (or belongs to another business)
  • 409Conflict, e.g. e-mail address already exists

Limits & usage

At most 20 active keys per business. Be reasonable with polling (e.g. every 5 minutes); webhooks are coming for realtime needs. Each key shows in the app when it was last used.

Webhooks (coming soon)

Notifications for new registrations, paid invoices and changed appointments. Want early access? Let us know.

API access is part of the Unlimited plan

Unlimited objects and users, multiple locations, API keys and a dedicated contact. Switch instantly, also from Starter or Professional.

Ready to run your storage business with less effort?

Request a free demo. In half an hour we will show you how Stallingo works with your halls, customers and rates.

No credit card required · Personal walkthrough · English support available