This page is the register of the data structures and data formats of the Spyral workspace export. Article 26(b) of the Data Act (Regulation (EU) 2023/2854) asks us to keep this register online and up to date. It describes what a workspace owner receives when exporting the workspace data under section 14.6 of the Terms of Service, so that a firm, or a provider it is moving to, can prepare the import before a switch starts.
How the archive is organised
The workspace export is a single ZIP archive. It contains:
- manifest.json, which names the format and its version, describes every data file with its columns, their types and the number of records, and lists what is not included and why;
- README.txt, a short guide to the archive;
- a data folder with one JSON file and one CSV file for each kind of record (for long text values, such as the text extracted from documents, a JSON file only); and
- a files folder with files.json and files.csv, which list every original file with a download link.
Identifiers link the files to each other. For example, company_id in data/company_people refers to id in data/companies, and document_id in data/document_tags refers to id in data/documents, so the records can be linked again in another system. An export never contains data of another workspace.
Encoding
- All files are encoded in UTF-8.
- Each JSON data file is an array of objects, one object per record. The keys are the column names listed below.
- Each CSV file follows RFC 4180: comma-separated, one record per line, lines ending in CRLF, with a header row that names the columns. It starts with a byte order mark so that spreadsheet applications recognise the encoding.
- Dates and times are written in ISO 8601 format. Structured values (the jsonb type) are nested JSON in the JSON files and compact JSON text in the CSV files. An empty value is null in JSON and an empty cell in CSV.
- In the CSV files, a text value that starts with =, +, -, @, a tab or a carriage return is preceded by an apostrophe, so that a spreadsheet application does not run it as a formula. The JSON files contain the values unchanged.
- The column types are the PostgreSQL types of the underlying database columns.
Register
| Format identifier | spyral-workspace-export |
|---|
| Format version | 1.0 |
|---|
| Encoding | UTF-8. JSON files are arrays of objects; CSV files follow RFC 4180 with a header row. |
|---|
| Download period | 7 days after the export is ready, for the archive and the file links |
|---|
data/team.json data/team.csvThe workspace (firm) itself: name, plan and eCDF filing identity.16 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
name | varchar(100) | No |
created_at | timestamp | No |
updated_at | timestamp | No |
plan_name | varchar(50) | Yes |
subscription_status | varchar(20) | Yes |
trial_ends_at | timestamp | Yes |
onboarding_profile | jsonb | Yes |
is_sandbox | boolean | No |
legal_versions | jsonb | No |
dpa_accepted_by | integer | Yes |
dpa_accepted_at | timestamp | Yes |
ecdf_prefix | varchar(6) | Yes |
ecdf_matricule | varchar(13) | Yes |
ecdf_rcs_number | varchar(20) | Yes |
ecdf_vat_number | varchar(8) | Yes |
data/members.json data/members.csvPeople with access to the workspace (name, email, account type).8 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
name | varchar(100) | Yes |
email | varchar(255) | No |
account_type | varchar(20) | No |
accepted_terms_at | timestamp | Yes |
legal_versions | jsonb | No |
created_at | timestamp | No |
updated_at | timestamp | No |
data/invitations.json data/invitations.csvInvitations sent to join the workspace.9 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
email | varchar(255) | No |
role | varchar(50) | No |
invited_by | integer | No |
invited_at | timestamp | No |
expires_at | timestamp | No |
status | varchar(20) | No |
data/companies.json data/companies.csvClient companies, including soft-deleted ones (deleted_at set).34 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
name | text | No |
rcs_number | varchar(20) | No |
entity_type | varchar(60) | Yes |
jurisdiction | varchar(50) | Yes |
status | varchar(20) | No |
kind | varchar(20) | No |
bookkeeping_enabled | boolean | No |
latest_rcs_extract_id | integer | Yes |
latest_rcs_extract_date | date | Yes |
notes | text | Yes |
is_sample | boolean | No |
entity_id | uuid | Yes |
legal_form | varchar(100) | Yes |
registered_office | jsonb | Yes |
share_capital | jsonb | Yes |
custom_fields | jsonb | Yes |
share_capital_booked_at | timestamp | Yes |
corporate_purpose | text | Yes |
nace_code | varchar(20) | Yes |
incorporation_date | date | Yes |
financial_year_end | date | Yes |
matricule | varchar(13) | Yes |
vat_number | varchar(8) | Yes |
duration | varchar(100) | Yes |
auditor | jsonb | Yes |
associates | jsonb | Yes |
corporate_events | jsonb | Yes |
source_document_id | integer | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
deleted_at | timestamp | Yes |
data/company_people.json data/company_people.csvLinks between companies and persons: roles, mandates and shareholdings.15 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
company_id | integer | No |
person_id | integer | No |
role | varchar(40) | No |
role_detail | text | Yes |
shares_held | numeric(18, 4) | Yes |
share_percentage | numeric(6, 3) | Yes |
share_class | varchar(60) | Yes |
mandate_start | date | Yes |
mandate_end | date | Yes |
is_active | boolean | No |
is_primary_signer | boolean | No |
source_document_id | integer | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/persons.json data/persons.csvNatural persons known to the firm (directors, shareholders, contacts).14 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
first_name | varchar(200) | Yes |
last_name | varchar(200) | Yes |
full_name | varchar(400) | Yes |
date_of_birth | date | Yes |
place_of_birth | varchar(200) | Yes |
nationality | varchar(100) | Yes |
private_address | jsonb | Yes |
notes | text | Yes |
manual_override | boolean | No |
created_at | timestamp | No |
updated_at | timestamp | No |
data/person_emails.json data/person_emails.csvEmail addresses recorded for persons.7 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
person_id | integer | No |
email | varchar(255) | No |
label | varchar(30) | Yes |
is_primary | boolean | No |
added_by | integer | Yes |
created_at | timestamp | No |
data/natural_persons.json data/natural_persons.csvNatural persons in the ownership and management graph.7 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
team_id | integer | No |
full_name | text | No |
email | varchar(255) | Yes |
migrated_person_id | integer | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/ownership_edges.json data/ownership_edges.csvOwnership relations between entities, companies and persons.17 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
team_id | integer | No |
from_entity_id | uuid | Yes |
from_person_id | uuid | Yes |
to_entity_id | uuid | No |
from_company_id | integer | Yes |
to_company_id | integer | Yes |
from_foreign_name | text | Yes |
from_foreign_rcs | varchar(50) | Yes |
percentage | numeric(6, 3) | Yes |
kind | ownership_kind | No |
effective_from | date | No |
effective_to | date | Yes |
source | ownership_source | No |
source_document_id | integer | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/management_overlaps.json data/management_overlaps.csvManagement relations between entities, companies and persons.13 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
team_id | integer | No |
natural_person_id | uuid | Yes |
manager_entity_id | uuid | Yes |
entity_id | uuid | No |
company_id | integer | Yes |
role | varchar(100) | No |
effective_from | date | No |
effective_to | date | Yes |
source | ownership_source | No |
source_document_id | integer | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/relationship_suggestions.json data/relationship_suggestions.csvSuggested relationships extracted from documents, with their review status.11 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
team_id | integer | No |
client_group_id | uuid | No |
kind | suggestion_kind | No |
payload | jsonb | No |
source_document_id | integer | No |
confidence | numeric(4, 3) | No |
status | suggestion_status | No |
created_at | timestamp | No |
resolved_at | timestamp | Yes |
resolved_by | integer | Yes |
data/client_groups.json data/client_groups.csvAnnual-accounts client groups.6 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
team_id | integer | No |
name | text | No |
description | text | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/entities.json data/entities.csvAnnual-accounts entities.14 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
client_group_id | uuid | No |
team_id | integer | No |
rcs_number | varchar(50) | No |
company_name | text | No |
legal_form | varchar(100) | No |
registered_office | text | No |
share_capital | numeric(12, 2) | Yes |
financial_year_end | date | No |
source | source | No |
shareholder_email | varchar(255) | Yes |
shareholder_name | text | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/entity_managers.json data/entity_managers.csvManagers and signers of annual-accounts entities.11 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
entity_id | uuid | No |
natural_person_id | uuid | Yes |
manager_entity_id | uuid | Yes |
full_name | text | No |
address | text | No |
organe | varchar(200) | Yes |
role | varchar(100) | No |
routing_order | integer | No |
email | varchar(255) | No |
created_at | timestamp | No |
data/approval_workflows.json data/approval_workflows.csvAnnual-accounts approval workflows (board and shareholder approvals, filing).21 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
entity_id | uuid | No |
company_id | integer | Yes |
financial_year | integer | No |
status | workflow_status | No |
result_amount | numeric(12, 2) | No |
result_type | result_type | No |
bom_docusign_envelope_id | varchar(100) | Yes |
shr_docusign_envelope_id | varchar(100) | Yes |
bom_document_url | text | Yes |
shr_document_url | text | Yes |
signed_bom_url | text | Yes |
signed_shr_url | text | Yes |
filing_package_url | text | Yes |
meeting_date | date | No |
created_at | timestamp | No |
updated_at | timestamp | No |
fiscal_year_start | date | No |
fiscal_year_end | date | No |
filing_deadline | date | No |
shr_signer_company_people_id | integer | Yes |
data/signature_events.json data/signature_events.csvE-signature events of approval workflows.7 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
workflow_id | uuid | No |
signer_name | text | No |
signer_email | varchar(255) | No |
signed_at | timestamp with time zone | No |
docusign_event | text | No |
envelope_id | varchar(100) | No |
data/approval_generations.json data/approval_generations.csvGenerated approval documents and the field differences they were built from.13 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
company_id | integer | No |
source_rcs_document_id | integer | No |
template_document_id | integer | No |
generated_document_id | integer | Yes |
approval_kind | varchar(20) | No |
status | varchar(20) | No |
field_diff | jsonb | Yes |
error_message | text | Yes |
created_by | integer | No |
created_at | timestamp | No |
updated_at | timestamp | No |
data/annual_account_documents.json data/annual_account_documents.csvAnnual-accounts source documents and their parsed snapshots.12 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
entity_id | uuid | No |
company_id | integer | Yes |
client_group_id | uuid | No |
document_id | integer | No |
fiscal_year_start | date | No |
fiscal_year_end | date | No |
doc_type | annual_account_doc_type | No |
parsed_snapshot | jsonb | No |
source_format | annual_account_source_format | No |
extraction_confidence | numeric(4, 3) | No |
created_at | timestamp | No |
data/documents.json data/documents.csvDocument metadata and classification. The files themselves are listed in files/files.json.32 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
project_id | integer | Yes |
team_id | integer | No |
uploaded_by | integer | No |
filename | varchar(255) | No |
original_filename | varchar(255) | No |
file_size | integer | No |
mime_type | varchar(100) | No |
storage_path | text | No |
processing_status | varchar(50) | No |
processing_error | text | Yes |
visibility_type | varchar(20) | No |
allowed_role_id | integer | Yes |
sync_source | varchar(30) | Yes |
document_type | varchar(60) | Yes |
linked_entity_name | text | Yes |
linked_entity_rcs | varchar(20) | Yes |
linked_entity_type | varchar(60) | Yes |
document_date | date | Yes |
classification_confidence | varchar(10) | Yes |
classification_source | varchar(10) | Yes |
linked_company_id | integer | Yes |
document_family | varchar(40) | Yes |
document_subtype | varchar(60) | Yes |
classification_confidence_num | numeric(4, 3) | Yes |
needs_classification_review | boolean | No |
bookkeeping_outcome | varchar(20) | Yes |
bookkeeping_outcome_detail | varchar(40) | Yes |
is_sample | boolean | No |
created_at | timestamp | No |
updated_at | timestamp | No |
data/document_attributes.json data/document_attributes.csvFields extracted from documents.7 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
document_id | integer | No |
attribute_key | varchar(60) | No |
attribute_value | jsonb | Yes |
confidence | numeric(4, 3) | Yes |
created_at | timestamp | No |
data/document_companies.json data/document_companies.csvWhich companies each document concerns.9 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
document_id | integer | No |
company_id | integer | No |
team_id | integer | No |
role | varchar(32) | No |
confidence | numeric(4, 3) | No |
source | varchar(16) | No |
needs_review | boolean | No |
created_at | timestamp | No |
data/document_counterparties.json data/document_counterparties.csvCounterparties referenced inside documents.8 columns
| Column | Type | Can be empty |
|---|
id | uuid | No |
document_id | integer | No |
referenced_entity_id | uuid | No |
referenced_company_id | integer | Yes |
match_type | counterparty_match | No |
confidence | numeric(4, 3) | No |
context_snippet | text | Yes |
created_at | timestamp | No |
data/document_versions.json data/document_versions.csvVersion history of edited documents. The version files are listed in files/files.json.11 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
document_id | integer | No |
branch_id | integer | Yes |
parent_version_id | integer | Yes |
version_number | integer | No |
filename | varchar(255) | No |
file_size | integer | No |
storage_path | text | No |
uploaded_by | integer | No |
change_description | text | Yes |
created_at | timestamp | No |
data/document_reviews.json data/document_reviews.csvDocument review requests and decisions.15 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
document_id | integer | No |
version_id | integer | Yes |
version_number | integer | No |
requested_by | integer | No |
assignee_id | integer | No |
note | text | Yes |
status | varchar(20) | No |
decided_by | integer | Yes |
decided_at | timestamp | Yes |
decision_note | text | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/tags.json data/tags.csvLibrary tags.6 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
name | varchar(100) | No |
color | varchar(7) | Yes |
created_by | integer | No |
created_at | timestamp | No |
data/document_tags.json data/document_tags.csvTags applied to documents.4 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
document_id | integer | No |
tag_id | integer | No |
created_at | timestamp | No |
data/document_text.json JSON onlyText extracted from each document (OCR included). JSON only: values are long.8 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
document_id | integer | No |
text | text | No |
page_count | integer | Yes |
source_mime_type | varchar(100) | No |
extraction_method | varchar(30) | No |
document_updated_at | timestamp | No |
extracted_at | timestamp | No |
data/bookkeeping_ledgers.json data/bookkeeping_ledgers.csvBookkeeping ledgers and reports, with their journal entries (entries column).28 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
project_id | integer | Yes |
company_id | integer | Yes |
fiscal_year | integer | Yes |
ledger_kind | varchar(20) | No |
template_id | integer | No |
name | varchar(255) | No |
description | text | Yes |
chat_message_id | varchar(255) | Yes |
user_query | text | No |
period_start | date | Yes |
period_end | date | Yes |
status | varchar(20) | No |
document_ids | jsonb | No |
entries | jsonb | No |
summary | jsonb | Yes |
output_file_path | text | Yes |
error_message | text | Yes |
created_by | integer | Yes |
created_at | timestamp | No |
reviewed_by | integer | Yes |
reviewed_at | timestamp | Yes |
review_requested_by | integer | Yes |
review_requested_at | timestamp | Yes |
review_assignee_id | integer | Yes |
review_note | text | Yes |
data/bookkeeping_templates.json data/bookkeeping_templates.csvCharts of accounts and bookkeeping templates.15 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
name | varchar(255) | No |
description | text | Yes |
accounting_standard | varchar(20) | No |
chart_of_accounts | jsonb | No |
tax_codes | jsonb | No |
output_format | varchar(10) | No |
output_structure | jsonb | Yes |
default_currency | varchar(3) | No |
is_default | boolean | No |
created_by | integer | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/bookkeeping_entry_links.json data/bookkeeping_entry_links.csvLinks between journal entries and source documents.6 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
report_id | integer | No |
entry_number | integer | No |
document_id | integer | No |
created_at | timestamp | No |
data/bookkeeping_review_events.json data/bookkeeping_review_events.csvBookkeeping review history.9 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
report_id | integer | No |
type | varchar(16) | No |
actor_id | integer | No |
assignee_id | integer | Yes |
note | text | Yes |
correction_count | integer | Yes |
created_at | timestamp | No |
data/bookkeeping_line_reviews.json data/bookkeeping_line_reviews.csvPer-line bookkeeping review assignments.12 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
report_id | integer | No |
entry_number | integer | No |
line_index | integer | No |
assignee_id | integer | Yes |
requested_by | integer | No |
requested_at | timestamp | No |
note | text | Yes |
reviewed_by | integer | Yes |
reviewed_at | timestamp | Yes |
created_at | timestamp | No |
data/bookkeeping_account_memory.json data/bookkeeping_account_memory.csvLearned vendor-to-account mappings.8 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
vendor_name | varchar(255) | No |
description_pattern | text | Yes |
matched_account_code | varchar(20) | No |
match_count | integer | No |
last_used_at | timestamp | No |
created_at | timestamp | No |
data/projects.json data/projects.csvProjects, including archived and deleted ones.15 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
slug | varchar(12) | No |
team_id | integer | No |
name | varchar(200) | No |
description | text | Yes |
type | varchar(20) | No |
created_by | integer | No |
created_at | timestamp | No |
updated_at | timestamp | No |
status | varchar(20) | No |
is_template | boolean | Yes |
template_id | integer | Yes |
metadata | jsonb | Yes |
group_chat_enabled | boolean | Yes |
deleted_at | timestamp | Yes |
data/project_members.json data/project_members.csvProject membership.6 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
project_id | integer | No |
user_id | integer | No |
role | varchar(20) | No |
added_by | integer | No |
joined_at | timestamp | No |
data/project_companies.json data/project_companies.csvCompanies attached to projects.6 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
project_id | integer | No |
company_id | integer | No |
team_id | integer | No |
added_by | integer | No |
created_at | timestamp | No |
data/project_messages.json data/project_messages.csvProject group chat messages.9 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
project_id | integer | No |
user_id | integer | No |
content | text | No |
message_type | varchar(20) | No |
metadata | jsonb | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
deleted_at | timestamp | Yes |
data/tasks.json data/tasks.csvTasks.13 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(12) | No |
team_id | integer | No |
project_id | integer | Yes |
title | varchar(255) | No |
description | text | Yes |
status | varchar(20) | No |
priority | varchar(20) | No |
assignee_id | integer | Yes |
due_date | timestamp | Yes |
created_by | integer | No |
created_at | timestamp | No |
updated_at | timestamp | No |
data/chat_sessions.json data/chat_sessions.csvAssistant chat sessions of every member, including private ones.10 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | varchar(16) | No |
team_id | integer | No |
user_id | integer | No |
project_id | integer | Yes |
document_id | integer | Yes |
title | varchar(255) | Yes |
is_shared | boolean | No |
created_at | timestamp | No |
updated_at | timestamp | No |
data/chat_messages.json data/chat_messages.csvMessages of those chat sessions, with the sources cited by the assistant.8 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
session_id | integer | No |
role | varchar(20) | No |
content | text | No |
sources | jsonb | Yes |
mind_map_data | text | Yes |
model | varchar(120) | Yes |
created_at | timestamp | No |
data/chat_members.json data/chat_members.csvMembers of shared chat sessions.6 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
session_id | integer | No |
user_id | integer | No |
invited_by | integer | No |
joined_at | timestamp | No |
last_read_at | timestamp | Yes |
data/learned_rules.json data/learned_rules.csvRules the workspace learned from reviewed corrections.15 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | uuid | No |
team_id | integer | No |
surface | varchar(32) | No |
field | varchar(48) | No |
context_key | jsonb | No |
context_key_hash | varchar(64) | No |
human_value | jsonb | No |
status | varchar(16) | No |
occurrence_count | integer | No |
review_confirmed | boolean | No |
confidence | numeric(4, 3) | No |
last_applied_at | timestamp | Yes |
created_at | timestamp | No |
updated_at | timestamp | No |
data/corrections.json data/corrections.csvCorrections made by people to AI output.18 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
public_id | uuid | No |
team_id | integer | No |
user_id | integer | No |
surface | varchar(32) | No |
resource_ref | varchar(128) | No |
document_id | integer | Yes |
field | varchar(48) | No |
ai_value | jsonb | Yes |
human_value | jsonb | No |
context_key | jsonb | No |
review_confirmed | boolean | No |
reason | text | Yes |
normalized_pattern | text | Yes |
sharable_consent | boolean | No |
edit_id | integer | Yes |
context_key_hash | varchar(64) | Yes |
created_at | timestamp | No |
data/classification_corrections.json data/classification_corrections.csvManual document re-classifications.11 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
document_id | integer | No |
user_id | integer | No |
old_family | varchar(40) | Yes |
old_subtype | varchar(60) | Yes |
new_family | varchar(40) | No |
new_subtype | varchar(60) | No |
reason | text | Yes |
origin | varchar(10) | No |
created_at | timestamp | No |
data/activity_log.json data/activity_log.csvWorkspace activity log (who did what, when). IP addresses and user agents are left out.5 columns
| Column | Type | Can be empty |
|---|
id | serial | No |
team_id | integer | No |
user_id | integer | Yes |
action | text | No |
timestamp | timestamp | No |
The original files are not copied into the archive. files/files.json and files/files.csv list each one with its kind, its file name, a download link that works for 7 days and the identifiers that link it to the data files. The listing covers:
- Original uploaded files.
- Files of earlier and edited document versions.
- Generated bookkeeping report files.
- Annual-accounts approval documents, signed copies and filing packages.
| Data | Reason |
|---|
| Integration credentials (cloud-storage OAuth tokens, Slack/Teams webhook settings) | Secrets; reconnect integrations in the new system. |
| Embeddings and search vectors | Derived from the documents and the text in data/document_text.json; specific to Spyral's search. |
| Notifications, bookmarks and saved searches | Per-user state; each member can export it from Settings > Privacy. |
| Usage metrics, analytics and the cloud-sync queue | Operational telemetry, not content. |
| Roles and permission policies | Spyral access-control configuration, not portable to another system. |
The data that is not exportable because it is specific to the internal functioning of the Services, such as our software, models, prompts and classification rules, is described in section 14.7 of the Terms of Service.
This register is generated from the definitions the export runs on, so it changes when the export changes: a new kind of record or a new column appears here at the same time as in the archive. When the layout of the archive or of manifest.json changes in a way that an import has to take into account, the format version above changes too. Every archive states in manifest.json the format version it was produced with.
Questions about the export format, and requests for help with a switch, can be sent to support@spyral.lu. Who we are and how else to reach us is set out in the Legal notice.
Version history
| Version | Effective from | Status |
|---|
| 1.0.0 | October 4, 2026 | In force |