# 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": null, "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 |