# SQX1: raid export format The addon builds this payload, JSON-encodes it, base64s it, and prefixes it with `SQX1:` to make one paste-able string. An officer sends it to the site with `/sq export`, through the companion app, or by pasting it on `/officers/sync/`. Defined once in the website's `packages/sidequest-common`, so this table always matches what the site actually accepts. ## `ExportPayload` The full decoded ``SQX1:`` payload, bounded per the contract. | Field | Type | Required | Description | |---|---|---|---| | `v` | `int` | yes | | | `addon_version` | `str` | yes | | | `exported_at` | `int` | yes | | | `guild` | `str` | yes | | | `realm` | `str` | yes | | | `recorder` | `str` | yes | | | `sessions` | `list[ExportSession]` | no | | | `encounters` | `list[ExportEncounter]` | no | | | `loot` | `list[ExportLoot]` | no | | | `awards` | `list[ExportAward]` | no | | | `roster` | `ExportRoster \| None` | no | | | `professions` | `list[ExportProfession]` | no | | | `signups` | `list[ExportSignupV2]` | no | | | `bank` | `list[ExportBankEntry]` | no | | | `announcements` | `list[ExportAnnouncement]` | no | | | `recruits` | `list[ExportRecruit]` | no | | | `member_notes` | `list[ExportMemberNote]` | no | | ## `ExportAward` One EP/GP ledger entry in the export payload. | Field | Type | Required | Description | |---|---|---|---| | `id` | `str` | yes | | | `session_id` | `str \| None` | no | | | `kind` | `LedgerKind` | yes | | | `character` | `str` | yes | | | `amount` | `int` | yes | | | `reason` | `AwardReason` | yes | | | `note` | `str \| None` | no | | | `loot_id` | `str \| None` | no | | | `at` | `int` | yes | | | `officer` | `str` | yes | | | `voided` | `bool` | no | | ## `ExportEncounter` One boss pull entry in the export payload. ``session_id``/``ended_at`` may be absent (see ``ExportSession``). | Field | Type | Required | Description | |---|---|---|---| | `id` | `str` | yes | | | `session_id` | `str \| None` | no | | | `encounter_id` | `int` | yes | | | `name` | `str` | yes | | | `size` | `int` | yes | | | `difficulty_id` | `int` | yes | | | `success` | `bool` | yes | | | `started_at` | `int` | yes | | | `ended_at` | `int \| None` | no | | | `characters` | `list[str]` | no | | | `standby` | `list[str]` | no | | ## `ExportLoot` One loot award entry in the export payload. | Field | Type | Required | Description | |---|---|---|---| | `id` | `str` | yes | | | `session_id` | `str \| None` | no | | | `encounter_row_id` | `str \| None` | no | | | `item_id` | `int` | yes | | | `item_name` | `str` | yes | | | `quality` | `int` | yes | | | `inv_type` | `str` | yes | | | `character` | `str` | yes | | | `response` | `LootResponse` | yes | | | `gp` | `int` | yes | | | `at` | `int` | yes | | | `officer` | `str` | yes | | | `voided` | `bool` | no | | ## `ExportSession` One raid session entry in the export payload. | Field | Type | Required | Description | |---|---|---|---| | `id` | `str` | yes | | | `event_id` | `UUID \| None` | no | | | `instance_name` | `str` | yes | | | `instance_id` | `int` | yes | | | `difficulty_id` | `int` | yes | | | `size` | `int` | yes | | | `started_at` | `int` | yes | | | `ended_at` | `int \| None` | no | | | `members` | `list[ExportSessionMember]` | no | | ## `ExportSessionMember` One session member entry in the export payload. | Field | Type | Required | Description | |---|---|---|---| | `character` | `str` | yes | | | `wow_class` | `WowClass \| None` | no | | | `first_seen` | `int` | yes | | | `last_seen` | `int` | yes | | | `standby` | `bool` | no | |