← All action domains

Reputation

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

Cancel scheduled post

google_business.cancel_postwriteconfirmadmin only

Delete a Google post whose future publish time has not arrived. This cancels real public publishing. Requires the agency's own approved Google project for machine callers.

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)requiredRecord ID in the active account.

Example

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

Connect Google

google_business.connection_urlreadadmin only

Return the signed-in browser connection URL. A manager must personally sign in to Google and grant Business Profile access; OAuth credentials are never returned.

Parameters

No parameters — POST an empty body.

Example

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

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

Disconnect Google

google_business.disconnectwriteconfirmadmin only

Disconnect Google Business Profile, remove its locally cached GBP reviews, reply drafts and local post history, and stop sync/automatic replies. Google keeps posts already scheduled with Google; cancel those first if desired. Other Google integrations remain connected.

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)requiredRecord ID in the active account.

Example

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

Choose a profile

google_business.discoverreadadmin only

List all Google business profiles managed by a connected Google account. Programmatic callers require the agency's own approved Google API project.

Parameters

FieldTypeRequiredDescription
connectionIdstring (uuid)requiredRecord ID in the active account.

Example

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

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

Google Business Profile

google_business.listread

Read safe connection status, linked profiles, sync errors, automatic-reply settings and the last 50 Chirply post receipts. Does not expose credentials or Google review content.

Parameters

No parameters — POST an empty body.

Example

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

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

Publish or schedule post

google_business.postwriteconfirmadmin only

Create a real public Google Business Profile update now or schedule it with Google for a future time. Supports text, a public image and a Learn more link. Ambiguous failures are recorded for manual reconciliation and never automatically retried. Requires the agency's own approved Google project for machine callers.

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
linkIdstring (uuid)requiredConnected business profile link ID.
summarystringrequiredPublic text for a standard Google Business Profile update.
imageUrlstring (uri)optionalOptional publicly accessible HTTPS image URL for Google to download.
actionUrlstring (uri)optionalOptional HTTPS destination of the Learn more button.
scheduledAtstring (date-time)optionalOptional future publish time including timezone offset; omit to publish now.

Example

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

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

Publish reply on Google

google_business.replywriteconfirmadmin only

Immediately publish the supplied text as a real public owner reply. Refuses to replace an existing Google reply. Requires the agency's own approved Google project for machine callers.

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
reviewIdstring (uuid)requiredRecord ID in the active account.
textstringrequiredExact text to post publicly on Google.

Example

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

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

Save review settings

google_business.settingswriteconfirmadmin only

Choose desktop review notifications and eligible ratings for future automatic replies. Enabling replies authorizes real public Google owner replies and AI charges on the account's own OpenRouter key; existing reviews/replies are preserved. consent=true is required to enable replies.

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
linkIdstring (uuid)requiredConnected business profile link ID.
notifybooleanrequiredNotify account members' registered desktop browsers about newly created reviews.
ratingsinteger[]requiredRatings to automatically reply to; empty disables automatic replies.
instructionsstringoptionalInstructions for AI replies, grounded in this account's Knowledge Brain. Default: ""
consentbooleanoptionalExplicit authorization to publicly post AI replies to future eligible reviews and incur charges on this account's OpenRouter connection. Default: false

Example

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

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

Sync reviews

google_business.syncwriteconfirmadmin only

Fetch and save Google reviews immediately, up to five pages per call. Returns imported count and continuation; repeat while continuation is true to complete history. Automatically attaches the Google review destination. Manual sync does not publish replies; existing authorized automation remains on its background schedule. Requires the agency's own approved project for machine callers.

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)requiredRecord ID in the active account.

Example

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

Attach review site

reputation.add_destinationwrite

Attach a public review destination to a reputation location. It becomes an optional choice shown to every customer after private feedback, regardless of rating; this sends nothing and costs nothing.

Parameters

FieldTypeRequiredDescription
location_idstring (uuid)requiredLocation receiving this review destination.
provider"google" | "facebook" | "yelp" | "trustpilot" | "bbb" | "tripadvisor" | … 1 morerequiredPublic review platform.
labelstringrequiredCustomer-facing button label.
review_urlstring (uri)requiredDirect HTTPS URL where customers can leave a review.
positionintegeroptionalDisplay order, lowest first. Default: 0

