← All action domains

Capture

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

View recording activity

capture.activityread

Read bounded recent recording activity and 30-day watched-viewer/comment counts, respecting account and personal access. Viewer sessions are not verified people. No messages are sent.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum recent activity entries, from 1 to 30. Default: 6
scope"activity" | "notifications"optionalActivity shows accessible workspace events; notifications shows only the signed-in recipient's currently enabled alerts. Default: "activity"

Example

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

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

View recording analytics

capture.analyticsread

Count anonymous viewer sessions, plays and completions. Completion requires at least 90% non-overlapping watched coverage reported by the browser; sessions are not verified unique people. No messages are sent.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.analytics \
  -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 capture_analytics at https://app.chirply.io/api/mcp, same bearer token, same input.

Add guide template

capture.append_guide_templatewriteconfirm

Append four editable SOP, onboarding or troubleshooting prompts to the guide. Prompts are illustrative placeholders, not generated facts. Saves immediately and changes existing shared guides; no messages are sent.

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)requiredCapture recording identifier in this workspace.
template"sop" | "onboarding" | "troubleshooting"requiredType of instruction template to append.

Example

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

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

Choose connected live destinations

capture.broadcast_connectionsreadadmin only

List connected Facebook profiles, Facebook Pages and YouTube channels available for automatic live setup, including whether each connection needs renewed live permissions. No credentials are returned.

Parameters

No parameters — POST an empty body.

Example

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

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

Add live destination

capture.broadcast_destination_addwriteconfirmadmin only

Save an encrypted Facebook, YouTube, Restream or Twitch stream key for future broadcasts. No video is transmitted until a broadcast is explicitly started.

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
namestringrequiredName shown in the destination picker.
platform"facebook" | "youtube" | "restream" | "twitch"requiredService receiving the live broadcast. Manual stream-key setup; connected profiles and channels have a separate setup action.
server_urlstringrequiredStreaming server URL supplied by the destination, without its stream key.
stream_keystringrequiredPrivate destination stream key. Stored encrypted; never returned by read endpoints.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.broadcast_destination_add \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "platform": "facebook",
    "server_url": "https://example.com",
    "stream_key": "example"
  }'
Test with your API key

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

Add connected live destination

capture.broadcast_destination_connectwriteconfirmadmin only

Save a connected Facebook profile, Page or YouTube channel as a live destination without manually entering a stream key. Does not create a broadcast until Go live is explicitly requested.

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
kind"facebook_profile" | "facebook_page" | "youtube_channel"requiredConnected personal Facebook profile, Facebook Page or YouTube channel.
connection_idstringrequiredConnection identifier returned by connected live destinations; never an arbitrary platform user ID.

Example

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

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

Remove live destination

capture.broadcast_destination_removewriteconfirmadmin only

Delete a saved live destination and encrypted stream key from this account. Active broadcasts keep their existing destination snapshot until stopped.

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)requiredCapture broadcast or destination UUID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.broadcast_destination_remove \
  -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 capture_broadcast_destination_remove at https://app.chirply.io/api/mcp, same bearer token, same input.

Open live studio

capture.broadcast_overviewreadadmin only

Read live destinations, relay configuration, current managed rate and recent account broadcast sessions. Stream keys and relay credentials are never returned.

Parameters

No parameters — POST an empty body.

Example

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

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

Download relay & setup guide

capture.broadcast_relay_packagereadadmin only

Get the customer relay package and deployment instructions for hosting Capture streaming in your own Cloudflare account. Downloading is free; deploying and streaming incur your provider’s hosting and traffic charges.

Parameters

No parameters — POST an empty body.

Example

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

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

Save streaming provider

capture.broadcast_settingswriteconfirmadmin only

Choose managed streaming billed against account credits or a customer-owned Capture relay billed by its host. Saves encrypted credentials; does not start a broadcast.

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
mode"managed" | "custom"requiredChirply-managed streaming or a customer-owned compatible relay.
relay_urlstringoptionalHTTPS origin of a customer-owned Capture relay deployed on workers.dev.
relay_secretstringoptionalCustomer relay bearer secret; encrypted at rest. Omit to keep the saved secret.

Example

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

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

Go live

capture.broadcast_startwriteconfirmadmin only

Reserve the reviewed maximum managed-streaming cost and prepare up to five live destinations with the selected audience; Facebook Pages are public. Returns a short-lived ingest URL. A browser must explicitly share its screen and send media; custom relays use their own provider billing.

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
audience"private" | "friends" | "unlisted" | "public"optionalAudience for connected live destinations. Facebook profiles: private, friends or public; YouTube: private, unlisted or public. Facebook Pages are public. Stream-key destinations keep platform settings. Default: "private"
youtube_made_for_kidsbooleanoptionalWhether this YouTube live broadcast is made for children. Choose according to the actual content. Default: false
request_idstring (uuid)requiredStable request UUID. Retry the same UUID after an uncertain response to avoid another broadcast or charge.
titlestringrequiredBroadcast title sent to connected Facebook and YouTube destinations. Stream-key destination titles are set in their own live studio.
descriptionstringoptionalDescription sent to connected Facebook and YouTube broadcasts. Stream-key destinations use their own live studio. Default: ""
destination_idsarray of (string (uuid))requiredOne to five saved live destination UUIDs.
max_minutesintegerrequiredAutomatic stop deadline. Managed streaming reserves the maximum cost and returns unused credit afterward.
expected_rate_centsintegerrequiredReviewed per-minute price from broadcast overview. Changed prices require a fresh review.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.broadcast_start \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "title": "Example",
    "destination_ids": [
      "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
    ],
    "max_minutes": 1,
    "expected_rate_cents": 1
  }'
Test with your API key

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

Refresh broadcast status

capture.broadcast_statusreadadmin only

Reconcile a live session with its relay and read destination health and metered duration. Completed sessions return unused reserved account credit exactly once.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture broadcast or destination UUID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.broadcast_status \
  -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 capture_broadcast_status at https://app.chirply.io/api/mcp, same bearer token, same input.

End live broadcast

capture.broadcast_stopwriteconfirmadmin only

Stop this live broadcast on all selected destinations and settle managed streaming usage, returning unused reserved credits. Videos already delivered to platforms remain there.

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)requiredCapture broadcast or destination UUID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.broadcast_stop \
  -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 capture_broadcast_stop at https://app.chirply.io/api/mcp, same bearer token, same input.

Prepare sales page & checkout

capture.build_offerwriteconfirmadmin only

