Skip to main content

JSON Data Export

Overview

The JSON export allows you to download all inspection equipment data from memida in an open, machine-readable format. The export contains all inspection equipment (apparatuses), their inspections and test plans including all associated documents – bundled as a compressed ZIP archive.


Starting an Export

  1. Navigate to the Data Export section in the memida menu.
  2. Click the "JSON Export" button.
  3. The export is created in the background. Depending on the data volume, this may take a few minutes.
  4. Once completed, the ZIP file is automatically made available for download.

Note: One JSON export is possible per day. An already running export must be completed before a new one can be started.


Export Contents

After extracting the .zip file, you will find the following structure:

Memida_export_json_<uuid>_<date>.zip

├── manifest.json Export metadata
├── apparatuses.json All inspection equipment (apparatuses)
├── inspections.json All inspection reports / calibrations
├── testplans.json All test plans / test instructions

└── documents/ Associated documents
├── inspection/
│ └── <uuid>/
│ └── CalibrationCertificate.pdf
└── testplan/
└── <uuid>/
└── TestInstruction.pdf

File Description

FileDescription
manifest.jsonMetadata about the export itself (version, timestamp, file counters). Used for verification.
apparatuses.jsonComplete list of all inspection equipment with master data, location, cost center and user data.
inspections.jsonAll inspections/calibrations with results, inspection type and link to the inspection equipment.
testplans.jsonAll test plans/test instructions with calibration procedure and link to the inspection equipment.
documents/Binary files (PDFs, images, etc.) – organized by type and entity UUID.

Data Structures in Detail

manifest.json

The manifest file contains metadata about the export and serves for traceability and integrity verification.

{
"export_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"schema_version": "1.0.0",
"product": "memida",
"version": "3f7a2b1",
"created_at": "2026-02-11T14:30:00+01:00",
"created_by_user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"snapshot_consistency": "best_effort",
"binary_files_count": 42,
"binary_bytes_total": 15728640
}
FieldTypeDescription
export_idstringUnique UUID of this export. Identifies the export operation.
schema_versionstringVersion of the JSON schema (currently 1.0.0). This version will be incremented for future structural changes.
productstringSource system – always memida.
versionstringBuild version (Git hash) of the memida instance at the time of export.
created_atstringTimestamp of export creation in ISO 8601 format (YYYY-MM-DDTHH:MM:SS±HH:MM).
created_by_user_idstringUUID of the user who triggered the export.
snapshot_consistencystringConsistency model: best_effort – the data represents the state at the time of export as accurately as possible.
binary_files_countintegerNumber of binary files contained in the documents/ folder (PDFs, images, etc.).
binary_bytes_totalintegerTotal size of all binary files in bytes (uncompressed).

apparatuses.json

Contains a JSON array with all inspection equipment of the tenant.

