De publieke API van Ziggu: wat erin zit en wat niet
De publieke API van Ziggu ontsluit 28 resources over 55 endpoints, van projecten en units tot issues, beslissingen, betaalschijven en berichten, met een limiet van 60 requests per minuut.
De publieke API van Ziggu ontsluit 28 resources over 55 endpoints, van projecten en units tot issues, beslissingen, betaalschijven en berichten, met een limiet van 60 requests per minuut.

https://api.ziggu.app/public in JSON:API-formaat.ziggu-integration-token, met de slug van je integratie en je token, per organisatie op aanvraag.De publieke API van Ziggu ontsluit 28 resources over 55 endpoints, in zeven families: projectstructuur, mensen, opleverpunten en nazorg, beslissingen, geld, documenten en berichten. Dat is de hele oppervlakte. Wat buiten die zeven families valt, haal je er niet uit, wat de productpagina ernaast ook zegt.
Eén ding overkomt elk team op de eerste namiddag. De namen in de API zijn niet de namen op de website. Een ontwikkelaar grept op issues, een projectleider noemt datzelfde ding Reports. Allebei juist, en een vertaaltabel scheelt je een uur verwarring in de kickoff.
| Familie | Resources in de API | Hoe het in Ziggu heet |
|---|---|---|
| Projectstructuur | projects, phases, lots, buildings, units, spaces, fractions | Projecten |
| Mensen | customers, unit_customers, companies, partners, employees (alleen lezen) | Klanten en partners |
| Opleverpunten en nazorg | issues, issue_lists, issue_list_types, issue_categories, issue_statuses, tickets (lezen), ticket_categories (lezen) | Reports |
| Beslissingen | decisions, decision_types, decision_type_categories (lezen), proposals | Decisions and Approvals |
| Geld | installments, installments/groups | De financiële laag in Client Updates |
| Documenten | documents, attachment_categories | Documents |
| Berichten | messages (alleen GET en POST) | Conversations |
Lees die laatste kolom voor je iets een naam geeft in je eigen systeem. Een veld issue_status dat in een dashboard belandt waar je projectleiders dagelijks in kijken, wordt gelezen als een bugtracker en niet als een lijst opleverpunten.
Een project valt uiteen in fases, loten en gebouwen, en die dragen de units; een unit draagt daaronder zijn ruimtes. Elke foreign key volgt die lijn, dus een gefilterde call op eender welk niveau geeft je de tak eronder terug.
fractions staat naast die lijn in plaats van erin: het draagt een project, een unit en een betaalschijf, en is dus de koppeling tussen een unit en wat ervoor gefactureerd wordt.
Twee dingen om te weten voor je de joins schrijft. Fases, loten en gebouwen dragen elk units_count en units_active_count, dus een rollup voor rapportering hoef je niet zelf te berekenen. En elk niveau behalve project en unit is optioneel: een unit kan rechtstreeks aan een project hangen.
Authenticatie loopt via een eigen header, ziggu-integration-token, met de slug van je integratie en je token erin. Het is geen OAuth 2.0 en er is geen bearer token. Toegang wordt per organisatie toegekend, op aanvraag: beschrijf bij ons team wat je wil bouwen, en zij zetten de integratie mee op.
De limiet is 60 requests per minuut, geteld over alle endpoints samen en niet per resource. Bouw dus een nachtelijke sync in plaats van een lus per record.
De API is niet alleen-lezen. De meeste resources aanvaarden POST, PUT of PATCH, en verschillende aanvaarden DELETE. messages is de uitzondering waar mensen over struikelen: die neemt GET en POST, dus je kan een bericht in een gesprek plaatsen, maar niet aanpassen of verwijderen.
Antwoorden volgen JSON:API. Een platte import geeft je één kolom data, dus reken erop dat je data en attributes moet uitklappen, en dat relaties als referenties terugkomen in plaats van als geneste objecten.
De beschikbaarheid wordt gepubliceerd en niet beloofd: over de laatste 60 dagen draaide de API op 99,997%, op dezelfde publieke statuspagina als de app en de website.
Vier mogelijkheden op de website van Ziggu hebben geen endpoint achter zich, en dat vooraf weten is meer waard dan eender welke featurelijst.
Er is geen tasks-resource. Taakbeheer is een productfunctie en is niet rapporteerbaar via de publieke API. Heeft je dashboard taakstatus nodig, dan heb je daar een andere weg voor nodig.
Er zijn geen milestones. phases bestaat wel en wordt er vaak voor aangezien, maar een fase is een structuurniveau dat loten en gebouwen draagt, geen datum op een tijdlijn. Wat je op milestones in de API bouwt, bouw je op een resource die niet bestaat.
Forms en Workflows hebben evenmin een endpoint. Antwoorden op formulieren en de staat van een workflow blijven in het product.
Er zijn geen webhooks. Niets in de API duwt iets naar jou, dus elke integratie is een pull op jouw schema, binnen die 60 per minuut. Dat ene feit bepaalt meestal de architectuur: een wijziging in Ziggu wordt zichtbaar in jouw systeem wanneer je volgende poll draait, niet op het moment zelf.
| Functie op de website | Endpoint in de publieke API |
|---|---|
| Reports | Ja: issues, issue_lists, tickets |
| Decisions and Approvals | Ja: decisions, proposals |
| Documents | Ja: documents, attachment_categories |
| Conversations | Deels: messages, alleen GET en POST |
| Client Updates | Deels: installments en installments/groups |
| Taakbeheer | Nee |
| Forms | Nee |
| Workflows | Nee |
Zoek je een koppeling met een specifieke tool in plaats van een lijst resources, dan is het overzicht van de integraties de kortere weg.
De volledige referentie is een OpenAPI 3.0.3-specificatie, gepubliceerd op api.ziggu.app/api_docs, en ze beschrijft elk endpoint met zijn velden en relaties. Zij is de bron van record: waar deze pagina en de specificatie elkaar tegenspreken, heeft de specificatie gelijk.
Om te starten neem je contact op met ons team met de integratie die je in gedachten hebt. Toegang wordt per organisatie opgezet, en uit datzelfde gesprek komt je token.