Create the reviewed product and price in the selected account Stripe mode and prepare a draft sales page with the shared video and native checkout. Requires explicit price, currency and billing terms. Charges nobody now and leaves the page unpublished; publishing it permits real purchases in live mode.

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
offer_idstring (uuid)requiredSaved offer draft UUID.
draftobjectrequiredOwner-reviewed offer content and monetary terms.
draft.namestringrequiredOffer name taken from the recording.
draft.headlinestringrequiredBenefit-led sales headline.
draft.summarystringrequiredSales copy grounded in the transcript.
draft.deliverablesstring[]requiredWhat the buyer receives.
draft.price_amountinteger (or null)requiredPrice in minor currency units; null when the recording is unclear.
draft.currencystring (or null)requiredISO currency, or null if not stated.
draft.billing"one_time" | "month" | "year" (or null)requiredOne-time, monthly, or yearly billing; null if unclear.
draft.termsstringrequiredDelivery and billing terms explicitly supported by the recording.
draft.price_evidencestringrequiredExact transcript passage supporting the price and billing terms.
draft.questionsstring[]requiredMissing facts the owner should resolve before selling.
payment_mode"test" | "live"requiredTest creates a test checkout; live enables real payments after publishing.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.build_offer \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "offer_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "draft": {
      "name": "Example",
      "headline": "example",
      "summary": "example",
      "deliverables": [
        "example"
      ],
      "price_amount": 50,
      "currency": "USD",
      "billing": "one_time",
      "terms": "example",
      "price_evidence": "example",
      "questions": [
        "example"
      ]
    },
    "payment_mode": "test",
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

Cancel render

capture.cancel_renderwrite

Stop a queued or running render from publishing its edited copy. Original recordings remain intact; delete the unfinished output separately to release reserved storage. Completed jobs are returned unchanged and no messages are sent.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredRender job UUID returned by enqueue or list.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.cancel_render \
  -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 capture_cancel_render at https://app.chirply.io/api/mcp, same bearer token, same input.

Claim recording ownership

capture.claimwriteconfirm

Assign an ownerless legacy recording to the signed-in account manager. Future enabled watch/comment notifications go to that person; existing ownership cannot be replaced. Requires an identified user and does not immediately send messages.

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)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.claim \
  -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 capture_claim at https://app.chirply.io/api/mcp, same bearer token, same input.

Post recording comment

capture.commentwriteconfirm

Post a visible recording comment or reply. Existing public viewers can read it, and the recording owner may receive an in-app alert, email and browser push according to preferences. Email provider fees may apply.

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
bodystringrequiredPlain-text comment, at most 4000 characters.
parent_idstring (uuid) (or null)optionalTop-level comment UUID to reply to; omit for a new thread.
timestamp_msinteger (or null)optionalOptional position in the video, in milliseconds.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)optionalStable comment UUID for idempotent retries.

Example

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

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

Connect Capture domain

capture.connect_domainwriteconfirmadmin only

Connect an already-owned hostname for public videos, screenshots and guides, and provision TLS. Includes ten Capture-only domains on Spark through Grow and unlimited on Scale and Founder; does not buy a domain, alter DNS records or unlock the white-label app. Returns CNAME instructions for your DNS provider.

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
domainstringrequiredA hostname you already own, such as videos.example.com. Add the returned CNAME at your DNS provider; this does not buy a domain or change DNS records.

Example

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

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

Create recording

capture.createwrite

Create a private Capture draft for an imported video or browser recording. Upload media separately; creating a draft does not record a person's screen or publish anything.

Parameters

FieldTypeRequiredDescription
access"workspace" | "personal"optionalWorkspace recordings are available to its members; personal recordings are visible only to their identified creator, unless explicitly shared by link. Default: "workspace"
folderstring (or null)optionalOptional folder label in the recording library; null removes the folder.
tagsstring[]optionalUp to 20 labels for organizing recordings. Default: []
idstring (uuid)optionalCapture recording identifier in this workspace.
titlestringoptionalName shown in the Capture library. Default: "Untitled recording"
mode"video" | "walkthrough" | "screenshot"optionalVideo records media; walkthrough also collects guide steps; screenshot stores one still raster image. Default: "video"

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.create \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "access": "workspace",
    "folder": "example"
  }'
Test with your API key

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

Create video collection

capture.create_collectionwriteconfirm

Create a personal or account video playlist. Account collections are visible to account members, but grant no recording permissions and send no messages.

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
titlestringrequiredCollection title.
descriptionstringoptionalDescription shown above the ordered playlist. Default: ""
access"personal" | "workspace"optionalPersonal is creator-only; workspace is visible to workspace members. Recording permissions still apply. Default: "personal"

Example

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

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

Create Capture pairing code

capture.create_pairingwriteconfirmadmin only

Create a ten-minute one-time code that connects a browser to this account's included Capture recorder. The credential can read and manage account Capture recordings, including edits, sharing, deletion and separately invoked AI operations that bill connected providers. It grants no paid Browser Agent tasks, manager controls or personal-recording access. Creating the code incurs no charge; keep it private.

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

No parameters — POST an empty body.

Example

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

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

Delete recording

capture.deletewriteconfirm

Permanently delete a recording, its stored video, guide and viewer events. This cannot be undone and existing share links stop working.

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)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.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 capture_delete at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete video collection

capture.delete_collectionwriteconfirm

Permanently delete a video collection and its playlist ordering. This cannot be undone; source recordings remain and no messages are sent.

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)requiredStable collection UUID in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.delete_collection \
  -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 capture_delete_collection at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete my comment

capture.delete_commentwriteconfirm

Remove the acting author's comment body and displayed author identity, preserving a deleted-comment placeholder and replies. This cannot restore the original text and does not retract copies already delivered to readers.

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)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

Disconnect Capture domain

capture.disconnect_domainwriteconfirmadmin only

Remove a Capture-only hostname and its TLS provisioning. Existing links on that hostname stop working; recordings remain available on the platform. Does not delete recordings or remove shared app domains. Stored domain preferences fall back to an available host.

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)requiredConnected Capture domain UUID returned by the domain list.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.disconnect_domain \
  -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 capture_disconnect_domain at https://app.chirply.io/api/mcp, same bearer token, same input.

Download original recording

capture.downloadread

Get the authenticated download endpoint for the stored original video. Send your existing API Bearer credential when fetching it; the URL is private and does not publish content.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.download \
  -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 capture_download at https://app.chirply.io/api/mcp, same bearer token, same input.

Draft from selected screenshots

capture.draft_visual_guidewriteconfirm