Example

curl -X POST https://app.chirply.io/api/v1/actions/reputation.add_destination \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "location_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "provider": "google",
    "label": "example",
    "review_url": "https://example.com"
  }'
Test with your API key

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

Add review

reputation.add_reviewwrite

Record a review manually for monitoring and response preparation. This does not publish anything or claim the review exists on Google.

Parameters

FieldTypeRequiredDescription
location_idstring (uuid)requiredReputation location receiving the review.
provider"google" | "facebook" | "manual" | "other"optionalWhere the review originated. Default: "manual"
reviewer_namestringoptionalPublic reviewer name or Anonymous. Default: "Anonymous"
ratingintegerrequiredStar rating from 1 through 5.
bodystring (or null)optionalReview text, or null when the review has no written comment.
review_urlstring (uri) (or null)optionalPublic source URL for the review, or null.
reviewed_atstring (date-time)optionalWhen the customer posted the review; defaults to now.

Example

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

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

Add location

reputation.create_locationwrite

Add a private business location for reputation tracking. This does not create or modify a Google Business Profile and costs nothing.

Parameters

FieldTypeRequiredDescription
namestringrequiredLocation name shown in the app.
addressstring (or null)optionalStreet address or human-readable service area.
google_review_urlstring (uri) (or null)optionalDirect public Google review or Maps URL, or null until available.

Example

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

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

Create review link

reputation.create_requestwrite

Create a private trackable review-request link for one location. This does not email or text anyone and costs nothing; use reputation.send_request to actually deliver one by SMS or email.

Parameters

FieldTypeRequiredDescription
location_idstring (uuid)requiredLocation whose public review destination the link opens.
contact_idstring (uuid) (or null)optionalOptional CRM contact receiving the link.
recipient_namestring (or null)optionalOptional customer name for internal identification and greeting.

Example

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

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

Create review widget

reputation.create_widgetwrite

Create an embeddable public widget that shows one location's best reviews (star display, newest first) on any website via a one-line script tag. Only reviews at or above the star threshold are shown — the default is 4 stars and up. Creating a widget costs nothing and publishes nothing until the tenant pastes the returned snippet onto their site.

Parameters

FieldTypeRequiredDescription
location_idstring (uuid)requiredThe location whose reviews the widget displays.
namestringrequiredInternal name for telling widgets apart, e.g. 'Homepage review wall'.
min_ratingintegeroptionalLowest star rating shown. 4 means only 4- and 5-star reviews appear. Default: 4
max_reviewsintegeroptionalMost reviews the widget renders. Default: 12
layout"grid" | "list"optionalgrid = responsive cards side by side; list = one review per row. Default: "grid"
accent_colorstring (or null)optionalHex color for the stars, e.g. '#f59e0b'. Null for the default amber.
show_datesbooleanoptionalShow each review's date. Default: true
show_emptybooleanoptionalAlso show reviews that have a star rating but no written text. Default: false

Example

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

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

Delete review widget

reputation.delete_widgetwriteconfirm

Permanently delete a review widget. Every copy of its embed snippet on the tenant's websites immediately renders nothing, and the widget key cannot be restored — a replacement widget gets a new key that has to be re-pasted onto the site. The reviews themselves are not touched.

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

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe widget to delete.

Example

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

Draft a review reply

reputation.draft_replywrite

Write an owner's reply to one review with AI, grounded on the chosen slice of the account's Knowledge Brain, and save it as a private response draft on the review. Runs on the organization's own OpenRouter key (a small AI charge billed to their OpenRouter account). This action saves a draft; publish it separately through a connected Google Business Profile or copy it to another review site.

Parameters

