← All action domains

Stored files

3 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.

Download file list

stored_files.download_listreadconfirmadmin only

Produces the account's file list: a small ZIP holding an index page with a download link for every stored file (recordings, attachments, uploads, images, documents), the same list as a spreadsheet, a curl config that downloads everything into folders in one command, and a manifest with counts per category and the files held in connected accounts (Twilio, Gmail, Meta) with where to find them. Returns a signed URL to that ZIP which expires in 15 minutes — NOT the files themselves; the file links inside work for 72 hours on the account's own domain, for anyone who holds the list, until they expire or stored_files.revoke_links switches them off. Every list is recorded (who, when, how many files). Nothing is changed or deleted. Lists over 20,000 files come in parts — pass `part`.

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.

Also answers to download all our files, file dump, export recordings and attachments, download call recordings, get every uploaded file.

Parameters

FieldTypeRequiredDescription
partintegeroptionalWhich part of a list too big for one ZIP (20,000 files each), default 1. The manifest says how many parts there are.
contact_idstring (uuid)optionalNarrow to ONE person's files — their call recordings, email attachments, uploads and the like — for answering an access request. Omit for every file in the account.

Example

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

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

List stored files

stored_files.listreadadmin only

Lists the files this account stores — call recordings and voicemails, voice prompts, email attachments, media library items, AI Studio creations, logos, knowledge documents, contact files, session and screen recordings, team chat files from public channels, project files, form uploads, snapshot bundles and more — with each file's category, name, size, type, date and the record it belongs to, plus totals per category. Also names the files held in the account's own connected accounts (Twilio call recordings never copied here, Gmail attachments, Meta attachments) with the provider's reference ids and where to find them. Returns metadata only — no download links and no file contents; use stored_files.download_list for links. Nothing is changed.

Also answers to what files do we store, list recordings and attachments, stored files, file inventory, which files does this person have.

Parameters

FieldTypeRequiredDescription
contact_idstring (uuid)optionalNarrow to ONE person's files — their call recordings, email attachments, uploads and the like — for answering an access request. Omit for every file in the account.
category"call_recordings" | "voice_audio" | "email_attachments" | "media_library" | "project_previews" | "ai_studio" | … 15 moreoptionalOnly files in this category. One of: call_recordings, voice_audio, email_attachments, media_library, project_previews, ai_studio, brand_images, knowledge_documents, contact_files, digital_cards, link_files, session_recordings, screen_recordings, team_chat, project_files, form_uploads, snapshots, support_attachments, app_images, floor_plans, team_photos.
limitintegeroptionalHow many files to return in `files`, default 100. Totals always cover everything.
offsetintegeroptionalSkip this many files — pass the previous call's `next_offset` to page through.

Example

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

Over MCP the same operation is the tool stored_files_list 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=stored_files — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.