Send up to twelve reviewed screenshots and optional context to the account's connected vision provider, which bills for processing. Returns an evidence-based editable draft without saving or publishing it. Reuse the same request ID and identical input to retrieve an outcome without repeating generation; an uncertain provider outcome may already have incurred a charge.

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
request_idstring (uuid)requiredStable request UUID for this exact generation; retry the same UUID to retrieve its result without duplicate AI spend.
modelstringrequiredVision model shown by preflight; generation rejects a changed workspace model.
contextstringoptionalOptional goal or background for the guide. This is included with the screenshots sent to AI. Default: ""
framesobject[]requiredReviewed screenshots from this recording, at most 12 within a ten-minute span.
frames[].idstring (uuid)requiredUnique identifier tying this reviewed screenshot to its instructions.
frames[].timestamp_msintegerrequiredSource video timestamp of the screenshot, in milliseconds.
frames[].jpeg_base64stringrequiredBase64 JPEG bytes only, without a data URL prefix; at most 512 KiB and 1280 pixels on the longest edge.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.draft_visual_guide \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "model": "example",
    "frames": [
      {
        "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
        "timestamp_ms": 1,
        "jpeg_base64": "example"
      }
    ],
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

Edit my comment

capture.edit_commentwriteconfirm

Edit a comment authored by the acting user or this account's API integration. Changes affect existing public readers; editing does not resend the original comment notification. Guest authors use their signed viewer ticket through the public recording endpoint.

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
bodystringrequiredReplacement plain-text comment text.
timestamp_msinteger (or null)optionalOptional replacement video position in milliseconds, or null to remove it.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

Create rendered video

capture.enqueue_renderwriteconfirm

Encode selected source clips into a new MP4, WebM or GIF recording. Consumes server compute and reserves account storage up to max_output_bytes; no original is changed and no messages are sent. Failed copies keep their reservation until deleted; reuse the same request_id only for identical input.

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
request_idstring (uuid)requiredStable request UUID. Reuse only for identical render input to avoid allocating another job.
titlestringrequiredTitle of the new recording produced by the edit; the originals stay unchanged.
planobjectrequiredRetained clips and output encoding settings.
plan.clipsobject[]requiredSource intervals in output order; repeated and reordered clips are allowed.
plan.clips[].project_idstring (uuid)requiredRecording whose immutable original provides this clip.
plan.clips[].start_msintegerrequiredFirst source millisecond included in this clip.
plan.clips[].end_msintegerrequiredExclusive source end millisecond.
plan.format"mp4" | "webm" | "gif"optionalEncoded output format. GIF has no audio. Default: "mp4"
plan.aspect"source" | "16:9" | "9:16" | "1:1"optionalOutput aspect ratio. Different source ratios are padded, not cropped. Default: "source"
plan.height720 | 1080 | 2160optionalMaximum output pixel height, without upscaling the original. Default: 1080
plan.audio_gainnumberoptionalAudio amplitude multiplier; zero mutes the output. Default: 1
max_output_bytesintegeroptionalOutput storage budget, reserved before rendering. Encoding stops if it exceeds this limit; default 512 MiB, maximum 2 GiB. Default: 536870912

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.enqueue_render \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "title": "Example",
    "plan": {
      "clips": [
        {
          "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
          "start_ms": 1,
          "end_ms": 1
        }
      ]
    }
  }'
Test with your API key

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

Export guide

capture.export_guideread

Export a portable Markdown or HTML guide with authenticated screenshots embedded as JPEG data. Includes up to 20 MiB of images; the resulting file contains recording content and can be shared outside Chirply. Does not publish or send it.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.
format"markdown" | "html"optionalPortable text format; HTML can be printed to PDF by a browser. Default: "markdown"

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.export_guide \
  -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 capture_export_guide at https://app.chirply.io/api/mcp, same bearer token, same input.

Connect Facebook profile

capture.facebook_profile_connectreadadmin only

Open Facebook consent to connect a personal profile for Capture live streaming and video publishing. Requires a signed-in person and Meta app permission approval. This operation publishes no content.

Parameters

No parameters — POST an empty body.

Example

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

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

Disconnect Facebook profile

capture.facebook_profile_disconnectwriteconfirmadmin only

Remove this account’s encrypted Facebook profile token and its saved automatic live destination. Future publishing stops; existing Facebook videos remain on Facebook.

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)requiredCapture broadcast or destination UUID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.facebook_profile_disconnect \
  -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 capture_facebook_profile_disconnect at https://app.chirply.io/api/mcp, same bearer token, same input.

Finish recording upload

capture.finalize_uploadwriteconfirm

Complete a previously uploaded private recording after every multipart receipt is verified. Makes the stored original playable inside the account without publishing or messaging anyone.

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
partsobject[]requiredAll uploaded parts in order.
parts[].part_numberintegerrequiredOne-based multipart part number.
parts[].etagstringrequiredETag returned by the upload part request.
duration_msintegerrequiredMedia duration in milliseconds.
stepsobject[]optionalOptional opted-in captured walkthrough steps.
steps[].idstring (uuid)optionalStable step identifier; generated when omitted.
steps[].titlestringrequiredInstruction shown as the step heading.
steps[].descriptionstringoptionalEditable written instruction, stored as plain text. Default: ""
steps[].timestamp_msintegeroptionalPosition in the recording in milliseconds. Default: 0
steps[].urlstring (uri)optionalOptional captured web page address; query and fragment are removed.
steps[].image_urlstringoptionalPrivate Capture step image URL returned by the screenshot upload endpoint.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.finalize_upload \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      {
        "part_number": 1,
        "etag": "example"
      }
    ],
    "duration_ms": 1,
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

Follow discussion

capture.follow_threadwriteconfirm

Subscribe an account member to visible replies in a recording discussion. Enabled email and push channels send real notifications and email provider fees may apply. Every delivery rechecks membership, recording privacy and the subscription.

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
in_appbooleanoptionalReceive replies in the Capture notification inbox. Default: true
emailbooleanoptionalEmail reply notifications; provider fees may apply. Default: true
pushbooleanoptionalSend browser push reply alerts on opted-in devices. Default: true
user_idstring (uuid)optionalRequired target workspace member for userless manager API credentials; signed-in callers can only subscribe themselves.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

Create guide

capture.generate_guidewriteconfirm

Create an editable guide from captured events or an AI interpretation of the transcript. If needed, transcribes the video through the account ElevenLabs account; AI drafting uses its connected AI provider. Provider usage is billed to the connected accounts. Review inferred steps before sharing.

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)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.generate_guide \
  -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 capture_generate_guide at https://app.chirply.io/api/mcp, same bearer token, same input.

Create offer from video

