Wires the source card's output into an input port on the target card. targetPort defaults to the first free port that takes the source's type. The types must match, the port must have room for the target's current model, and the wire must not make a loop. A single-wire port that already has a wire returns conflict unless replace is true. Wiring a wire that is already there changes nothing (changed: false). Shows up live on the canvas in the Yapper web app. Free. Uses the processes:write scope.
Authorization
bearerAuth processes:writeIn: header
Scope: processes:write
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/sessions/string/canvas/edges" \ -H "Content-Type: application/json" \ -d '{ "sourceNodeId": "string", "targetNodeId": "string" }'{ "edge": { "id": "string", "sourceNodeId": "string", "targetNodeId": "string", "targetPort": "prompt", "type": "text", "order": 0 }, "changed": true, "target": { "id": "string", "kind": "text", "label": "string", "position": { "x": 0, "y": 0 }, "width": 0, "height": 0, "locked": true, "ports": { "inputs": [ { "id": "prompt", "type": "text", "maxConnections": 0, "connected": 0 } ], "output": "text" }, "inputs": [ { "port": "string", "sourceNodeId": "string", "order": 0 } ], "text": "string", "asset": { "assetId": "string", "type": "image", "url": "string", "thumbnailUrl": "string", "width": 0, "height": 0, "duration": 0, "name": "string" }, "pending": true, "prompt": "string", "modelId": "string", "aspectRatio": "string", "resolution": "string", "numOutputs": 0, "duration": 0, "durationMode": "string", "generateAudio": true, "customSettings": {}, "promptGuide": "string", "runCount": 0, "runs": [ { "id": "string", "index": 0, "status": "waiting", "processId": "string", "canvasRunId": "string", "modelId": "string", "startedAt": "2019-08-24T14:15:22Z", "creditsEstimated": 0, "outputs": [ { "assetId": "string", "type": "image", "url": "string", "thumbnailUrl": "string", "width": 0, "height": 0, "duration": 0, "name": "string" } ], "text": "string", "error": "string" } ], "selectedOutput": { "runId": "string", "outputIndex": 0 }, "output": null, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}{ "error": { "code": "string", "message": "string", "requestId": "string" }}Finalize a direct upload POST
Call after PUTting the bytes to uploadUrl. Probes the file (size limits, dimensions/duration), stores a normalized copy, and returns the finished asset. Idempotent: completing again returns the same asset.
Create a direct upload POST
For local image, video, or audio files with no URL (use POST /assets/import for remote media). Returns a short-lived signed PUT URL: upload the bytes to uploadUrl sending every header from the response headers map (Content-Type plus the x-goog-content-length-range size cap — the storage provider rejects the PUT if either is missing or altered), then call the complete endpoint to finalize the asset. Spends no credits.