Quickstart
Create an API key and make your first authenticated WOHNO API call in under five minutes.
This quickstart takes you from zero to a successful API call in under five
minutes. You will create an API key in your dashboard and use it to read your
listings over https://wohno.de/api/v1.
Before you start
You need a WOHNO account and an organization. If you do not have one yet, create an account first — every API key belongs to an organization, and every call runs in that organization's context.
Step 1 — Create an API key
- Open Dashboard → Settings → API at
https://wohno.de/dashboard/settings. - Click Create API key.
- Choose the key type:
- Secret key (
sk_…) — for server-to-server use. It can carry any scope (read, write, delete). Pick this for the quickstart. - Publishable key (
pk_…) — for browser/embed use. Read-only, and it requires an origin allowlist. See the authentication guide to decide which one fits your use case.
- Secret key (
- Grant the
listings:readscope (enough for this quickstart). - Copy the secret value now — a secret key is shown exactly once and stored only as a hash. If you lose it, create a new key.
Your key looks like sk_live_xxxxxxxxxxxxxxxxxxxxxxxx. Treat it like a password:
never commit it to git and never ship it in a browser bundle.
Step 2 — Make your first call
Send a GET request to /api/v1/listings with your key in the X-API-Key
header:
curl https://wohno.de/api/v1/listings \
-H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"You should get an HTTP 200 with a JSON body. A successful response looks like
this (truncated):
{
"data": [
{
"id": "9f1c2a3b-...",
"title": "Bright 2-room apartment",
"status": "published"
}
],
"pagination": {
"next_cursor": "eyJpZCI6...",
"has_more": true,
"limit": 20
}
}That is it — you have made your first authenticated WOHNO API call.
Step 3 — Understand the response
- Envelope — list endpoints wrap results in
data.GET /api/v1/listingsuses cursor pagination: keep passingpagination.next_cursoras the next?cursor=whilepagination.has_moreistrue. (Some endpoints, likeGET /api/v1/organizations, use offset pagination with ametaobject instead — see the conventions reference.) - Rate-limit headers — every response carries
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset. The limit is 1000 requests per hour per key. - Quota headers —
X-Quota-Limit,X-Quota-Used,X-Quota-ResetandX-Quota-Statusreport your organization's monthly usage (tracking-only by default). - Errors — on failure the body is
{ "error": { "code", "message", "status" } }. Always branch on the stablecode, not themessagetext.
Try another endpoint
Listing your organizations works the same way (offset pagination here):
curl "https://wohno.de/api/v1/organizations?page=1&per_page=20" \
-H "X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"Next steps
- Authentication guide — key types, scopes, origin allowlists, rotation and auth errors.
- API Reference — the full, interactive endpoint reference.
- Use-case guides — end-to-end walkthroughs for common integrations.