capture.generate_offerwriteconfirmadmin only

Send the saved transcript, brand voice and bounded business knowledge to the connected AI provider to draft sales copy, deliverables and proposed money terms. Provider usage is billed. Creates an unpublished funnel draft; no Stripe product, checkout or customer message yet.

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
request_idstring (uuid)requiredStable UUID for this generation attempt; retry with the same UUID to read its saved result.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

Open recording

capture.getread

Read one account recording and its editable guide, transcript and sharing settings. Does not publish content or send messages.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.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 capture_get at https://app.chirply.io/api/mcp, same bearer token, same input.

Open video collection

capture.get_collectionread

Read an ordered playlist of recordings the caller can access within this account. Unavailable items are omitted; no messages are sent.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredStable collection UUID in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.get_collection \
  -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 capture_get_collection at https://app.chirply.io/api/mcp, same bearer token, same input.

View default share domain

capture.get_default_share_domainread

Read the account's saved default share hostname and eligible connected app domains, including inherited parent-agency domains. Does not publish recordings or change DNS.

Parameters

No parameters — POST an empty body.

Example

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

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

View render status

capture.get_renderread

Read an accessible render job's status, output recording and persistent error. Does not start another encode or consume additional output storage.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredRender job UUID returned by enqueue or list.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.get_render \
  -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 capture_get_render at https://app.chirply.io/api/mcp, same bearer token, same input.

View recording share domain

capture.get_share_domainread

Read a recording's saved share hostname override, effective hostname and eligible connected domains. Requires existing recording access; does not publish content or change DNS.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.get_share_domain \
  -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 capture_get_share_domain at https://app.chirply.io/api/mcp, same bearer token, same input.

Refresh share security

capture.get_share_securityread

Read recording password protection, public download policy and the current share URL. Returns no password or hash; only the creator or account managers can change these settings.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredRecording UUID accessible in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.get_share_security \
  -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 capture_get_share_security at https://app.chirply.io/api/mcp, same bearer token, same input.

List recordings

capture.listread

List the account's private Capture video and walkthrough library, including archived recordings. Returns metadata only; no messages are sent.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum recordings per page, from 1 to 100. Default: 50
cursorstringoptionalOpaque next_cursor from the previous matching page.
searchstringoptionalSearch titles, descriptions, transcripts, folders and exact tags across the library.
archived"true" | "false"optionalFilter archived status; omit to include both.
access"workspace" | "personal"optionalFilter workspace or personal recordings within the caller's existing permissions.
folderstringoptionalFilter an exact folder label.

Example

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

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

List video collections

capture.list_collectionsread

Read accessible personal and account video collections. Collection access does not grant access to its recordings; no content is published or sent.

Parameters

FieldTypeRequiredDescription
offsetintegeroptionalPagination offset from the previous next_offset. Default: 0
limitintegeroptionalMaximum collections or saved recordings to return. Default: 50

Example

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

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

View recording comments

capture.list_commentsread

Read timestamped recording comments and replies within the caller's account access. Includes pending and hidden comments for moderation; guest names are unverified. No messages are sent.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum comments per page. Default: 50
beforestring (uuid)optionalnext_cursor comment UUID from the previous page.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.list_comments \
  -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 capture_list_comments at https://app.chirply.io/api/mcp, same bearer token, same input.

Refresh Capture browsers

capture.list_devicesreadadmin only

List up to100 active browsers of each connection kind in this account. Distinguishes Capture-only credentials from Browser Agent credentials; returns prefixes, never usable tokens. No recordings or permissions are changed.

Parameters

No parameters — POST an empty body.

Example

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

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

View Capture domains

capture.list_domainsread

List this account's Capture-only custom domains and DNS verification status. No changes or charges occur.

Parameters

No parameters — POST an empty body.

Example

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

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

Video offers

capture.list_offersreadadmin only

Read sales offer drafts created from this recording. Account managers only; no provider usage or messages.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.list_offers \
  -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 capture_list_offers at https://app.chirply.io/api/mcp, same bearer token, same input.

List render jobs

capture.list_rendersread

Read a bounded page of accessible recording renders in this account. Personal output access is enforced; private source snapshots and provider URLs are never returned.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum jobs per page, from 1 to 50. Default: 20
beforestringoptionalOpaque next_cursor from the previous page; omit for newest jobs.
project_idstring (uuid)optionalRestrict to renders that use this accessible recording as an input source.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.list_renders \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 20,
    "before": "example"
  }'
Test with your API key

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

View recording versions

capture.list_versionsread

List up to 100 saved metadata versions of a recording the caller can access. Personal recordings require their identified creator; version history is never public. No messages are sent.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.list_versions \
  -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 capture_list_versions at https://app.chirply.io/api/mcp, same bearer token, same input.

List watch later

capture.list_watch_laterread

Read the signed-in member's saved recordings. A userless trusted account API manager must specify target_user_id; paired devices cannot use another member's list. Existing recording access still applies.

Parameters

FieldTypeRequiredDescription
offsetintegeroptionalPagination offset from the previous next_offset. Default: 0
limitintegeroptionalMaximum collections or saved recordings to return. Default: 50
target_user_idstring (uuid)optionalOnly a trusted workspace API manager may select another current member when no signed-in user exists. Signed-in users always use their own list; paired devices cannot select a member.

Example

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

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

Merge guide steps

capture.merge_stepswriteconfirm

Merge two adjacent guide steps and retain the explicitly selected screenshot. Saves the changed guide immediately, including on existing share links. No messages are sent.

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)requiredCapture recording identifier in this workspace.
indexintegerrequiredZero-based index of the first adjacent step to merge.
keep_screenshot"first" | "second"requiredWhich step's screenshot and stable ID to retain.

Example

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

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

Moderate recording comment

capture.moderate_commentwriteconfirm

Approve or hide a comment from public viewers, or resolve its discussion. Restricted to the creator and signed-in account managers. Approval exposes the comment to existing share-link viewers; no new message is sent.

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
status"visible" | "hidden"optionalApprove or hide the comment from public viewers.
resolvedbooleanoptionalMark the discussion resolved or reopen it.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

View recording notifications

capture.notification_preferencesread

Read recording comment moderation and owner notification preferences for in-app, email and push channels. Does not send messages or change device permissions.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.notification_preferences \
  -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 capture_notification_preferences at https://app.chirply.io/api/mcp, same bearer token, same input.

Keep selected blocks

capture.plan_keep_transcript_blocksread