FieldTypeRequiredDescription
review_idstring (uuid)requiredThe review to draft a reply for.
instructionsstring (or null)optionalOptional steering for the writer, e.g. 'mention our refund policy' or 'keep it under two sentences'. Null for the default tone.
brainobjectoptionalWhich part of the Knowledge Brain the writer may treat as fact. Omitted = the whole brain.
brain.mode"none" | "all" | "selection"requirednone = write from the brief alone; all = use the whole Knowledge Brain; selection = use only the topics and entries named below.
brain.topic_idsarray of (string (uuid))optionalKnowledge Brain topic ids to use in full, including every entry inside them. Ignored unless mode is 'selection'. Get ids from brain.list_topics. Default: []
brain.item_idsarray of (string (uuid))optionalIndividual knowledge-entry ids to use, for topics not taken in full. Combines with topic_ids. Ignored unless mode is 'selection'. Get ids from brain.list_knowledge. Default: []
savebooleanoptionalSave the result onto the review as a response draft (response_status 'draft'). False returns the text without saving. Default: true

Example

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

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

Find your business on Google

reputation.find_google_placewriteconfirm

Search Google Maps for a business so a reputation location can be connected to its Google listing, via the organization's OWN Outscraper account. THIS SPENDS THE TENANT'S MONEY: Outscraper bills per place returned (a few records per search, roughly $3 per 1,000 Maps records on standard tiers). Returns candidate listings with their Google place ids; pass the right one to reputation.set_location_place. Nothing is stored by this call.

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
querystringrequiredWhat you'd type into Google Maps to find the business — name plus city works best, e.g. 'Memphis Seoul, Brooklyn, NY'.
limitintegeroptionalCandidate listings to return (1–5). Each one is a billed Outscraper record. Default: 3

Example

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

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

List review sites

reputation.list_destinationsread

List the public Google, Facebook, Yelp, Trustpilot, BBB, Tripadvisor, and custom review destinations attached to account locations. This only reads data.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
location_idstring (uuid)optionalOnly review sites attached to this location.
activebooleanoptionalOnly active or inactive review destinations.

Example

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

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

List private feedback

reputation.list_feedbackread

List private first-party experience feedback, customer contact requests, and service-recovery status. This data is not published to review sites.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
location_idstring (uuid)optionalOnly feedback for this location.
recovery_status"none" | "needs_follow_up" | "in_progress" | "resolved"optionalOnly feedback with this recovery status.

Example

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

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

List reputation locations

reputation.list_locationsread

List the account's business locations and their Google review-link readiness. This only reads data and does not call Google.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
status"active" | "paused"optionalOnly locations with this status.

Example

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

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

List review requests

reputation.list_requestsread

List trackable review-request links and their lifecycle status. A completed request can mean private feedback was submitted; it does not prove a public review was posted or grant testimonial publication permission. This only reads data and sends no messages.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
location_idstring (uuid)optionalOnly requests for this location.
status"created" | "sent" | "opened" | "clicked" | "completed" | "canceled"optionalOnly requests with this lifecycle status.

Example

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

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

List reviews

reputation.list_reviewsread

List imported and manually recorded reviews with ratings and response workflow state. This only reads local records and does not call Google.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
location_idstring (uuid)optionalOnly reviews for this location.
provider"google" | "facebook" | "manual" | "other"optionalOnly reviews from this provider.
response_status"none" | "draft" | "published"optionalOnly reviews with this response status.

Example

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

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

List review widgets

reputation.list_widgetsread

List the account's embeddable review-display widgets with their keys, star-rating thresholds, and status. This only reads data; the key in each row is what the public embed snippet uses.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
location_idstring (uuid)optionalOnly widgets for this location.
status"published" | "disabled"optionalOnly widgets with this status.

Example

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

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

Save response draft

reputation.save_response_draftwrite

Save a private response draft for a review. Nothing is posted to Google or shown to the reviewer.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredReview id.
response_bodystringrequiredComplete proposed public response text.

Example

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

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

Send review request

reputation.send_requestwriteconfirm

