Basis en authenticatie
Gebruik het basisadres uit Instellingen → API & webhooks. Alle v1-routes gebruiken Authorization: Bearer <msk_-servicesleutel>. Zet geheimen in een credential store, niet in een openbare website. De API heeft geen algemene browser-CORS-configuratie of cookie-login voor externe toepassingen.
Downloads: /downloads/mane-api-v1.openapi.json bevat de machineleesbare referentie. /downloads/mane-api-handleiding.md bundelt deze API-artikelen in één leesbaar document. Voor je eigen veldinrichting blijft GET /schema leidend.
Routegroepen
| Route na /api/v1 | Methoden | Recht / bijzonderheid |
|---|---|---|
| /workspace | GET | workspace:read |
| /schema | GET | schema:read; gepagineerde catalogus |
| /schema/{objectId} | GET, PATCH | schema:read/write; PATCH alleen ingerichte objecten |
| /objects/{objectId} | GET, POST, PATCH | schema:read/write; POST maakt een nieuw eigen object |
| /objects/{objectId}/records[/{id}] | GET, POST, PATCH, DELETE | records:read/write of objects.<id>:read/write |
| /records[/{id}] | GET, POST, PATCH, DELETE | records:read/write; bij POST type meegeven |
| /projects[/{id}] | GET, POST, PATCH, DELETE | projects:read/write; ook trajecten |
| /projects/{projectId}/tasks[/{taskId}] | GET, POST, PATCH, DELETE | tasks:read/write |
| /tasks | GET | tasks:read; lijst met projectId |
| /relations[/{linkId}] | GET, POST, DELETE | relations:read/write |
| /files[/{id}] | GET; POST alleen op collectie | files:read/write; detail levert bestand |
| /events | GET | events:read; after is laatste event-ID |
| /webhooks[/{id}] | GET, POST, PATCH, DELETE | webhooks:read/write; geen workspace If-Match nodig |
Overige dossierverzamelingen
De volgende collecties ondersteunen GET en POST op de verzameling, en GET, PATCH en DELETE op een record-ID. Gebruik telkens <collectie>:read of <collectie>:write. Beschermde documenten, historische verwijzingen en zakelijke validatie kunnen een wijziging blokkeren.
| Collectie | Inhoud |
|---|---|
| products | Diensten en producten |
| quotes | Offertes |
| invoices | Facturen en betaalregistraties |
| orders | Inkooporders |
| hours | Urenregistraties |
| messages | Opgeslagen dossierberichten; geen Gmail-verzendactie |
| appointments | Planning |
| segments | Segmenten |
| stock-moves | Voorraadmutaties |
| recurring-costs | Terugkerende kosten |
| catalog-lists | Prijslijsten |
| team | Teamleden voor planning; geen accounttoegang beheren |
| availability | Beschikbaarheid |
| time-off | Vrije dagen |
| leave-requests | Verlofaanvragen |
| skills | MAINE-instructies; geen AI-uitvoering |
Dossiers en financiële bescherming
Stuur één dossier per schrijfverzoek. De JSON-limiet is 1 MB. Er is geen bulk- of batchendpoint, PUT of geforceerd opslaan. Gebruik de normale dossieropbouw en controleer referenties op bestaande projecten, relaties en producten.
Een vastgelegde offerte of uitgegeven factuur blijft beschermd. Maak een nieuwe versie of passende correctie via de documentroute in MANE. Een API-verzoek naar invoices is geen banktransactie. Het opslaan van een message verstuurt geen mail. Accountuitnodigingen en gebruikersrechten horen bij Team & rollen, niet bij de team-planningscollectie.
Bestanden uploaden en gebruiken
POST /files gebruikt JSON met name, mime en contentBase64. Het gedecodeerde bestand is maximaal 15 MB. De upload-JSON heeft een grens van 22 MB. Gebruik bijvoorbeeld PDF voor een factuur; het toegestane bestandstype en de bestandsgrootte worden door de opslagroute gecontroleerd.
De API accepteert via de bestaande bestandscontrole PDF, PNG, JPEG, WebP, tekst, DOCX, XLSX, DWG en DXF. GET /files geeft metadata; GET /files/{id} levert de bestandsinhoud en vraagt een Bearer-token. Een ontvangen relatieve bestands-URL is dus geen openbare downloadlink.
Een gelijke inhoud met dezelfde naam en MIME kan reused:true geven. Het uploaden koppelt het bestand nog niet aan een dossier. Gebruik daarna de passende bijlagenstructuur van het dossier en de normale revisiecontrole. Bestanden via DELETE verwijderen is niet beschikbaar.
{
"name":"voorbeeld.txt",
"mime":"text/plain",
"contentBase64":"Vm9vcmJlZWxk"
}Webhookbeheer via de API
POST /webhooks gebruikt name, url, events en eventueel enabled. Het antwoord toont signingSecret één keer. GET geeft configuratie en bezorgtellingen terug, zonder het geheim. PATCH accepteert enabled of retryFailed:true. DELETE trekt de webhook in.
Voorbeeld van aanmaken: {"name":"n8n taken","url":"https://jouw-ontvanger.example/webhook","events":["tasks.created"],"enabled":false}. Gebruik een werkelijk publiek HTTPS-adres; het voorbeeldadres is geen geteste bestemming.
Versie en compatibiliteit
De route is versie v1, de documentatie hoort bij de BETA-uitwerking van 19 oktober 2026. De objectinrichting kan per werkruimte verschillen. Neem daarom een schemacontrole en foutpad op in je koppeling.
De OpenAPI-download beschrijft routes en de gemeenschappelijke structuur. De download is geen SDK en bevat geen geheimen of jouw bedrijfsgegevens. Specifieke eigen velden ontdek je alleen binnen jouw MANE via de veldcatalogus.
Kom je er niet uit? Stel Jerryt je vraag.