Plan retained clips from selected whole saved caption blocks and return their total duration for review. Does not encode, save a render draft, publish, or spend provider money. This is block timing, not word precision; use the reviewed clips with Create rendered video to encode later.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredAccessible source recording UUID. Read its saved captions before selecting block indices.
selected_indicesinteger[]requiredSaved whole caption blocks to keep or remove. Repeated indices are deduplicated.
expected_updated_atstring (date-time)optionalSource updated_at from the read used to choose indices. Recommended: a changed source rejects the selection instead of cutting different blocks.

Example

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

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

Remove selected blocks

capture.plan_remove_transcript_blocksread

Plan a video cut that removes selected whole saved caption blocks while retaining unselected footage and unscripted gaps. Returns clips and duration for review; does not encode, save, publish, or spend provider money. No word-level precision is claimed; overlapping caption boundaries are rejected.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredAccessible source recording UUID. Read its saved captions before selecting block indices.
selected_indicesinteger[]requiredSaved whole caption blocks to keep or remove. Repeated indices are deduplicated.
expected_updated_atstring (date-time)optionalSource updated_at from the read used to choose indices. Recommended: a changed source rejects the selection instead of cutting different blocks.

Example

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

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

Refresh publication status

capture.publication_statusread

Read whether the saved recording draft differs from its immutable published version and whether its current share grant is active. Does not publish changes or alter access.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.publication_status \
  -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 capture_publication_status at https://app.chirply.io/api/mcp, same bearer token, same input.

Publish changes

capture.publish_changeswriteconfirm

Publish the saved recording draft as an immutable version. Existing share links immediately show the new title, guide, screenshots and captions permitted by their current audience. Does not create a share link or change its access or expiration.

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)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.publish_changes \
  -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 capture_publish_changes at https://app.chirply.io/api/mcp, same bearer token, same input.

React to comment

capture.react_commentwriteconfirm

Add a like, celebration or question reaction to a visible comment. Public readers see aggregate counts; no email or push notification is sent.

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
reaction"like" | "celebrate" | "question"requiredReaction to add or remove from this comment.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

Mark recording notification read

capture.read_notificationwrite

Mark one in-app recording notification read for its signed-in recipient. Cannot mark another person's notification; no messages are sent.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredActivity notification UUID to mark read.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.read_notification \
  -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 capture_read_notification at https://app.chirply.io/api/mcp, same bearer token, same input.

Regenerate selected steps

capture.regenerate_selected_stepswriteconfirm

Send selected saved guide steps and rewrite directions to the connected OpenRouter model, billed to the account. Returns reviewed text patches only; unselected content, screenshots, URLs and timing are preserved. Per-token price ceilings and an 8000-token output limit apply. No draft is saved or published, and failed or uncertain request IDs never trigger an automatic paid retry.

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
request_idstring (uuid)requiredUnique request UUID. Retry the identical request to retrieve its result without sending another paid generation.
expected_updated_atstring (date-time)requiredSaved recording updated_at reviewed before choosing content. Changed source rejects new generation.
modelstringrequiredExact connected workspace model returned by preflight.
operation"regenerate"requiredThis operation's fixed text transformation mode.
locale"en" | "es" | "fr" | "de" | "pt-BR" | "it" | … 10 morerequiredTarget language locale from the supported locale list.
step_idsarray of (string (uuid))requiredSelected guide steps only, at most 20. Their IDs, screenshots, URLs and timestamps remain unchanged.
caption_indicesinteger[]requiredSelected saved caption blocks to translate, at most 100. Regeneration requires an empty array.
instructionsstringoptionalOptional rewrite direction included with selected text sent to the provider; never treated as factual evidence. Default: ""
max_prompt_per_millionnumberrequiredMaximum provider prompt price in USD per million tokens, explicitly reviewed before sending.
max_completion_per_millionnumberrequiredMaximum provider completion price in USD per million tokens. Output is capped at 8000 tokens.
confirm_provider_transfertruerequiredConfirms that selected saved text and rewrite instructions may be sent to the workspace's OpenRouter model, billed to its connected account.
idstring (uuid)requiredAccessible recording UUID. Save its guide/caption changes before selecting text.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.regenerate_selected_steps \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "expected_updated_at": "2026-09-17T15:00:00Z",
    "model": "example",
    "operation": "regenerate",
    "locale": "en",
    "step_ids": [
      "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
    ],
    "caption_indices": [
      1
    ],
    "max_prompt_per_million": 1,
    "max_completion_per_million": 1,
    "confirm_provider_transfer": true,
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

Remove my reaction

capture.remove_comment_reactionwriteconfirm

Remove the acting user's or account integration's own reaction from a comment. Public aggregate counts change; no messages are sent.

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
reaction"like" | "celebrate" | "question"requiredReaction to add or remove from this comment.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

Remove recording password

capture.remove_share_passwordwriteconfirm

Remove the recording's password so anyone holding the current share URL can view its published content. Revokes existing viewer tickets, preserves the download policy and sends no messages. Only the creator or account managers can change protection.

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)requiredRecording UUID accessible in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.remove_share_password \
  -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 capture_remove_share_password at https://app.chirply.io/api/mcp, same bearer token, same input.

Remove from watch later

capture.remove_watch_laterwrite

Remove a member's recording bookmark without deleting its video. Does not publish or send anything; only the signed-in member or a userless trusted API manager with target_user_id can select the list.

Parameters

FieldTypeRequiredDescription
target_user_idstring (uuid)optionalOnly a trusted workspace API manager may select another current member when no signed-in user exists. Signed-in users always use their own list; paired devices cannot select a member.
project_idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

Restore draft from published

capture.restore_published_draftwriteconfirm

Replace saved draft title, description, guide steps, screenshots, transcript, captions and thumbnail with the currently published version. Discards saved draft edits; leaves source media, ownership, access, share links and expiration unchanged.

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)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.restore_published_draft \
  -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 capture_restore_published_draft at https://app.chirply.io/api/mcp, same bearer token, same input.

Restore version

capture.restore_versionwriteconfirm

Restore saved guide, transcript, captions and descriptive metadata, first saving the current version. Existing public viewers see the restored content. Sharing tokens, expiration, privacy, ownership and original video are never restored or changed.

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)requiredCapture recording identifier in this workspace.
version_idstring (uuid)requiredSaved metadata version UUID to restore.

Example

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

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

Revoke Capture browser

capture.revoke_devicewriteconfirmadmin only