Create a trackable review link for a contact and immediately deliver it as a real SMS or email — sent through and billed to the org's own Twilio or Mailgun/Resend account, and logged in the contact's conversation thread. Opted-out addresses are refused. The recipient can submit private feedback, after which configured public review options are available regardless of rating. Completing private feedback does not prove a public review was posted or grant testimonial publication permission.

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
location_idstring (uuid)requiredThe business location the review is about. Must be active.
contact_idstring (uuid)requiredThe CRM contact who receives the message. They need a phone number for SMS or an email address for email.
channel"sms" | "email"requiredHow to deliver the request: 'sms' texts the contact from one of the org's own Twilio numbers; 'email' sends through the org's own connected email identity.
messagestring (or null)optionalCustom message template. Supports {{merge}} tokens plus {{review_link}} and {{location_name}}; if the review link token is missing it is appended. Null or blank uses the plain-language default.
subjectstring (or null)optionalEmail subject template (email only). Null or blank uses the default.
from_number_idstring (uuid) (or null)optionalSMS only: send from this account phone number. Null auto-picks the oldest active number.
email_identity_idstring (uuid) (or null)optionalEmail only: send from this account email identity. Null follows the account's usual sender routing.

Example

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

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

Connect Google listing

reputation.set_location_placewrite

Attach a Google Maps place id to a reputation location so review syncs know which business to pull. Also fills the location's public 'write a review' link from the place id when one isn't set yet. This only updates local records — it costs nothing and does not modify anything on Google.

Parameters

FieldTypeRequiredDescription
location_idstring (uuid)requiredThe reputation location to connect.
place_idstringrequiredThe Google Maps place id (e.g. 'ChIJ…'), from reputation.find_google_place or Google's own tools.
place_namestringrequiredThe listing's display name on Google, stored so the app can echo which business was picked.
addressstring (or null)optionalThe listing's address, used to fill the location's address when it's blank. Null to skip.

Example

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

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

Sync Google reviews

reputation.sync_reviewswriteconfirm

Pull the newest Google reviews for one location (which must be connected to its Google listing first) and store them in the review inbox, via the organization's OWN Outscraper account. THIS SPENDS THE TENANT'S MONEY: Outscraper bills per review record returned, capped at 100 per sync (roughly $3 per 1,000 records on standard tiers). Re-syncing never duplicates — reviews are matched on Google's own review id and refreshed in place, and saved reply drafts are preserved. If Outscraper queues the job, this returns pending:true; call it again shortly to collect the finished results at no extra cost.

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
location_idstring (uuid)requiredThe reputation location whose Google reviews to pull. Must have a connected Google listing (reputation.set_location_place).
limitintegeroptionalNewest reviews to pull, 1–100. Each one is a billed Outscraper record. Default: 100

Example

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

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

Save location

reputation.update_locationwrite

Update a reputation location's name, address, Google review link, or active state. This only changes local records and does not modify Google.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredLocation id.
namestringoptionalUpdated location name.
addressstring (or null)optionalUpdated address or null to clear it.
google_review_urlstring (uri) (or null)optionalDirect Google review or Maps URL, or null to clear it.
status"active" | "paused"optionalWhether new review requests should use this location.

Example

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

Save recovery status

reputation.update_recoverywrite

Update the internal service-recovery status, assignee, and private notes for customer feedback. This does not contact the customer or publish anything.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredPrivate feedback id.
recovery_status"needs_follow_up" | "in_progress" | "resolved"requiredNew service-recovery state.
assigned_tostring (uuid) (or null)optionalAccount user responsible for follow-up, or null.
internal_notesstring (or null)optionalPrivate notes for the team, or null to clear.

Example

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

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

Save review widget

reputation.update_widgetwrite

Change a review widget's name, star threshold, layout, colors, or status. Setting status to 'disabled' makes every copy of the embed on the tenant's websites render nothing until re-published; the embed snippet itself never changes.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe widget to update.
namestringoptionalUpdated internal name.
min_ratingintegeroptionalLowest star rating shown.
max_reviewsintegeroptionalMost reviews the widget renders.
layout"grid" | "list"optionalgrid = responsive cards; list = one review per row.
accent_colorstring (or null)optionalHex star color, or null to return to the default amber.
show_datesbooleanoptionalShow each review's date.
show_emptybooleanoptionalAlso show reviews with no written text.
status"published" | "disabled"optionaldisabled hides the widget everywhere it's embedded; published shows it again.

Example

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