123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # JSON Schema
- The Excalidraw data format uses plaintext JSON.
- ## Excalidraw files
- When saving an Excalidraw scene locally to a file, the JSON file (`.excalidraw`) is using the below format.
- ### Attributes
- | Attribute | Description | Value |
- | --- | --- | --- |
- | `type` | The type of the Excalidraw schema | `"excalidraw"` |
- | `version` | The version of the Excalidraw schema | number |
- | `source` | The source URL of the Excalidraw application | `"https://excalidraw.com"` |
- | `elements` | An array of objects representing excalidraw elements on canvas | Array containing excalidraw element objects |
- | `appState` | Additional application state/configuration | Object containing application state properties |
- | `files` | Data for excalidraw `image` elements | Object containing image data |
- ### JSON Schema example
- ```json
- {
- // schema information
- "type": "excalidraw",
- "version": 2,
- "source": "https://excalidraw.com",
- // elements on canvas
- "elements": [
- // example element
- {
- "id": "pologsyG-tAraPgiN9xP9b",
- "type": "rectangle",
- "x": 928,
- "y": 319,
- "width": 134,
- "height": 90
- /* ...other element properties */
- }
- /* other elements */
- ],
- // editor state (canvas config, preferences, ...)
- "appState": {
- "gridSize": 20,
- "viewBackgroundColor": "#ffffff"
- },
- // files data for "image" elements, using format `{ [fileId]: fileData }`
- "files": {
- // example of an image data object
- "3cebd7720911620a3938ce77243696149da03861": {
- "mimeType": "image/png",
- "id": "3cebd7720911620a3938c.77243626149da03861",
- "dataURL": "data:image/png;base64,iVBORWOKGgoAAAANSUhEUgA=",
- "created": 1690295874454,
- "lastRetrieved": 1690295874454
- }
- /* ...other image data objects */
- }
- }
- ```
- ## Excalidraw clipboard format
- When copying selected excalidraw elements to clipboard, the JSON schema is similar to `.excalidraw` format, except it differs in attributes.
- ### Attributes
- | Attribute | Description | Example Value |
- | --- | --- | --- |
- | `type` | The type of the Excalidraw document. | "excalidraw/clipboard" |
- | `elements` | An array of objects representing excalidraw elements on canvas. | Array containing excalidraw element objects (see example below) |
- | `files` | Data for excalidraw `image` elements. | Object containing image data |
|