Immediately revoke the selected browser token. Capture-only revocation affects Capture; choosing browser_agent disables Capture and all Browser Agent tasks using that connection. Its next request fails authentication. Saved recordings remain available; no notifications are sent.

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)requiredBrowser connection UUID in this account.
kind"capture" | "browser_agent"optionalConnection kind from the device list. Browser Agent revocation also disables its browser tasks; Capture revocation affects only Capture. Default: "capture"

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.revoke_device \
  -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 capture_revoke_device at https://app.chirply.io/api/mcp, same bearer token, same input.

Revoke share link

capture.revoke_sharewriteconfirm

Disable a recording's current unlisted link immediately. Anyone who already downloaded the video retains their copy. No messages are sent.

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)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.revoke_share \
  -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 capture_revoke_share at https://app.chirply.io/api/mcp, same bearer token, same input.

Save screenshot edit

capture.save_image_editwriteconfirm

Save edited screenshot pixels as a new immutable private image revision. Preserves original bytes and the currently published image until Publish changes. Consumes storage; stale edits cannot overwrite newer changes. No messages are sent.

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
revision_idstring (uuid)requiredNew immutable image revision UUID. Reuse with identical bytes for a retry.
expected_updated_atstring (date-time)requiredSaved project timestamp reviewed before editing; stale edits cannot overwrite newer content.
idstring (uuid)requiredScreenshot project UUID created with mode screenshot.
mime_type"image/png" | "image/jpeg" | "image/webp"requiredRaster screenshot MIME type; SVG and animated formats are not accepted.
base64stringrequiredBase64 encoded PNG, JPEG or WebP screenshot bytes, up to16MiB decoded. No data URL prefix.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.save_image_edit \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "revision_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "expected_updated_at": "2026-09-17T15:00:00Z",
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "mime_type": "image/png",
    "base64": "example"
  }'
Test with your API key

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

Save guide

capture.save_stepswriteconfirm

Replace the recording's ordered written guide, removing omitted steps. An existing shared guide immediately shows the saved version. No messages are sent.

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
stepsobject[]requiredComplete ordered guide; replacing this list also removes omitted steps.
steps[].idstring (uuid)optionalStable step identifier; generated when omitted.
steps[].titlestringrequiredInstruction shown as the step heading.
steps[].descriptionstringoptionalEditable written instruction, stored as plain text. Default: ""
steps[].timestamp_msintegeroptionalPosition in the recording in milliseconds. Default: 0
steps[].urlstring (uri)optionalOptional captured web page address; query and fragment are removed.
steps[].image_urlstringoptionalPrivate Capture step image URL returned by the screenshot upload endpoint.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

Save version

capture.save_versionwrite

Save an immutable snapshot of the recording's current guide, captions, transcript and descriptive metadata. Original video, ownership and sharing credentials are not copied or changed. No messages are sent.

Parameters

FieldTypeRequiredDescription
labelstringoptionalLabel for this immutable metadata snapshot. Default: "Saved version"
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.save_version \
  -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 capture_save_version at https://app.chirply.io/api/mcp, same bearer token, same input.

Save to watch later

capture.save_watch_laterwrite

Bookmark an accessible recording for a current account member. Does not publish content or send messages; a userless trusted API manager must specify target_user_id.

Parameters

FieldTypeRequiredDescription
target_user_idstring (uuid)optionalOnly a trusted workspace API manager may select another current member when no signed-in user exists. Signed-in users always use their own list; paired devices cannot select a member.
project_idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

Save playlist order

capture.set_collection_itemswriteconfirm

Replace the ordered recording list in a collection, removing omitted entries without deleting source recordings. Account viewers see changes immediately; no messages are sent.

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
project_idsarray of (string (uuid))requiredComplete ordered playlist, up to 200 unique accessible recording IDs. Omitted recordings are removed from the playlist, not deleted.
revisionintegerrequiredCurrent collection revision; rejects concurrent replacement.
idstring (uuid)requiredStable collection UUID in this workspace.

Example

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

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

Save default share domain

capture.set_default_share_domainwriteconfirmadmin only

Save the default hostname used when copying video and screenshot share links for this account. Existing tokens and privacy remain unchanged, and old links remain valid. Only account managers can change this; no DNS changes, messages or charges occur.

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
domainstring (or null)requiredVerified connected Capture or app hostname. The platform hostname is accepted only for an account with no app domain of its own; an account on its own app domain is refused it. Null uses the workspace default for a recording, or automatic domain selection for the workspace. No DNS changes are made.

Example

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

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

Save download policy

capture.set_download_policywriteconfirm

Change whether public viewers can use the recording's original video download control and endpoint. May rotate the share URL and revokes access tickets. Playback remains available to authorized viewers, who can still capture delivered content; this is not DRM. Sends no messages and incurs no provider charge.

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)requiredRecording UUID accessible in this account.
allow_downloadbooleanrequiredAllow the provided public video download route and control. False cannot prevent a viewer from capturing playable media.

Example

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

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

Save recording notifications

capture.set_notification_preferenceswriteconfirm

Set comment visibility and owner alerts for new viewers and comments. Enabling email or push allows future real notifications and email provider charges; existing device permission remains required. Only the creator or signed-in account managers may change these preferences.

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
comments_enabledbooleanrequiredAllow viewers to read and submit comments.
moderate_commentsbooleanrequiredHold guest comments for approval before public display.
notify_viewsbooleanrequiredNotify the recording owner once per viewer session after meaningful watching.
notify_commentsbooleanrequiredNotify the owner when someone else comments.
in_appbooleanrequiredKeep owner alerts in the in-app Capture activity inbox.
emailbooleanrequiredEmail owner alerts through the workspace sender; provider fees may apply.
pushbooleanrequiredSend owner browser push alerts on devices opted into message notifications.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.set_notification_preferences \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "comments_enabled": true,
    "moderate_comments": true,
    "notify_views": true,
    "notify_comments": true,
    "in_app": true,
    "email": true,
    "push": true,
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

Save recording share domain

capture.set_share_domainwriteconfirm

Save a hostname override for one video or screenshot, or null to use the account default. Only its creator or account managers can change it. Preserves the share token, password and old links; does not publish private content, change DNS, send messages or incur charges.

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
domainstring (or null)requiredVerified connected Capture or app hostname. The platform hostname is accepted only for an account with no app domain of its own; an account on its own app domain is refused it. Null uses the workspace default for a recording, or automatic domain selection for the workspace. No DNS changes are made.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

Set recording password

capture.set_share_passwordwriteconfirm

Set or replace a recording share password, stored by Capture only as a bcrypt hash. Revokes current viewer tickets and may rotate the share URL; copy the returned current URL. API/MCP clients must protect their own request logs. No messages are sent or provider charges incurred. Use the owner Share security form instead of entering secrets in Copilot chat.

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)requiredRecording UUID accessible in this account.
passwordstringrequiredWrite-only share password: at least 12 characters, at most 72 UTF-8 bytes. Stored only as a bcrypt hash by Capture; never returned. Avoid placing passwords in chat transcripts or client logs.

