> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getspine.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get canvas DAG

> Returns the canvas block graph — nodes and edges.



## OpenAPI

````yaml /openapi.yaml get /v1/canvas/{canvas_id}/dag
openapi: 3.1.0
info:
  title: Spine API
  version: 1.0.0
  summary: The highest-quality research API — multi-agent canvas orchestration.
  description: |
    The Spine API delivers the highest-quality research available, ranked #1 on
    GAIA Level 3. Submit a prompt (with optional files, a template, or an
    explicit block configuration) to kick off an async multi-agent canvas run,
    and poll for the generated artifacts, DAG, and task tree.

    All endpoints are authenticated via the `X-API-KEY` header. Create a key
    from the [Spine developer portal](https://platform.getspine.ai).
  contact:
    name: Spine support
    email: support@getspine.ai
    url: https://platform.getspine.ai
servers:
  - url: https://api.getspine.ai
    description: Production
security:
  - apiKey: []
tags:
  - name: Runs
    description: Create and poll canvas runs.
  - name: Canvas
    description: Inspect the generated canvas DAG and task tree.
paths:
  /v1/canvas/{canvas_id}/dag:
    get:
      tags:
        - Canvas
      summary: Get canvas DAG
      description: Returns the canvas block graph — nodes and edges.
      operationId: getCanvasDag
      parameters:
        - $ref: '#/components/parameters/CanvasId'
      responses:
        '200':
          description: Canvas DAG.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCanvasDagResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-codeSamples:
        - lang: curl
          label: curl
          source: |
            curl https://api.getspine.ai/v1/canvas/<canvas_id>/dag \
              -H "X-API-KEY: sk_spine_..."
components:
  parameters:
    CanvasId:
      name: canvas_id
      in: path
      required: true
      description: Canvas identifier, returned on a completed run.
      schema:
        type: string
        format: uuid
  schemas:
    GetCanvasDagResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          const: true
        data:
          $ref: '#/components/schemas/Canvas'
    Canvas:
      type: object
      required:
        - canvas_id
        - nodes
        - edges
      properties:
        canvas_id:
          type: string
          format: uuid
        canvas_name:
          type: string
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/Block'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/Edge'
    Error:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          const: false
        error:
          type: string
          description: Human-readable error message.
    Block:
      type: object
      description: A node in the canvas DAG.
      required:
        - id
        - name
        - type
        - status
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        type:
          $ref: '#/components/schemas/BlockType'
        status:
          type: string
          example: completed
        content:
          type: string
          description: Full text output from the block.
        url:
          type:
            - string
            - 'null'
          format: uri
          description: Reference URL for blocks that point at external resources.
        sources:
          type: array
          items:
            type: object
    Edge:
      type: object
      required:
        - source_id
        - target_id
      properties:
        source_id:
          type: string
          format: uuid
        target_id:
          type: string
          format: uuid
    BlockType:
      type: string
      description: One of the 17 block types agents can create.
      enum:
        - prompt-block
        - list-block
        - memo-block
        - document-block
        - excel-block
        - deep-research-block
        - image-block
        - presentation-block
        - app-block
        - table-block
        - prototype-block
        - landing-page-block
        - text-block
        - web-block
        - yt-block
        - web-research-block
        - file-block
  responses:
    Unauthorized:
      description: Missing, invalid, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missingKey:
              value:
                success: false
                error: X-API-KEY header required
    NotFound:
      description: Resource does not exist or belongs to another account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            runNotFound:
              value:
                success: false
                error: 'Run not found: 550e8400-e29b-41d4-a716-446655440000'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: |
        An API key from the Spine developer portal. Keys are prefixed with
        `sk_spine_` and shown only once at creation. Keep them server-side.

````