← All action domains

Backups

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

Create isolated recovery copy

backups.create_recovery_copywriteconfirmadmin only

Copy a completed backup into a new private recovery_<snapshot> schema inside the account's own connected Supabase project. Consumes that customer's storage and database resources. Rechecks counts, unique IDs and selected references within an atomic transaction; refuses incomplete, incompatible or over-50,000-row snapshots and never overwrites an existing schema. Copies text-valued data tables only: no running Chirply account, credentials, triggers, workflow execution or message sending. Repeated calls cannot create duplicate copies. Owner/admin approval required.

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
snapshot_idstring (uuid)requiredCompleted snapshot ID whose preview and destination the approver reviewed.

Example

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

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

Backup destination

backups.get_destinationreadadmin only

Shows where this account backs its data up to — which of the account's own connected Supabase projects receives it, the schema the tables land in, the schedule, the retention setting, and when the last and next backups run. Also lists the Supabase projects available to choose from. Reads only; nothing is written anywhere.

Also answers to where do my backups go, backup settings, is backup on.

Parameters

No parameters — POST an empty body.

Example

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

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

View a backup

backups.get_runreadadmin only

One backup snapshot in full: its status, when it ran, and its manifest — the per-dataset row counts, the true account counts beside them so a short dataset is obvious, the table each dataset landed in, and the list of everything deliberately excluded from any Chirply backup. This is the record to check before trusting a snapshot to restore from. Reads only.

Also answers to backup details, what was in that backup.

Parameters

FieldTypeRequiredDescription
run_idstring (uuid)requiredThe backup's id, from backups.list_runs. It is also the snapshot_id every row in the destination carries.

Example

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

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

Backup history

backups.list_runsreadadmin only

Lists this account's backup snapshots, newest first — when each ran, whether it was scheduled or asked for, how many rows and datasets landed, and whether it completed. A snapshot marked 'incomplete' finished with at least one dataset short of the account; 'running' is still in progress. Reads Chirply's own record of the runs and touches the destination database not at all.

Also answers to list my backups, backup history, when did it last back up.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0

Example

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

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

Inspect recovery copy

backups.preview_recovery_copyreadadmin only

Inspect one completed backup in the account's current customer-owned Supabase destination. Checks current inventory compatibility, stored row counts, unique IDs and selected CRM references, then proposes an isolated recovery schema in that same project. Limited to 50,000 rows. Reads the external database and may consume its normal query resources; copies nothing, sends nothing and does not restore a running Chirply account. Owner/admin only.

Parameters

FieldTypeRequiredDescription
snapshot_idstring (uuid)requiredCompleted backup run ID from backups.list_runs, belonging to the current destination.

Example

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

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

Turn off backups

backups.remove_destinationwriteconfirmadmin only

Stops backing this account up: removes the destination and cancels any schedule. Snapshots already written to the customer's Supabase project are left exactly where they are — this deletes nothing from their database, and the tables stay queryable. Setting a destination again later resumes with new snapshots alongside the old ones.

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 stop backing up, disconnect my backup database.

Parameters

No parameters — POST an empty body.

Example

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

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

Back up now

backups.run_nowwriteconfirmadmin only

Starts a backup immediately, writing this account's entire business data into the connected Supabase project set as its destination, as a new snapshot alongside every previous one. The data lands in a database the CUSTOMER owns and pays Supabase for, and consumes their storage. A large account is written across several passes: this call returns as soon as its time budget is spent, reporting status 'running', and the scheduled worker carries the same snapshot forward until it is done. Calling it again while one is in flight continues that snapshot rather than starting a second. Provider credentials, API keys, encrypted columns and other accounts' data are never included.

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 back up now, run a backup, snapshot my workspace.

Parameters

No parameters — POST an empty body.

Example

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

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

Set backup destination

backups.set_destinationwriteconfirmadmin only

Points this account's backups at one of its own connected Supabase projects and sets how often they run. Chirply will then write the account's entire business data — contacts, companies, deals, tasks, appointments, conversations and full message bodies, call metadata and transcripts, invoices and orders, forms and their responses, custom objects, the activity log and the unsubscribe lists — into that project as ordinary Postgres tables the customer can query and restore from. The data lands in a database the CUSTOMER owns and pays Supabase for, and each backup consumes their storage. Provider credentials, API keys, encrypted columns and other accounts' data are never included. Replaces any destination already set; an account has one.

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 back up to my own supabase, set up backups, schedule backups, connect a backup database.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredWhich connected Supabase project receives the backups — the project's id in this account, from supabase.list_projects (NOT the Supabase project ref).
frequency"manual" | "daily" | "weekly"requiredHow often a backup runs automatically: 'manual' (only when asked), 'daily', or 'weekly'. Every run is a new snapshot; nothing is overwritten.
hour_utcintegeroptionalHour of the day, in UTC, that a daily or weekly backup starts. Defaults to 3.
day_of_weekintegeroptionalFor a weekly schedule, the day it runs: 0 is Sunday through 6 is Saturday. Ignored for other frequencies.
keep_lastinteger (or null)optionalHow many snapshots to keep in the destination. Leave unset (the default) to keep EVERY backup forever — Chirply then never deletes anything from the customer's database. Setting a number makes each successful run delete older snapshots beyond it, which is irreversible.
schema_namestringoptionalThe Postgres schema in the destination project that the backup tables live in. Defaults to "chirply_backup". Lower-case letters, digits and underscores only.
is_activebooleanoptionalWhether scheduled backups are armed. Set false to keep the destination configured but pause the schedule; on-demand backups still work.

Example

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

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