← All action domains

Designs

6 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

New design

designs.createwrite

Create a Design Studio project — blank at a given size, from a built-in template slug, or as a copy of an existing design (an org template, say). Returns the new design; edit its doc with designs.update.

Parameters

FieldTypeRequiredDescription
namestringoptionalThe design's name.
widthintegeroptionalCanvas width in px (blank designs).
heightintegeroptionalCanvas height in px (blank designs).
template_slugstringoptionalStart from this built-in template.
from_design_idstring (uuid)optionalCopy this existing design.

Example

curl -X POST https://app.chirply.io/api/v1/actions/designs.create \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "width": 1
  }'
Test with your API key

Over MCP the same operation is the tool designs_create at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete a design

designs.deletewriteconfirm

Permanently delete a design project. Exported PNGs already in the media library are kept. This cannot be undone.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe design to delete.

Example

curl -X POST https://app.chirply.io/api/v1/actions/designs.delete \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool designs_delete at https://app.chirply.io/api/mcp, same bearer token, same input.

Open a design

designs.getread

Fetch one design with its full document: pages of positioned text, image and shape elements on a fixed-size canvas. PNG export happens in the browser editor; machines read the doc here and the thumbnail URL from designs.list.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe design's id.

Example

curl -X POST https://app.chirply.io/api/v1/actions/designs.get \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool designs_get at https://app.chirply.io/api/mcp, same bearer token, same input.

List designs

designs.listread

List the organization's Design Studio projects, most recently edited first, with canvas size and thumbnail URL.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalPage size. Default: 48
offsetintegeroptionalRows to skip. Default: 0
templates_onlybooleanoptionalOnly designs the org promoted to reusable templates. Default: false
querystringoptionalText to match in design names.

Example

curl -X POST https://app.chirply.io/api/v1/actions/designs.list \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 48,
    "offset": 0
  }'
Test with your API key

Over MCP the same operation is the tool designs_list at https://app.chirply.io/api/mcp, same bearer token, same input.

Browse design templates

designs.list_templatesread

List the built-in design templates — slug, name, category and canvas size — plus the size presets for a blank canvas. Pass include_documents to also get each template's full starter document, which is the actual arrangement of text, image and shape elements it would create; that payload is large, so it is off by default. Use a template's slug, or a preset's width and height, with designs.create. Read-only.

Parameters

FieldTypeRequiredDescription
include_documentsbooleanoptionalInclude each template's full starter document ({version, pages:[{background, elements}]}), so you can see exactly what it lays out before creating anything. Substantially larger response; off by default. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/designs.list_templates \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "include_documents": false
  }'
Test with your API key

Over MCP the same operation is the tool designs_list_templates at https://app.chirply.io/api/mcp, same bearer token, same input.

Edit a design

designs.updatewrite

Rename a design, replace its document, or promote/demote it as a reusable org template. `doc` REPLACES the whole document — there is no per-element patch and NO VERSION HISTORY, so whatever was on the canvas before is gone the moment this returns. Always read the current document with designs.get, change what you need, and send the whole thing back. The document is normalized on save: unrecognised element types are dropped and every number is clamped (20 pages, 200 elements per page, 10000 px canvas), so an element that silently disappears is one the schema did not recognise.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe design to edit.
namestringoptionalNew name for the design, shown in the Design Studio gallery. Omit to leave it as it is.
docmap of string → objectoptionalThe FULL replacement document — it overwrites the design outright, with no version history to fall back on. Shape: {"version":1,"pages":[{"id":"p1","background":{"color":"#0f172a"},"elements":[{"id":"t1","type":"text","x":90,"y":120,"w":900,"h":200,"rotation":0,"opacity":1,"text":"Spring sale","fontFamily":"Inter","fontSize":72,"fontWeight":700,"italic":false,"align":"center","color":"#f8fafc","lineHeight":1.2,"letterSpacing":0},{"id":"i1","type":"image","x":0,"y":400,"w":1080,"h":600,"rotation":0,"opacity":1,"src":"https://your-workspace.example/file.png","fit":"cover","radius":24},{"id":"s1","type":"shape","x":90,"y":340,"w":200,"h":8,"rotation":0,"opacity":1,"shape":"rect","fill":{"color":"#38bdf8"},"stroke":"","strokeWidth":0,"radius":4}]}]}. Every element carries id/type/x/y/w/h/rotation/opacity; x and y are the unrotated top-left corner in canvas pixels and rotation is degrees clockwise about the element's centre. `type` is one of text, image or shape (shape name: rect | ellipse | triangle | line); any fill may add a gradient as {from, to, angle}. An image `src` must be a real reachable URL — use a media-library URL from assets.list or assets.upload. Fonts come from a curated list (Inter, Poppins, Open Sans, Montserrat, Lato, Playfair Display and others) and an unknown family falls back to the default. Call designs.list_templates with include_documents=true for complete worked examples.
is_templatebooleanoptionaltrue adds this design to the org's own template gallery so teammates can start new designs from it; false takes it back out. Omit to leave it as it is.

Example

curl -X POST https://app.chirply.io/api/v1/actions/designs.update \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool designs_update at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=designs — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.