Example

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

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

Set recording thumbnail

capture.set_thumbnailwriteconfirm

Store a new immutable JPEG thumbnail for the recording. Existing video share viewers see this thumbnail; guide-only shares do not expose it. This consumes storage and sends no messages.

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)requiredCapture recording identifier in this workspace.
base64stringrequiredBase64 JPEG thumbnail, at most 2 MiB decoded.

Example

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

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

Create share link

capture.sharewriteconfirm

Publish the selected video, written guide or both through an unlisted link accessible to anyone holding it. This exposes recording content outside the account; it does not email the link.

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
audience"video" | "guide" | "both"requiredWhich content anyone holding the unlisted link can access. For screenshots, video means the primary still image.
expires_atstring (date-time) (or null)optionalOptional expiration timestamp for this share link. Null creates a link with no expiration.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

Split guide step

capture.split_stepwriteconfirm

Split a guide instruction at a text offset into two adjacent steps. The original keeps its screenshot; the new step contains text only. Saves immediately to the guide and existing share links, without sending messages.

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)requiredCapture recording identifier in this workspace.
indexintegerrequiredZero-based index of the step to split.
offsetintegerrequiredCharacter offset within the instruction where the second step begins.

Example

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

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

Start recording upload

capture.start_uploadwriteconfirm

Start or resume an 8 MiB multipart video upload into private account storage, up to 10 GiB. Returns the upload session and completed parts; uploading consumes existing storage capacity and sends no messages.

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
mime_type"video/webm" | "video/mp4" | "video/quicktime"requiredVideo file MIME type.
size_bytesintegerrequiredExact total bytes, up to 10 GiB.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

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

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

View Capture storage

capture.storageread

Read stored recording bytes, in-flight reserved bytes and the account's configured Capture storage cap. A null cap means none is configured, not an unlimited plan entitlement. No messages are sent.

Parameters

No parameters — POST an empty body.

Example

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

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

Refresh text AI settings

capture.text_ai_preflightread

Read the account's connected text model, current catalog per-token prices and selection limits for Capture translation and rewriting. No recording content is sent to AI, no generation runs and no provider charge is incurred.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredAccessible recording UUID. Save its guide/caption changes before selecting text.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.text_ai_preflight \
  -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 capture_text_ai_preflight at https://app.chirply.io/api/mcp, same bearer token, same input.

Generate transcript and captions

capture.transcribewriteconfirm

Send the private recording to the selected account-connected speech provider and replace its saved transcript and captions with provider-timed results. ElevenLabs uses scribe_v2 for videos under 2 GiB; OpenRouter uses the selected Whisper model for WebM/MP4 files up to 16 MiB. Usage is billed to the connected provider account. No automatic retries, messages or publishing; failures may still incur provider charges.

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
provider"elevenlabs" | "openrouter"optionalSpeech provider billed to the workspace connected account. Default preserves ElevenLabs. Default: "elevenlabs"
model"openai/whisper-1" | "openai/whisper-large-v3" | "openai/whisper-large-v3-turbo"optionalOpenRouter speech model; defaults to openai/whisper-1. Not used with ElevenLabs scribe_v2.
languagestringoptionalOptional ISO-639-1 spoken language code; omitted lets the provider detect it.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.transcribe \
  -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 capture_transcribe at https://app.chirply.io/api/mcp, same bearer token, same input.

Refresh transcription providers

capture.transcription_optionsread

Read connected speech providers, available Capture transcription models and file limits for this recording. Does not send recording data to a provider or incur generation charges.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.transcription_options \
  -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 capture_transcription_options at https://app.chirply.io/api/mcp, same bearer token, same input.

Translate selected content

capture.translate_selected_contentwriteconfirm

Send explicitly selected saved guide and caption text to the connected OpenRouter model for translation. The provider bills the account; reviewed per-million price ceilings and an 8000-token output limit apply, not a guaranteed final invoice cap. Returns a draft only, preserving IDs, screenshots and timing. Reuse the same request UUID to check its receipt; failed or uncertain requests never retry automatically.

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
request_idstring (uuid)requiredUnique request UUID. Retry the identical request to retrieve its result without sending another paid generation.
expected_updated_atstring (date-time)requiredSaved recording updated_at reviewed before choosing content. Changed source rejects new generation.
modelstringrequiredExact connected workspace model returned by preflight.
operation"translate"requiredThis operation's fixed text transformation mode.
locale"en" | "es" | "fr" | "de" | "pt-BR" | "it" | … 10 morerequiredTarget language locale from the supported locale list.
step_idsarray of (string (uuid))requiredSelected guide steps only, at most 20. Their IDs, screenshots, URLs and timestamps remain unchanged.
caption_indicesinteger[]requiredSelected saved caption blocks to translate, at most 100. Regeneration requires an empty array.
instructionsstringoptionalOptional rewrite direction included with selected text sent to the provider; never treated as factual evidence. Default: ""
max_prompt_per_millionnumberrequiredMaximum provider prompt price in USD per million tokens, explicitly reviewed before sending.
max_completion_per_millionnumberrequiredMaximum provider completion price in USD per million tokens. Output is capped at 8000 tokens.
confirm_provider_transfertruerequiredConfirms that selected saved text and rewrite instructions may be sent to the workspace's OpenRouter model, billed to its connected account.
idstring (uuid)requiredAccessible recording UUID. Save its guide/caption changes before selecting text.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.translate_selected_content \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "expected_updated_at": "2026-09-17T15:00:00Z",
    "model": "example",
    "operation": "translate",
    "locale": "en",
    "step_ids": [
      "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
    ],
    "caption_indices": [
      1
    ],
    "max_prompt_per_million": 1,
    "max_completion_per_million": 1,
    "confirm_provider_transfer": true,
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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

Unfollow discussion

capture.unfollow_threadwrite

Stop future reply notifications for the acting account member, or an explicit target member managed by an API credential. Messages already delivered cannot be recalled; no new messages are sent.

Parameters

FieldTypeRequiredDescription
user_idstring (uuid)optionalRequired target workspace member for userless manager API credentials; signed-in callers can only subscribe themselves.
idstring (uuid)requiredCapture recording identifier in this workspace.
comment_idstring (uuid)requiredComment UUID within this recording.

Example

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

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

Save recording details

capture.updatewriteconfirm

