Het formaat van de export
Een export is één zip-bestand met JSON-bestanden en de originele bestanden. Op deze pagina staat hoe de zip is opgebouwd en welke afspraken gelden voor de inhoud. Terug naar het overzicht.
Opbouw van de zip
appset-export-<business>-<jjjj-mm-dd>.zip
README.md
schema.json
manifest.json
bedrijf/ aanbod/ klanten/ bestellingen/ afspraken/ medewerkers/ inhoud/ statistieken/ bestanden_media/
<tabel>.json
bestanden/
<pad zoals in de gegevens>
Elk tabelbestand is een JSON-array van objecten: één object per regel. Een tabel zonder regels is []. In inhoud/ zitten submappen: blog/, paginas/ en reviews/.
| Map | Wat erin zit |
|---|---|
| bedrijf | Bedrijfsgegevens, adressen, openingstijden, domeinen, modules, betaal- en verzendopties, instellingen |
| aanbod | Producten, diensten, categorieën, voorraad, prijzen, kortingen |
| klanten | Klanten, profielen, verzendadressen, uitnodigingen, likes |
| bestellingen | Bestellingen met regels, verzendingen en bestanden |
| afspraken | Afspraken, onderdelen van afspraken, gereserveerde tijden |
| medewerkers | Medewerkers, functies, vestigingen, beschikbaarheid, meldingsvoorkeuren |
| inhoud | Blog, pagina's, blokken, menu, galerij, reviews |
| statistieken | Bezoeken aan de website |
| bestanden_media | Gegevens over geüploade afbeeldingen en video's |
bestanden/ | De bestanden zelf |
Afspraken over de inhoud
| Onderwerp | Afspraak |
|---|---|
| Tekenset | UTF-8 |
| Datum en tijd | ISO 8601. Bij elk veld staat welke van de twee het is. datum-tijd, UTC: met Z erachter, bijvoorbeeld 2026-10-01T07:30:00Z. datum-tijd, zonder tijdzone: zonder Z, bijvoorbeeld 2026-10-01T09:30:00; dat is de tijd zoals hij in Appset is opgeslagen, zonder tijdzone erbij. |
| Tijd van de dag | HH:mm:ss, bijvoorbeeld in roosters en openingstijden |
| Bedragen | Decimaal getal in euro's, tenzij bij het veld anders staat |
| Keuzelijsten | Als tekst, bijvoorbeeld "Paid". De mogelijke waarden staan bij het veld. |
| Kenmerken (ids) | Zoals in Appset. Relaties tussen tabellen lopen via deze kenmerken; bij elke tabel staat waarnaar hij verwijst. |
| Lege waarden | null. Elk veld kan null zijn als er geen waarde is, tenzij bij het veld anders staat. |
| Geneste gegevens | Instellingen en opbouw die in Appset als JSON zijn opgeslagen, staan als JSON-object in het veld, niet als tekst. |
| Veldnamen | Zoals in de bron. Daardoor verschilt de schrijfwijze per onderdeel, bijvoorbeeld OrderNr en blob_path. |
| Paden van bestanden | Relatief, zoals media/abc.jpg. Het bestand staat in de zip onder bestanden/media/abc.jpg. |
manifest.json
Een overzicht van de export, om te controleren of alles compleet is.
{
"business": "voorbeeld-kapper",
"aangemaakt": "2026-10-01T08:12:45Z",
"formaatversie": "1.1",
"bronnen": ["core", "appointments", "post", "pages", "reviews", "images", "notifications", "monitor"],
"tabellen": {
"bedrijf/business": 1,
"bestellingen/orders": 312
},
"bestanden": [
{
"pad": "media/3f2a9c1e.jpg",
"zip_pad": "bestanden/media/3f2a9c1e.jpg",
"grootte": 184213,
"sha256": "9b74c9897bac770ffc029102a200c5de..."
}
],
"ontbrekend": ["products/oud-product.jpg"],
"externe_urls": ["https://voorbeeld.nl/logo.png"]
}
| Veld | Betekenis |
|---|---|
| business | Technische naam van de business |
| aangemaakt | Wanneer de export is gemaakt (UTC) |
| formaatversie | Versie van het formaat, zie Versies en wijzigingen |
| bronnen | De onderdelen van Appset waaruit gegevens zijn opgehaald. Alleen ter informatie. |
| tabellen | Per tabel het aantal regels |
| bestanden | Per bestand het pad in de gegevens (pad), het pad in de zip (zip_pad), de grootte in bytes (grootte) en het SHA-256-controlegetal (sha256) |
| ontbrekend | Paden die in de gegevens staan, maar waarvan het bestand niet meer bestond. De verwijzing staat nog wel in de gegevens. |
| externe_urls | Verwijzingen naar bestanden buiten Appset. Die zitten niet in de zip. |
schema.json
Een JSON Schema (draft 2020-12) met onder $defs per tabel de velden en hun JSON-type. Het schema is afgeleid uit de regels in de export zelf: het zegt welke typen voorkwamen, niet welke mogelijk zijn. De betekenis van elk veld staat op de tabelpagina's.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Data-export van Appset",
"$defs": {
"bestellingen/orders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"OrderNr": { "type": ["number"] },
"Note": { "type": ["null", "string"] }
}
}
}
}
}
README.md
Een korte uitleg in het Nederlands van wat er in de export zit, met een verwijzing naar deze pagina.
Bestanden
In bestanden/ staan de originele bestanden die in de gegevens voorkomen: afbeeldingen en video's van producten, diensten, categorieën, het bedrijf, de blog, pagina's en de galerij, afbeeldingen in de tekst van blogposts en blokken, facturen, pakbonnen en bijlagen bij bestellingen, bijlagen bij pagina's, en het retourbeleid en de voorwaarden van de business als die zijn geüpload. Elk bestand staat onder hetzelfde pad als in de gegevens.
Niet in de zip:
- Thumbnails. Die zijn uit de originelen te maken.
- Bestanden buiten Appset (
externe_urlsinmanifest.json). - Bestanden die niet meer bestonden (
ontbrekendinmanifest.json).
Controleren
Download controleer_export.py en draai het met Python 3.9 of nieuwer. Het script gebruikt alleen de standaardbibliotheek.
python controleer_export.py appset-export-voorbeeld-kapper-2026-10-01.zip
Het script controleert:
- dat elke tabel geldige JSON is: een lijst van regels;
- dat het aantal regels per tabel klopt met
manifest.json; - dat elke tabel en elk veld in
schema.jsonstaat, met het juiste type; - dat elk bestand in
bestanden/staat, met de grootte en SHA-256 uitmanifest.json.
De uitkomst is OK of AFWIJKEND met de afwijkingen, en exitcode 0 of 1. Het script laat ook zien hoe je een export inleest.
Wat niet meegaat
| Gegeven | Waarom niet |
|---|---|
| Wachtwoorden en andere inloggegevens | Die staan versleuteld bij onze inlogdienst en zijn ook voor ons niet leesbaar. Gebruikers kiezen bij een nieuwe partij een nieuw wachtwoord. |
| Pushtokens van telefoons | Die horen bij een toestel en onze app, en werken bij een andere partij niet. |
| Betaalgegevens bij Stripe, zoals kaartgegevens en uitbetalingen | Die staan in het eigen Stripe-account van de business. |
| Facturen van Appset aan de business | Die staan in het dashboard, onder Abonnement & facturering. |
| Logbestanden, beveiligingsinstellingen en sleutels | Interne gegevens voor de werking en beveiliging van het platform. Sleutels van zelf gekoppelde diensten, zoals Mailchimp, maak je bij die dienst opnieuw aan. |
| Kenmerken van koppelingen met Stripe en agenda's | Die werken alleen binnen onze koppelingen. |
| Winkelwagens die niet zijn afgerekend | Tijdelijk, van de bezoeker, en met het IP-adres van de bezoeker. |
| Onderdelen die voor alle klanten gelden | Zoals modules, pakketten en standaardopmaak van pagina's. Welke keuzes de business ervan maakte, gaat wel mee. |
| De software van het platform | Het dashboard, de app en de onderliggende software. |
De volledige lijst staat ook in de bijlage "Exporteerbare gegevens" bij de voorwaarden.
Versies
De versie van het formaat staat in manifest.json onder formaatversie. De regels en de wijzigingen staan op Versies en wijzigingen.