Skip to main content
GET
/
api
/
v1
/
canvases
/
{canvasId}
/
content
Get canvas content
curl --request GET \
  --url https://api.melius.com/api/v1/canvases/{canvasId}/content \
  --header 'Authorization: Bearer <token>' \
  --header 'x-team-id: <api-key>'
import requests

url = "https://api.melius.com/api/v1/canvases/{canvasId}/content"

headers = {
"Authorization": "Bearer <token>",
"x-team-id": "<api-key>"
}

response = requests.get(url, headers=headers)

print(response.text)
const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'x-team-id': '<api-key>'}
};

fetch('https://api.melius.com/api/v1/canvases/{canvasId}/content', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.melius.com/api/v1/canvases/{canvasId}/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-team-id: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.melius.com/api/v1/canvases/{canvasId}/content"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("x-team-id", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://api.melius.com/api/v1/canvases/{canvasId}/content")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["x-team-id"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "nodes": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "geometry": {
        "x": 123,
        "y": 123,
        "w": 123,
        "h": 123,
        "zIndex": 123
      },
      "groupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "activeVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "generatedText": "<string>",
      "versions": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "title": "<string>",
          "modelConfig": {
            "model": "<string>",
            "variant": "<string>",
            "tier": "<string>",
            "ratios": [
              "<string>"
            ],
            "resolution": "<string>",
            "voiceId": "<string>",
            "customVoiceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "font": {
              "familyName": "<string>"
            }
          },
          "sourceToolName": "<string>",
          "seed": 1073741823,
          "generateAudio": true,
          "negativePrompt": "<string>",
          "outputDuration": 1,
          "textPrompt": "<string>",
          "generatedText": "<string>",
          "asset": {
            "url": "<string>",
            "originalUrl": "<string>",
            "previewUrl": "<string>",
            "fileType": "<string>",
            "fileSizeInKb": 1,
            "originalWidth": 1,
            "originalHeight": 1,
            "durationInMs": 1,
            "previewExtraLowResolutionUrl": "<string>",
            "previewLowResolutionUrl": "<string>",
            "previewHighResolutionUrl": "<string>",
            "thumbnailUrl": "<string>",
            "assetSummary": "<string>",
            "assetSummaryDetails": {
              "subject": "<string>",
              "action": "<string>",
              "summary": "<string>"
            }
          },
          "layerCount": 1,
          "errorMessage": "<string>",
          "favoritedByUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "createdAt": "2023-11-07T05:31:56Z",
          "updatedAt": "2023-11-07T05:31:56Z",
          "modelDisplayName": "<string>",
          "pdfExtraction": {
            "summaryText": "<string>",
            "extractedImages": [
              {
                "assetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
                "url": "<string>",
                "pageIndex": 1,
                "imageIndex": 1
              }
            ],
            "extractedImageUrls": [
              "<string>"
            ],
            "extractedImageCount": 123
          },
          "nodeRunId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "errorRetryable": true
        }
      ],
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z",
      "title": "<string>",
      "autoModel": true,
      "fastModel": true,
      "textPrompt": "<string>",
      "modelConfig": {
        "model": "<string>",
        "variant": "<string>",
        "tier": "<string>",
        "ratios": [
          "<string>"
        ],
        "resolution": "<string>",
        "voiceId": "<string>",
        "customVoiceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "font": {
          "familyName": "<string>"
        }
      },
      "outputDuration": 1,
      "seed": 1073741823,
      "generateAudio": true,
      "modelSupportsEndImage": true,
      "modelSupportsReferenceImage": true,
      "modelSupportsOptionalStartImage": true,
      "modelSupportsAudioInput": true,
      "modelGeneratesAudio": true,
      "voiceId": "<string>",
      "customVoiceId": "<string>",
      "negativePrompt": "<string>",
      "supportedInputs": [],
      "stitchClipOrder": [
        "<string>"
      ],
      "stitchAudioOverlays": [
        {
          "nodeId": "<string>",
          "startTimeSeconds": 1,
          "trimStartMs": 1,
          "trimEndMs": 1
        }
      ],
      "stitchClipTrims": {},
      "templatePorts": [
        {
          "direction": "input",
          "portId": "<string>",
          "label": "<string>",
          "handleType": "<string>",
          "nodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "internalHandle": "<string>",
          "required": true,
          "maxConnections": 1,
          "internalTargets": [
            {
              "nodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "internalHandle": "<string>"
            }
          ],
          "connectedSourceIds": [
            "<string>"
          ],
          "top": "<string>"
        }
      ],
      "templateId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "childNodeIds": [
        "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      ],
      "magicResizeOutputs": [
        {
          "layerIndex": 123,
          "ratio": "<string>",
          "assetId": "<string>",
          "assetUrl": "<string>",
          "previewUrl": "<string>",
          "failed": true
        }
      ]
    }
  ],
  "edges": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "srcNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "dstNodeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "srcHandle": "<string>",
      "dstHandle": "<string>",
      "createdAt": "2023-11-07T05:31:56Z"
    }
  ],
  "modelPresets": {
    "image": {
      "model": "<string>",
      "mode": "<string>",
      "fast": true,
      "numVariations": 5
    },
    "video": {
      "model": "<string>",
      "mode": "<string>",
      "duration": 1,
      "fast": true,
      "numVariations": 5
    },
    "text": {
      "model": "<string>",
      "mode": "<string>",
      "fast": true,
      "numVariations": 5
    },
    "audio": {
      "model": "<string>",
      "mode": "<string>",
      "voiceId": "<string>",
      "customVoiceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "voiceSettings": {
        "speed": 2.125,
        "stability": 0.5,
        "similarityBoost": 0.5,
        "style": 0.5,
        "speakerBoost": true,
        "removeBackgroundNoise": true
      },
      "duration": 1,
      "numVariations": 2
    }
  }
}
{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}
{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}
{
"message": "<string>"
}
{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"retryAfterSeconds": 123
}

Authorizations

Authorization
string
header
required

A Melius API key (mel_...), sent as Authorization: Bearer <key>.

x-team-id
string
header
required

The team (workspace) to act on. Defaults to the key's team when omitted.

Path Parameters

canvasId
string<uuid>
required

Query Parameters

nodeId
string<uuid>
includeAllVersions
boolean
mediaSummaries
boolean

Response

200

nodes
object[]
required
edges
object[]
required
modelPresets
object

Canvas-wide default model + variant the user configured in canvas settings, per category (image/video/text/audio). When a node is created with no modelConfig, the server pins these defaults exactly. Use this to know what model+mode will apply, so you can pick correct edge handles and avoid hallucinating the default

Last modified on July 9, 2026