Skip to content

Canvas API

Canvas layouts.

2 operations. Every call needs a session cookie or an Authorization: Bearer nct_… token unless marked Public. Conventions, errors and scopes

GET/projects/{projectId}/environments/{environmentId}/canvas

Get an environment's canvas layout

version 0 with an empty layout means nothing was saved yet. The ETag is the version.

ParameterInTypeDescription
projectIdrequiredpathstring
environmentIdrequiredpathstring
Response 200 · OK · application/json
Canvas
  • Layoutrequired
  • versioninteger (int64)required
Errors
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 422Unprocessable Entity
  • 500Internal Server Error

Errors are RFC 9457 application/problem+json with a stable code field.

PUT/projects/{projectId}/environments/{environmentId}/canvas

Save an environment's canvas layout

Requires If-Match: "<version>"; a stale version returns 412 layout_conflict. The layout is presentation only and never affects deployments.

ParameterInTypeDescription
projectIdrequiredpathstring
environmentIdrequiredpathstring
If-MatchheaderstringThe ETag (version) from the last GET. Use "0" for the first save.
Request body · application/json · required
PutInputBody3
  • Layoutrequired
Response 200 · OK · application/json
Canvas
  • Layoutrequired
  • versioninteger (int64)required
Errors
  • 401Unauthorized
  • 403Forbidden
  • 404Not Found
  • 412Precondition Failedlayout_conflict
  • 422Unprocessable Entity
  • 428Precondition Required
  • 500Internal Server Error

Errors are RFC 9457 application/problem+json with a stable code field.