[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"apparatus_basedata_id": "7bc12e98-3a45-4f01-8d2e-1a2b3c4d5e6f",
"apparatuses_locations_bases_id": "9de34f10-5b67-4a23-9e4f-2b3c4d5e6f70",
"user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"costcenter_id": "1ab23c45-6d78-9e01-f234-567890abcdef",
"status": "operational",
"identno": "PM-2024-001",
"serial_number": "SN-123456",
"checkup": true,
"next_check_at": "2026-06-15",
"is_one_time_next_check_at": false,
"import_id": null,
"created": "2024-03-15T10:30:00+01:00",
"modified": "2026-01-20T08:45:00+01:00",
"manufactor_id": "2bc34d56-7e89-0f12-a345-678901bcdef0",
"model": "DPI 620",
"costcenter_name": "Production Hall 3",
"manufacturer_name": "Druck",
"latest_checked": "2025-06-14T09:00:00+02:00",
"interval_unit": "months",
"check_interval": 12,
"apparatus_basedata": {
"id": "7bc12e98-3a45-4f01-8d2e-1a2b3c4d5e6f",
"manufactor_id": "2bc34d56-7e89-0f12-a345-678901bcdef0",
"model": "DPI 620",
"description": "Multifunction pressure calibrator",
"apparatus_basedata_types": [
{
"id": "4de56f78-9a01-2b34-c567-890123def456",
"name": "Pressure calibrator"
}
],
"name": "DPI 620"
},
"custom_fields": {
"1": {
"title": "Room number",
"value": "R-301",
"view_value": "R-301"
}
},
"apparatus_fullname": "Druck DPI 620 Multifunction Pressure Calibrator",
"apparatus_type_names": "Pressure calibrator"
}
]
FieldTypeDescription
idstring (UUID)Unique ID of the inspection equipment.
apparatus_basedata_idstring (UUID)Link to the master data (device type).
apparatuses_locations_bases_idstring? (UUID)Link to the location. null if no location is assigned.
user_idstring? (UUID)Responsible user.
costcenter_idstring? (UUID)Linked cost center. null if not assigned.
statusstringOperational status: operational, not_operational, decommissioned etc.
identnostringIdentification number / inventory number of the inspection equipment.
serial_numberstring?Serial number of the device.
checkupbooleanIndicates whether the inspection equipment is subject to monitoring.
next_check_atstring? (Date)Next inspection date in YYYY-MM-DD format. null if no date is scheduled.
is_one_time_next_check_atbooleantrue if the next inspection date was set manually (one-time).
import_idstring?Reference ID from a previous data import. null for natively created records.
createdstring (ISO 8601)Creation timestamp.
modifiedstring (ISO 8601)Last modification timestamp.
manufactor_idstring? (UUID)UUID of the manufacturer.
modelstring?Model designation.
costcenter_namestring?Name of the assigned cost center (denormalized).
manufacturer_namestring?Name of the manufacturer (denormalized).
latest_checkedstring? (ISO 8601)Timestamp of the last performed inspection.
interval_unitstring?Unit of the inspection interval: days, weeks, months, years.
check_intervalinteger?Numeric value of the inspection interval (e.g. 12 with months = annually).
apparatus_basedataobjectEmbedded master data of the device type (see below).
custom_fieldsobject?User-defined fields as key-value object. null if none are defined.
apparatus_fullnamestringCalculated full title: Manufacturer + Model + Description.
apparatus_type_namesstring?Comma-separated type designations.

Embedded Object: apparatus_basedata

FieldTypeDescription
idstring (UUID)UUID of the master data.
manufactor_idstring? (UUID)UUID of the manufacturer.
modelstring?Model designation.
descriptionstring?Description of the device type.
apparatus_basedata_typesarrayArray of types (categories) with id and name.
namestring?Short name of the master data record.

inspections.json

Contains a JSON array with all inspections / calibrations.

[
{
"id": "b2c34d56-7e89-0f12-a345-678901bcdef0",
"apparatus_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"type": "calibration",
"report": "Calibration successfully completed. All measured values within tolerance.",
"inspection_result_id": 1,
"checked_at": "2025-06-14T09:00:00+02:00",
"created": "2025-06-14T09:15:00+02:00",
"modified": "2025-06-14T09:15:00+02:00",
"deleted": null,
"inspection_type": {
"id": "c3d45e67-8f90-1a23-b456-789012cdef01",
"parent_type": "calibration",
"name": "DAkkS Calibration"
},
"inspection_result": {
"id": 1,
"name": "operational"
},
"files": [
{
"id": "d4e56f78-9a01-2b34-c567-890123def456",
"file_type": "application/pdf",
"created": "2025-06-14T09:16:00+02:00",
"name": "CalibrationCertificate_2025.pdf"
}
],
"custom_fields": null
}
]
FieldTypeDescription
idstring (UUID)Unique ID of the inspection.
apparatus_idstring (UUID)UUID of the associated inspection equipment (foreign key to apparatuses.json).
user_idstring? (UUID)UUID of the inspector / performing user.
typestringInspection type category: calibration, inspection, maintenance, other.
reportstring?Free-text inspection report / remarks about the inspection.
inspection_result_idintegerNumeric ID of the inspection result (see inspection_result).
checked_atstring (ISO 8601)Timestamp of the inspection.
createdstring (ISO 8601)Creation timestamp of the record.
modifiedstring (ISO 8601)Last modification timestamp.
deletedstring? (ISO 8601)Soft-delete timestamp. null if not deleted.
inspection_typeobjectEmbedded inspection type with id, parent_type and name.
inspection_resultobjectEmbedded inspection result with id and name (e.g. operational, not_operational).
filesarrayList of associated documents (see file structure below).
custom_fieldsobject?User-defined fields. null if none are defined.

