Appset

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/.

MapWat erin zit
bedrijfBedrijfsgegevens, adressen, openingstijden, domeinen, modules, betaal- en verzendopties, instellingen
aanbodProducten, diensten, categorieën, voorraad, prijzen, kortingen
klantenKlanten, profielen, verzendadressen, uitnodigingen, likes
bestellingenBestellingen met regels, verzendingen en bestanden
afsprakenAfspraken, onderdelen van afspraken, gereserveerde tijden
medewerkersMedewerkers, functies, vestigingen, beschikbaarheid, meldingsvoorkeuren
inhoudBlog, pagina's, blokken, menu, galerij, reviews
statistiekenBezoeken aan de website
bestanden_mediaGegevens over geüploade afbeeldingen en video's
bestanden/De bestanden zelf

Afspraken over de inhoud

OnderwerpAfspraak
TekensetUTF-8
Datum en tijdISO 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 dagHH:mm:ss, bijvoorbeeld in roosters en openingstijden
BedragenDecimaal getal in euro's, tenzij bij het veld anders staat
KeuzelijstenAls 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 waardennull. Elk veld kan null zijn als er geen waarde is, tenzij bij het veld anders staat.
Geneste gegevensInstellingen en opbouw die in Appset als JSON zijn opgeslagen, staan als JSON-object in het veld, niet als tekst.
VeldnamenZoals in de bron. Daardoor verschilt de schrijfwijze per onderdeel, bijvoorbeeld OrderNr en blob_path.
Paden van bestandenRelatief, 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"]
}
VeldBetekenis
businessTechnische naam van de business
aangemaaktWanneer de export is gemaakt (UTC)
formaatversieVersie van het formaat, zie Versies en wijzigingen
bronnenDe onderdelen van Appset waaruit gegevens zijn opgehaald. Alleen ter informatie.
tabellenPer tabel het aantal regels
bestandenPer 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)
ontbrekendPaden die in de gegevens staan, maar waarvan het bestand niet meer bestond. De verwijzing staat nog wel in de gegevens.
externe_urlsVerwijzingen 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_urls in manifest.json).
  • Bestanden die niet meer bestonden (ontbrekend in manifest.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.json staat, met het juiste type;
  • dat elk bestand in bestanden/ staat, met de grootte en SHA-256 uit manifest.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

GegevenWaarom niet
Wachtwoorden en andere inloggegevensDie staan versleuteld bij onze inlogdienst en zijn ook voor ons niet leesbaar. Gebruikers kiezen bij een nieuwe partij een nieuw wachtwoord.
Pushtokens van telefoonsDie horen bij een toestel en onze app, en werken bij een andere partij niet.
Betaalgegevens bij Stripe, zoals kaartgegevens en uitbetalingenDie staan in het eigen Stripe-account van de business.
Facturen van Appset aan de businessDie staan in het dashboard, onder Abonnement & facturering.
Logbestanden, beveiligingsinstellingen en sleutelsInterne 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'sDie werken alleen binnen onze koppelingen.
Winkelwagens die niet zijn afgerekendTijdelijk, van de bezoeker, en met het IP-adres van de bezoeker.
Onderdelen die voor alle klanten geldenZoals modules, pakketten en standaardopmaak van pagina's. Welke keuzes de business ervan maakte, gaat wel mee.
De software van het platformHet 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.