---
title: "Export a workspace's settings and transcription terms"
method: GET
path: "/workspaces/{workspaceId}/data-export/content"
tags: ["data-export", "customer-content"]
---

# Export a workspace's settings and transcription terms

`GET /workspaces/{workspaceId}/data-export/content`

## Request

- Base URL: `https://vetnio.com/api/v2`
- URL: `https://vetnio.com/api/v2/workspaces/{workspaceId}/data-export/content`
- Auth: HTTP bearer

Exports the current stored settings and the current transcription term list of exactly this scope as versioned JSON (`schemaVersion` 1), with an `inventory` that lists what is included, what is excluded and how to interpret it. Credentials, billing identifiers and other scopes' private settings are never included. Values are read at request time, so this is neither a change history nor an atomic snapshot. Read-only. Covers the clinic's identity and address, shared settings, PIMS department mappings, workspace term list and, when configured, the letterhead image as a base64 PNG. Requires admin rights in the workspace (workspace admin or superadmin, or an admin of an organization the clinic belongs to). Accepts a browser session or a personal API key; organization and workspace API keys (`sk_org_…`, `sk_ws_…`) get 403.

## Path parameters

- `workspaceId` string, required: Identifier of the workspace (clinic) to export. The caller must be an admin of it, directly or as an admin of its organization.

## Response `200`

Successful response

