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
{
  // 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 |