---
title: "Create a node in a space (canvas)"
method: POST
path: "/api/v1/create_space_node"
tags: ["Spaces"]
---

# Create a node in a space (canvas)

`POST /api/v1/create_space_node`

## Request

- Base URL: `https://api.pymaia.com`
- URL: `https://api.pymaia.com/api/v1/create_space_node`
- Auth: HTTP bearer

Create a node in a space (canvas). For AI generator nodes (ai-image-gen, ai-text-gen, ai-video-gen, ai-static-gen) you can preload the prompt/params in `config`; the node stays in draft and generation is triggered later. For type email pass config.email = {kind: "campaign"|"flow_message", id}; title and content are filled from that email. Returns the created node id (use it in connect_space_nodes).

## Request body

- object
  - `space_id` string, required
  - `type` 'brief' | 'text' | 'image' | 'video' | 'audio' | 'document' | 'note' | 'group' | 'ai-text-gen' | 'ai-image-gen' | 'ai-video-gen' | 'ai-static-gen' | 'ai-upscaler' | 'ai-assistant' | 'ai-audio-gen' | 'ai-adapt' | 'ai-avatar-gen' | 'ai-video-postprod' | 'ai-variants' | 'publish' | 'transcriptor' | 'remotion-render' | 'reel-project' | 'video-composer' | 'outreach-wait' | 'outreach-email' | 'outreach-dm' | 'outreach-condition' | 'ad-reference' | 'audience' | 'product' | 'signal' | 'post' | 'email', required
  - `title` string
  - `content` string
  - `position_x` number
  - `position_y` number
  - `config` object
  - `platform` string
  - `source` 'manual' | 'ai_text' | 'ai_image' | 'ai_video' | 'ai_compose' | 'ai_audio' | 'ai_decompose' | 'remotion' | 'higgsfield' | 'heygen' | 'canva' | 'freepik' | 'upload' | 'ad_library' | 'ad_reference' | 'audience' | 'template' | 'product'

## Response `200`

Tool executed successfully

- object
  - `ok` boolean
  - `result` unknown
  - `duration_ms` number

## Other responses

- `400`: Invalid params or handler error
- `401`: Missing or invalid Bearer token
- `403`: Missing required scope(s) (`denied_scope`), or the tool's module is disabled for the organization (`module_disabled`, with `why`, `fix` and `module`)
- `404`: Tool not found, internal-only, or excluded for OAuth connectors
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/pymaia/apis/pymaia-api.md) · [All operations](https://skmtc.dev/pymaia/apis/pymaia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pymaia/apis/pymaia-api/revisions/705a6973177b?raw)