- WorkspaceContentExport: The workspace's (clinic's) current stored settings and workspace transcription term list, with an inventory of what is included and excluded.
  - `schemaVersion` 1, required: Version of the export format. Currently always `1`.
  - `exportedAt` string, date-time, required: When this export was produced (ISO 8601, UTC). Values are read separately, so this is not the time of an atomic snapshot.
  - `scopeId` string, required: ID of the exported user, workspace or organization. Equal to `configuration.id`.
  - `termList` TranscriptionTermListOutput, required: The scope's current custom transcription vocabulary: names, abbreviations and specialist terms used as spelling and recognition hints. When no list has been saved, `terms` is empty, `version` is 0 and `updatedAt` and `updatedBy` are `null`.
    - `terms` string[], required: Terms in their stored spelling and order. Up to 200 terms, each at most 50 characters and four words. Empty when no list is saved.
    - `version` integer, required: Edit-concurrency revision of the list: 1 or higher for a saved list, 0 when none is saved. It increases with each save; earlier contents are not retained.
    - `updatedAt` string, date-time, nullable, required: When the list was last saved (ISO 8601, UTC). `null` when no list is saved.
    - `updatedBy` string, nullable, required: ID of the user who last saved the list (a UUID). `null` when no list is saved or that user's account has been deleted.
  - `inventory` object, required: Plain-English statements of what this export covers and how to read it, intended for audit records. The wording can change between releases, so do not parse it.
    - `included` string[], required: Categories of content included in this response.
    - `excluded` string[], required: Categories deliberately left out of this response, such as credentials, billing identifiers and other owners' settings.
    - `limitations` string[], required: How to interpret this export, for example that it contains current values only and is not an atomic snapshot.
  - `scope` 'workspace', required: Exported scope. Always `workspace` for this endpoint.
  - `configuration` object, required: Identity, address, shared settings, PIMS department mappings and letterhead image of the workspace (clinic).
    - `id` string, required: ID of the workspace (clinic).
    - `name` string, nullable, required: Clinic display name. `null` when not set.
    - `createdAt` string, date-time, required: When the workspace was created (ISO 8601, UTC).
    - `address` string, nullable, required: Street address of the clinic. `null` when not recorded.
    - `city` string, nullable, required: City of the clinic. `null` when not recorded.
    - `stateProvince` string, nullable, required: State, province or county of the clinic. `null` when not recorded.
    - `zipCode` string, nullable, required: Postal or ZIP code of the clinic. `null` when not recorded.
    - `countryCode` string, nullable, required: Two-letter ISO 3166-1 alpha-2 country code of the clinic, as stored (letter case is not normalized). `null` when not recorded.
    - `taxId` string, nullable, required: Tax identification number of the clinic, such as a VAT number. `null` when not recorded.
    - `phone` string, nullable, required: Clinic phone number, as entered. `null` when not recorded.
    - `allowPasswords` boolean, required: Stored value of the workspace's allow-passwords flag. `true` unless it has been changed.
    - `templatePermissions` string, required: What members (non-admins) can do with templates: - `full_access` — view, use and edit templates created by other members (the default) - `view_only` — view and use templates created by others, but not edit them - `private` — edit only their own templates, and view only templates created by admins - `strict` — only view and use templates created by admins; members cannot create templates
    - `audioFileRetentionPeriodInDays` integer, nullable, required: Audio retention period in days set on this workspace. Consultation and meeting recordings older than this are deleted automatically. When linked organizations also set a period, the shortest one applies; export each organization to see its period. `null` when the workspace has no period of its own.
    - `isMeetingsEnabled` boolean, required: Whether the meetings feature (recording meetings with automatic note generation) is switched on for the workspace.
    - `manualPimsKind` string, nullable, required: Practice-management system (PIMS) the clinic uses, recorded by Vetnio staff when no connected integration shows it. It takes precedence over detection: - `provet` — Provet Cloud - `link` — Link - `animana` — Animana - `vetmanager` — VetManager - `fuga` — Fuga - `other` — another system, named in `manualPimsName` - `none` — no PIMS `null` when not recorded.
    - `manualPimsName` string, nullable, required: Name of the practice-management system when `manualPimsKind` is `other`. `null` otherwise.
    - `settings` object, required: The workspace's stored shared settings. Only allowlisted keys are exported; credentials, provider connection details and internal state are left out. A key is absent when it has never been set; the default described on each field then applies and is not filled in here.
      - `consultationVisibility` string: Whether members can list consultations created by others: - `creator` — each member's consultation list shows only their own consultations - `workspace` — members can filter the list to show colleagues' or everyone's consultations Absent when never set, which behaves as `creator`. This affects listing only; any workspace member can open an individual consultation either way.
      - `dateFormat` string: Date format the AI uses when writing dates in generated documents: `YYYY-MM-DD`, `DD-MM-YYYY` or `MM-DD-YYYY`. Absent when never set, which means `YYYY-MM-DD`.
      - `documentHeader` object: A short notice placed at the top of AI-generated documents of the selected types. Absent when never configured, which means no header.
        - `headerType` string, required: Which header text is used. Preset texts are written in the document's language: - `none` — no header - `preset_1` — states that the document was generated with AI assistance and reviewed by a veterinary professional - `preset_2` — marks the document as a confidential veterinary medical record - `preset_3` — states that the document is AI-generated and that clinical details should be verified before use - `custom` — the text in `customText`
        - `customText` string: Header text used when `headerType` is `custom`, up to 500 characters. Inserted as plain text. Absent when not set.
        - `enabledDocumentTypes` string[], required: Document types that receive the header. An empty array means no document receives it.
      - `pdfExportClinicDetails` object: Clinic details saved from the PDF export dialog and used to prefill the clinic block on exported PDFs. Shared by all members of the workspace. Absent when never saved; empty fields are omitted.
        - `clinic` string: Clinic name to print, up to 500 characters.
        - `address` string: Clinic address to print, up to 500 characters.
        - `zipCode` string: Postal or ZIP code to print, up to 500 characters.
        - `phone` string: Clinic phone number to print, as entered, up to 500 characters.
      - `pdfLetterhead` object: Letterhead layout for PDF exports of clinical notes and meeting notes. Absent when never configured, which means PDFs have no letterhead. The uploaded logo itself is exported in `configuration.letterheadAsset`.
        - `templateId` string, required: Letterhead layout. Current layouts: `clean-letterhead` (the default), `sidebar-summary`, `centered-letterhead`, `teal-band`. Older layouts that are still supported: `logo-left`, `banner-above`, `logo-centered`. Unknown values are rendered as `clean-letterhead`.
        - `enabled` boolean: `false` when the letterhead has been switched off; the other settings are kept. Absent or `true` means the letterhead is used.
        - `includeClinicInfo` boolean: Whether the clinic information block is printed on PDFs. Absent means `true`.
        - `fontId` string: Typeface for PDF text: `system-sans`, `humanist-sans`, `classic-serif` or `document-serif`. Absent means `system-sans`.
        - `logoFit` string: How the logo is scaled into its area: - `contain` — the whole logo is shown, keeping its proportions (the default when absent) - `cover` — the logo fills the area, keeping its proportions; edges may be cropped - `fill` — the logo is stretched to the area
        - `accentColor` string: Accent color as a hex code (`#rgb` or `#rrggbb`). Absent when never set; the default is `#3d838b`.
      - `globalTemplateInstructions` object: Instructions the workspace adds to AI-generated documents on top of the chosen template. `general` applies to every document type; the other fields are added for their own document type only. Stored verbatim. Absent when never set.
        - `general` string: Instructions added to every AI-generated document, up to 4,000 characters. Absent when never set.
        - `clinicalNote` string: Instructions added when generating clinical notes, up to 4,000 characters. Absent when never set.
        - `referral` string: Instructions added when generating referrals, up to 4,000 characters. Absent when never set.
        - `communication` string: Instructions added when generating client communications, up to 4,000 characters. Absent when never set.
      - `patientMatchingEnabled` boolean: Whether Vetnio looks for a matching patient record after a consultation's clinical note is generated, so it can be linked to that patient. Absent when never set, which means off.
      - `aiTitlesEnabled` boolean: Workspace setting for AI-generated consultation titles, written from the clinical note after it is saved. `true` or `false` takes precedence over the organization setting. Absent when never set at workspace level; titles are then generated only if a linked organization enables them (`aiTitlesEnabled` in its organization export).
      - `aiTitlesUseAsName` boolean: Whether an automatically generated title fills an unnamed consultation's name instead of appearing separately. Existing consultation names are preserved. Absent means false.
      - `aiTitlesNamingStyle` 'patient_and_case' | 'case_only' | 'custom': Automatic consultation naming style: patient name and case information, case information only, or custom instructions. Absent means case_only.
      - `aiTitlesCustomPrompt` string: Custom instructions for automatic consultation names, used when aiTitlesNamingStyle is custom. Up to 1,000 characters. Absent when never set.
      - `recordingAutoStopSeconds` number: Workspace recording auto-stop limit in seconds (60 to 86400). Applies to members who have no personal limit. Absent when never set or cleared; the default of 4 hours then applies.
      - `recordingView` 'waveform' | 'briefing': Recording display: waveform animation or a pre-visit briefing with a small recording indicator. An explicit workspace value overrides organization defaults. When absent, briefing is used if any linked organization selects it; otherwise waveform.
      - `liveTranscriptionEnabled` boolean: Whether live transcription starts with consultation recording. An explicit workspace value overrides organization defaults. When absent, live transcription is disabled if any linked organization disables it; otherwise enabled. Audio recording and transcription after recording are unaffected.
      - `recordingAutoStopPerSession` boolean: How the workspace auto-stop limit is measured. `true`: the timer restarts each time recording starts or resumes. `false`: the limit covers all audio recorded in the consultation. Absent means `true`.
      - `recordingConcurrencyControl` object: Limits on simultaneous recordings in the workspace. Absent when never configured, which means no limit.
        - `enabled` boolean: Whether the limit is enforced. When `true`, the number of recordings active at the same time in the workspace is capped at its number of licensed seats (no cap during a trial or when no seat count is set). Absent means `false`.
        - `limitActiveRecordingsPerUser` boolean: When `true` and `enabled` is `true`, each user can have only one active recording at a time. Absent means `false`.
        - `heartbeatTimeoutSeconds` number: Seconds without a signal from the recording device after which an active recording no longer counts toward the limit. Values are clamped to 10 to 120 when applied; absent means 90.
      - `phoneCallIntegrationEnabled` boolean: Whether a phone-call integration is switched on for the workspace. Used to show phone-call features, such as importing a call into the practice-management system from the browser extension. Absent means `false`.
      - `telephonyEnabled` boolean: Whether telephony is switched on for the workspace. With `phoneProvider` `telnyx_webrtc` it enables outbound calls from Vetnio's built-in phone; with `starface` it enables call import. Absent means `false`.
      - `phoneProvider` string: Phone system the workspace's calls come from: - `telnyx_webrtc` — Vetnio's built-in browser phone - `telavox` — Telavox - `nightcall` — Nightcall - `3cx` — 3CX - `xelion` — Xelion - `starface` — STARFACE Absent when no provider has been selected.
      - `phoneCallSpellingCorrection` object: AI spelling correction applied to phone-call transcripts. Absent when never configured, which means correction is on with no extra context.
        - `enabled` boolean: `false` turns AI spelling correction of phone-call transcripts off. Absent means on.
        - `employeeNames` string[]: Staff names the correction should spell correctly. Absent when never set; an empty array means none.
        - `additionalContext` string: Free-text context given to the correction, for example product or place names. Absent when never set; an empty string means none.
      - `phoneCallSummaryStyle` object: Format of AI summaries of phone calls. Absent when never set, which means `paragraph` and `medium`.
        - `format` string: Layout of the summary: - `paragraph` — flowing prose (the default when absent) - `bullets` — a bulleted list
        - `verbosity` string: Length of the summary: - `short` — about 1 to 2 sentences, or 2 to 3 bullets - `medium` — about 3 to 5 sentences, or 4 to 6 bullets (the default when absent) - `long` — about 6 to 10 sentences, or 7 to 12 bullets
      - `provetPhoneCalls` object: Settings for drafting notes and tasks from phone calls and saving them to Provet Cloud. Absent when never configured.
        - `enabled` boolean: Whether drafting phone-call documentation and saving it to Provet Cloud is switched on.
        - `providerId` string: ID of the workspace's Provet Cloud connection in Vetnio, used to look up clients and save notes and tasks. Empty string when none is selected.
        - `departmentId` number: Provet Cloud department ID used when saving notes and tasks. Absent when not set.
        - `templatesText` string: Phone-documentation templates as one text. Each template starts with a `## <name>` heading line followed by its body. Up to 25 templates and 60,000 characters.
        - `routingInstructions` string: Free-text rules the AI follows when choosing a template for a call, up to 12,000 characters.
        - `timeZone` string: IANA time zone used for the night window and for call times shown to the AI. The default is `Europe/Stockholm`.
        - `night` object: Requires one template for calls that start inside a nightly time window. Absent when not configured.
          - `startHour` number, required: Hour (0 to 23, in `timeZone`) at which the night window starts, inclusive.
          - `endHour` number, required: Hour (0 to 23, in `timeZone`) at which the night window ends, exclusive. Lower than `startHour` when the window spans midnight.
          - `templateName` string, required: Name of the template (a `##` heading in `templatesText`) that must be used for calls that start in the window.
      - `provetExportMode` string: Legacy stored preference, ignored by exports. All billing items are added as consultation items through Provet Cloud's per-type endpoints and billed when the consultation is finalized.
      - `revenueRecoveryEnabled` boolean: Whether Revenue Recovery, which suggests billable items from the consultation for the practice-management system invoice, is switched on. Absent means `false`.
      - `revenueRecoverySuggestionPolicy` object: Rules for which billable items Revenue Recovery suggests. Absent when never configured, which means bundles first, no excluded categories and no required billing lines.
        - `bundlePolicy` string: How Revenue Recovery treats Provet Cloud bundles: - `bundles_first` — prefer matching bundles over their individual items (the default) - `items_first` — prefer individual items; suggest a bundle only when it matches the service almost exactly - `hide_bundles` — never suggest bundles
        - `excludedCategories` string[]: Catalog categories that are never suggested: `procedure`, `medication`, `equipment`, `retail`, `lab`. Exported as stored; the older values `food` and `protocol` are treated as `retail` and `procedure`.
        - `searchHiddenCategories` string[]: Catalog categories also hidden from the invoice builder's manual search, using the same values as `excludedCategories`. A hidden category is never suggested either. Absent on policies saved before this setting existed, which hide every excluded category.
        - `requiredCategories` object[]: Billing lines the clinic defined explicitly, such as a consultation fee. Up to 20.
          - `id` string, required: Identifier of the billing line, unique within the policy (up to 64 characters).
          - `label` string, required: Display name of the billing line (up to 80 characters).
          - `instruction` string: The clinic's instruction for choosing between the items, up to 600 characters.
          - `rule` string: When the line is suggested: - `always_one` — on every consultation, with exactly one item chosen (the default) - `when_relevant` — only when the consultation supports it
          - `itemIds` string[], required: Catalog item IDs that can fill this line (1 to 12).
      - `aiReceptionist` object: Configuration of the clinic's AI receptionist, which can book appointments in the practice-management system. Absent when never configured. Practice-system connection details and provider identifiers are not exported.
        - `enabled` boolean: Whether the AI receptionist is switched on.
        - `defaultLocale` string: Default language of the AI receptionist: `en` or `sv-SE`.
        - `timeZone` string: IANA time zone of the clinic, used for appointment times.
        - `emergencyPhone` string, nullable: Emergency phone number configured for the AI receptionist, as entered. `null` when explicitly cleared; absent when never set.
        - `pimsKind` string: Practice-management system the AI receptionist books appointments in: `none`, `link` or `provet`.
        - `bookingConfig` object: Booking rules for the AI receptionist. Absent when never set.
          - `minimumNoticeMinutes` number: Minimum time in minutes between the moment of booking and the start of a bookable slot. Absent when not set.
      - `schedulingEnabled` boolean: Whether the staff scheduler (for admins) and Vetnio's own appointment book (for every member) are available. Absent means `false`.
      - `provetScheduleEnabled` boolean: Whether members see their Provet appointments in the calendar, read-only and independently of `schedulingEnabled`. Absent means `false`.
      - `personalizationsDisabled` boolean: `true` when personalization is switched off for the whole workspace: Vetnio then neither learns from members' note edits nor applies learned writing style. Absent or `false` means personalization is on, unless it is switched off for an individual user.
      - `manualWritingEnabled` boolean: Whether members are offered to write clinical notes, client communications and referral letters themselves instead of recording or generating them. Set by Vetnio. Absent means `false`.
      - `saveAnimanaPatients` boolean: Whether patient details from Animana are saved to Vetnio when a consultation is started from Animana. Absent means `true`.
    - `pimsDepartmentMappings` object[], required: Practice-management system departments linked to this workspace. When a user opens Vetnio from a linked Provet Cloud department, this workspace is opened. Ordered by `instanceId`, then `departmentId`. Empty when there are none.
      - `instanceId` string, required: ID of the practice-management system instance, for example a Provet Cloud instance number.
      - `departmentId` string, required: Department ID within that instance, as a numeric string.
      - `createdAt` string, date-time, required: When the mapping was created (ISO 8601, UTC).
      - `updatedAt` string, date-time, required: When the mapping was last changed (ISO 8601, UTC).
    - `catalogSwitches` object: Suggest and Search switches for catalog items and bundles. Absent when the workspace has none.
      - `items` object[], required: Item switches, ordered by `itemId`. Empty when there are none.
        - `itemId` string, required: ID of the canonical catalog item.
        - `suggest` 'on' | 'off', nullable, required: Whether Revenue Recovery may suggest it: `on`, `off`, or `null` to follow the category default.
        - `search` 'on' | 'off', nullable, required: Whether vets can find it in the invoice builder's manual search: `on`, `off`, or `null` to follow the category default.
      - `bundles` object[], required: Bundle switches, ordered by `bundleId`. Empty when there are none.
        - `bundleId` string, required: ID of the catalog bundle.
        - `sourceTemplateId` string, nullable, required: ID of the bundle's template in the practice-management system. `null` when it is not known.
        - `suggest` 'on' | 'off', nullable, required: Whether Revenue Recovery may suggest it: `on`, `off`, or `null` to follow the category default.
        - `search` 'on' | 'off', nullable, required: Whether vets can find it in the invoice builder's manual search: `on`, `off`, or `null` to follow the category default.
    - `catalogNotes` object: Notes for Vetnio on catalog items and bundles. Absent when the workspace has none.
      - `items` object[], required: Item notes, ordered by `itemId`. Empty when there are none.
        - `itemId` string, required: ID of the canonical catalog item.
        - `description` string, required: The note as the clinic or Vetnio wrote it (at most 500 characters).
        - `updatedAt` string, required: When the note was last changed (ISO 8601, UTC).
      - `bundles` object[], required: Bundle notes, ordered by `bundleId`. Empty when there are none.
        - `bundleId` string, required: ID of the catalog bundle.
        - `sourceTemplateId` string, nullable, required: ID of the bundle's template in the practice-management system. `null` when it is not known.
        - `description` string, required: The note as the clinic or Vetnio wrote it (at most 500 characters).
        - `updatedAt` string, required: When the note was last changed (ISO 8601, UTC).
    - `catalogVisitFees` object: Visit-fee decisions on catalog items. Absent when the workspace has none.
      - `items` object[], required: Ordered by `itemId`. Empty when there are none.
        - `itemId` string, required: ID of the canonical catalog item.
        - `decision` 'visit_fee' | 'not_visit_fee', required: `visit_fee`: confirmed as a visit fee. `not_visit_fee`: marked as not a visit fee.
        - `decidedAt` string, required: When the item was decided (ISO 8601, UTC).
    - `letterheadAsset` object, nullable, required: The workspace's uploaded letterhead logo as a base64-encoded PNG file.
      - `mimeType` 'image/png', required: Media type of `content`. Always `image/png`.
      - `encoding` 'base64', required: Encoding of `content`. Always `base64`.
      - `content` string, required: The PNG file, base64-encoded (standard alphabet with padding).

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `500`: Internal server error

---

[API](https://skmtc.dev/vetnio/apis/vetnio-api.md) - [All operations](https://skmtc.dev/vetnio/apis/vetnio-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vetnio/apis/vetnio-api/revisions/d004afd5617d?raw)