Change a recording's title, description, transcript or archive state. Existing share links show these changes immediately; this does not send messages.

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
video_overlaysobject[]optionalComplete timed overlay list; empty removes all custom annotations and caption layouts.
captions_enabledbooleanoptionalWhether viewers see captions; does not delete transcript or timed cues.
access"workspace" | "personal"optionalWorkspace recordings are available to its members; personal recordings are visible only to their identified creator, unless explicitly shared by link.
folderstring (or null)optionalOptional folder label in the recording library; null removes the folder.
tagsstring[]optionalUp to 20 labels for organizing recordings.
captionsobject[]optionalComplete set of user-edited timed captions.
captions[].start_msintegerrequiredCaption start in milliseconds.
captions[].end_msintegerrequiredCaption end in milliseconds.
captions[].textstringrequiredCaption text shown in the player.
titlestringoptionalUpdated recording title.
descriptionstringoptionalUpdated recording description.
transcriptstringoptionalUser-provided or corrected transcript; never inferred from unseen media.
archivedbooleanoptionalWhether to move this recording out of the active library.
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.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 capture_update at https://app.chirply.io/api/mcp, same bearer token, same input.

Save collection details

capture.update_collectionwriteconfirm

Change a video collection's title, description or account visibility. Existing account links reflect the change immediately; no messages are sent.

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
titlestringoptionalCollection title.
descriptionstringoptionalReplace the collection description; omit to preserve it.
access"personal" | "workspace"optionalChange collection visibility; omit to preserve current access.
revisionintegerrequiredCurrent revision from collection read; stale edits are rejected.
idstring (uuid)requiredStable collection UUID in this workspace.

Example

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

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

Upload screenshot

capture.upload_imagewriteconfirm

Store a private standalone raster screenshot in a Capture project created with mode screenshot. Validates image format and dimensions and consumes account storage. Does not publish or send notifications; original bytes are immutable.

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)requiredScreenshot project UUID created with mode screenshot.
mime_type"image/png" | "image/jpeg" | "image/webp"requiredRaster screenshot MIME type; SVG and animated formats are not accepted.
base64stringrequiredBase64 encoded PNG, JPEG or WebP screenshot bytes, up to16MiB decoded. No data URL prefix.

Example

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

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

Upload recording part

capture.upload_partwriteconfirm

Upload one base64-encoded video part to an existing private recording upload. Parts are 8 MiB except the last; this consumes account storage without publishing or sending messages.

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)requiredCapture recording identifier in this workspace.
part_numberintegerrequiredOne-based upload part number.
base64stringrequiredBase64-encoded bytes of this part, at most 8 MiB decoded.

Example

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

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

Upload guide screenshot

capture.upload_screenshotwriteconfirm

Upload a JPEG image for one opted-in walkthrough step. The screenshot stays private until its guide is shared, and may contain screen content; no messages are sent.

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)requiredCapture recording identifier in this workspace.
step_idstring (uuid)requiredStable guide step UUID.
base64stringrequiredBase64 JPEG screenshot, no more than 2 MiB decoded.

Example

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

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

Check Capture domain

capture.verify_domainwriteadmin only

Check DNS and TLS readiness for a Capture-only hostname and persist its current status. Does not change DNS records, send messages or incur charges.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredConnected Capture domain UUID returned by the domain list.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.verify_domain \
  -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 capture_verify_domain at https://app.chirply.io/api/mcp, same bearer token, same input.

View video publishing destinations

capture.video_destinationsreadadmin only

List connected Facebook profiles, Pages and YouTube channels available for publishing finished Capture videos. Returns names and identifiers without provider credentials.

Parameters

No parameters — POST an empty body.

Example

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

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

Resume video upload

capture.video_publication_resumewriteconfirmadmin only

Resume a failed video upload using its saved provider session or receipt. This continues the previously approved external publication. Uncertain Facebook submissions require checking Facebook before creating another upload.

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)requiredCapture broadcast or destination UUID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.video_publication_resume \
  -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 capture_video_publication_resume at https://app.chirply.io/api/mcp, same bearer token, same input.

Refresh video publications

capture.video_publicationsreadadmin only

Read durable upload progress, platform processing status, errors and published video links for one accessible recording. Does not create another upload.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredRecording UUID whose publication receipts to read.

Example

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

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

Publish video

capture.video_publishwriteconfirmadmin only

Queue the actual saved video for upload to a connected Facebook profile, Page or YouTube channel with the selected visibility. Public uploads expose video outside the account. Facebook WebM preparation creates a 720p MP4 for videos up to one hour, including saved captions/annotations and reserving up to 512 MiB of recording storage. Provider limits and YouTube audit restrictions apply; stable request IDs prevent duplicate submissions.

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
request_idstring (uuid)requiredStable publication request UUID. Reuse after a timeout; a new UUID creates another public upload.
project_idstring (uuid)requiredReady video recording UUID. Access is checked before publishing.
platform"facebook" | "facebook_profile" | "youtube"requiredConnected Facebook Page, personal Facebook profile or YouTube channel. Meta app video-publishing access is required for profile uploads.
destination_idstringrequiredConnected Facebook Page ID, Facebook profile connection UUID or YouTube connection UUID from publishing destinations.
titlestringrequiredVideo title shown on the destination.
descriptionstringoptionalVideo description shown on the destination. Default: ""
privacy"private" | "friends" | "unlisted" | "public"requiredYouTube: private, unlisted or public. Facebook profiles: private, friends or public. Facebook Pages require public. Provider app-review restrictions apply.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.video_publish \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "platform": "facebook",
    "destination_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "title": "Example",
    "privacy": "private"
  }'
Test with your API key

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

Review screenshot guide provider

capture.visual_guide_preflightread

Read the connected vision model, image support, current published token rates and screenshot limits before drafting a guide. Does not send screenshots or charge for generation.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredCapture recording identifier in this workspace.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.visual_guide_preflight \
  -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 capture_visual_guide_preflight at https://app.chirply.io/api/mcp, same bearer token, same input.

Connect YouTube

capture.youtube_connectreadadmin only

Open the browser consent flow for connecting a YouTube channel. A person must sign in to Google and approve video access; this capability itself stores no tokens and publishes no video.

Parameters

No parameters — POST an empty body.

Example

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

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

Disconnect YouTube channel

capture.youtube_disconnectwriteconfirmadmin only

Delete this account’s stored YouTube refresh token. Future publishing to this connection stops; videos already uploaded to YouTube remain available there.

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)requiredCapture broadcast or destination UUID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/capture.youtube_disconnect \
  -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 capture_youtube_disconnect 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=capture — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.