Inspection Result (inspection_result.name)

ValueMeaning
operationalInspection equipment is operational
not_operationalInspection equipment is not operational
limitedLimited operational capability

testplans.json

Contains a JSON array with all test plans / test instructions.

[
{
"id": "e5f67890-ab12-3c45-d678-901234ef5678",
"apparatus_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"user_id": "f8e7d6c5-b4a3-2190-fedc-ba0987654321",
"inspection_plan": "Pressure calibration according to internal test instruction PA-2024-003.",
"created": "2024-03-20T11:00:00+01:00",
"modified": "2025-01-10T14:30:00+01:00",
"deleted": null,
"calibration_procedure": "PA-2024-003: Comparison against reference standard, 5 measurement points ascending/descending",
"files": [
{
"id": "f6789012-bc34-5d67-e890-123456f78901",
"file_type": "application/pdf",
"created": "2024-03-20T11:05:00+01:00",
"name": "TestInstruction_PA-2024-003.pdf"
}
],
"custom_fields": null
}
]
FieldTypeDescription
idstring (UUID)Unique ID of the test plan.
apparatus_idstring (UUID)UUID of the associated inspection equipment (foreign key to apparatuses.json).
user_idstring? (UUID)UUID of the creator.
inspection_planstring?Textual description of the test plan.
createdstring (ISO 8601)Creation timestamp.
modifiedstring (ISO 8601)Last modification timestamp.
deletedstring? (ISO 8601)Soft-delete timestamp. null if not deleted.
calibration_procedurestring?Description of the calibration / test procedure.
filesarrayList of associated documents.
custom_fieldsobject?User-defined fields. null if none are defined.

File References (files)

Each inspection and each test plan can contain documents. The metadata is included in the JSON, the actual file is located in the documents/ folder of the ZIP file.

{
"id": "d4e56f78-9a01-2b34-c567-890123def456",
"file_type": "application/pdf",
"created": "2025-06-14T09:16:00+02:00",
"name": "CalibrationCertificate_2025.pdf"
}
FieldTypeDescription
idstring (UUID)Unique ID of the file.
file_typestringMIME type of the file (e.g. application/pdf).
createdstring (ISO 8601)Upload timestamp.
namestringOriginal filename.

Path in the ZIP archive: The associated binary file is located at documents/<type>/<entity-uuid>/<filename>, where:

  • <type> = inspection or testplan
  • <entity-uuid> = UUID of the inspection or test plan
  • <filename> = Original filename

User-Defined Fields (custom_fields)

User-defined fields (custom fields) are exported as an object, provided that they are configured and populated for the respective record. If no user-defined fields exist, the value is null.

{
"1": {
"title": "Room number",
"value": "R-301",
"view_value": "R-301"
},
"2": {
"title": "Inspection status",
"value": "active",
"view_value": "Active"
}
}
FieldTypeDescription
titlestringLabel of the field (as displayed in the memida interface).
valuestringTechnical / stored value.
view_valuestringDisplay value (e.g. for selection fields the readable text instead of the internal value).

The key (e.g. "1", "2") corresponds to the internal ID of the custom field.


Notes

  • Encoding: All JSON files are encoded in UTF-8. Special characters (umlauts, special characters) are output directly, not as Unicode escape sequences.
  • Consistency: The export represents a snapshot at the time of creation (snapshot_consistency: best_effort). Changes made during the export creation may be partially included.
  • File size: The size of the ZIP file depends largely on the number and size of the attached documents. The JSON data itself is usually compact.
  • Compatibility: The export follows a versioned schema (schema_version in manifest.json). For future changes to the data structure, the schema version will be incremented and the changes documented.

Frequently Asked Questions (FAQ)

Why can I only export once per day? The daily limit prevents unnecessary system load and ensures that exports are requested intentionally. For special needs, please contact support.

Are deleted inspection equipment exported? No. Only active inspection equipment of the company is exported.

Which documents are exported? All files linked to an inspection equipment or an inspection at the time of the export are included in the ZIP archive. The files are exported in their original form (without conversion).