Quickstart
The Partner API lets your property system publish vacant premises to Shace directly. You push buildings and units by your own references whenever they are saved on your side; pushing the same reference again updates instead of duplicating. This page gets one listing live in four steps.
You need an API key from Shace. It looks like shace_sk_ followed by 48 hex characters and is scoped to your organization. Keep it server side: by design, the API answers browser requests from this docs site only.
All examples use https://api.shace.se/partner/v1. Against the preview environment, use its API host instead; the paths are the same.
Every endpoint, with field tables, examples and client snippets in your language, is in the API reference. The reference is generated from the running API, so it is always current. Its "Test request" button sends real requests: use a preview key and the preview host there.
1. Check the key
Code
The response names the organization the key acts for and the rate limit tier. If you get 401, the key is wrong, revoked or expired.
2. Upload three images
Listings need at least three images to go live. Upload them once and keep the returned URLs in your system; later pushes reuse them.
Code
The response carries urls in upload order. Shace converts the files to webp and resizes them, the same pipeline the app uses.
3. Push the listing
One request creates the building and the listing. The path segment is your reference for the unit; address reuses your organization's object at that address or creates and geocodes one. Later pushes with the same reference update the listing.
Code
Read three fields in the response:
outcomeiscreated,updatedorunchanged.statusispublishedwhen the listing went live.publishBlockerslists what stopped it from going live. Empty here; see Publishing from your system for what shows up otherwise.
Run the exact same request again and outcome is unchanged. Nothing was written, nothing was re-translated.
4. Read it back
Code
Anywhere a Shace id is accepted, ext: followed by your reference works too, so your system never has to store our ids.
From here
- Wire the request in step 3 to the save action in your system for units marked for Shace, and
POST /listings/ext:unit-4711/unpublishto the action that takes a unit off the market. Publishing from your system covers the rules that make this safe. - Push buildings on their own with
PUT /objects/{id}and point listings at them withobjectRefwhen several units share an address. - Use
GET /listings?updatedSince=to verify what Shace holds without re-pushing. - Read the API reference for every field, default and enum. Authentication, uploads and the error codes are documented there too, next to the things they describe.