13 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.
Over MCP the same operation is the tool assets_create_folder at https://app.chirply.io/api/mcp, same bearer token, same input.
Delete files
assets.deletewriteconfirm
Permanently delete library files and their stored bytes. Anything embedding the file's URL (emails already sent, funnel pages, designs) will show a broken image. 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.
Over MCP the same operation is the tool assets_delete at https://app.chirply.io/api/mcp, same bearer token, same input.
Delete a folder
assets.delete_folderwriteconfirm
Permanently delete a library folder. The files inside are NOT deleted and their URLs keep working — they just become unfiled and reappear under 'All files'. The folder itself cannot be restored; recreating it does not re-gather what was in it, so the tidying has to be redone by hand.
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.
Over MCP the same operation is the tool assets_delete_folder at https://app.chirply.io/api/mcp, same bearer token, same input.
Generate an AI image
assets.generate_imagewriteconfirm
Generate an image from a description and save it straight into the media library, returning its permanent URL. THIS SPENDS REAL MONEY: the request runs on the organization's OWN OpenRouter API key, so the image-generation charge lands on the tenant's OpenRouter bill directly — there is no credit pool and no free allowance to absorb it. Each call is a separate billed generation whether or not the result is any good.
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.
Over MCP the same operation is the tool assets_get at https://app.chirply.io/api/mcp, same bearer token, same input.
Import a file from a URL
assets.import_from_urlwriteconfirm
Download a file from a public https URL into the organization's media library and return its permanent Chirply URL. Accepts images, video, audio and PDF up to 25 MB. Use this instead of hotlinking: imported files can't break when the source disappears. THIS MAKES AN OUTBOUND REQUEST FROM CHIRPLY'S SERVERS to whatever address is given, so everything in the URL — path, query string, fragment — is disclosed to whoever operates it. That is why it asks for confirmation.
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.
Over MCP the same operation is the tool assets_import_from_url at https://app.chirply.io/api/mcp, same bearer token, same input.
List files
assets.listread
List the organization's media library (uploaded images, videos, audio and documents), newest first, each with its permanent public URL. Filter by kind or folder and search names.
Over MCP the same operation is the tool assets_rename at https://app.chirply.io/api/mcp, same bearer token, same input.
Rename folder
assets.rename_folderwrite
Change a library folder's display name. Nothing else moves: the files inside stay in it, and every file URL is unaffected because a folder is only a label on the library screen.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The folder to rename (see assets.list_folders).
name
string
required
The folder's new name. Trimmed, and cut to 80 characters.
Over MCP the same operation is the tool assets_rename_folder at https://app.chirply.io/api/mcp, same bearer token, same input.
Library totals
assets.statsread
The four headline counts on the Media Library screen: how many files are in the library, how many of those are images, how many Design Studio projects exist, and how many folders. Whole-account lifetime counts with no date window and no filters — assets.list answers 'which files' and pages, this answers 'how many'. Read-only.
Over MCP the same operation is the tool assets_stats at https://app.chirply.io/api/mcp, same bearer token, same input.
Upload files
assets.uploadwrite
Upload a file into the organization's media library by sending its bytes base64-encoded, and get back its permanent public Chirply URL — the same URL the Upload button produces, usable in emails, funnel pages, posts, designs and as an outbound message attachment. Accepts PNG, JPG, GIF, WebP, SVG, ICO, MP4, MOV, WebM, MP3, WAV, M4A, OGG and PDF files, up to 25 MB per file. THE EXTENSION ON `name` DECIDES THE TYPE: the file's real header bytes must match what that extension claims or the upload is rejected, and the stored content type comes from the extension alone — never from anything the caller asserts. Costs nothing and sends nothing; it stores the bytes and adds one row to the library, where anyone in the workspace can see and delete it. If the file is already on the public web, assets.import_from_url is cheaper than base64.
Parameters
Field
Type
Required
Description
name
string
required
The file name, INCLUDING its extension, e.g. "logo.png" — the extension is what decides the accepted type and the content type it will be served as. Accepted: PNG, JPG, GIF, WebP, SVG, ICO, MP4, MOV, WebM, MP3, WAV, M4A, OGG and PDF files. Path segments, quotes and control characters are stripped.
content_base64
string
required
The file's raw bytes, base64-encoded. A `data:` URL prefix and line breaks are accepted and stripped. The decoded size must be 25 MB or less.
folder_id
string (uuid)
optional
Library folder to file it into (see assets.list_folders). Omit to leave it unfiled under 'All files'.