← All action domains

GoHighLevel

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

Browse GHL resources

gohighlevel.browsereadadmin only

Browse a guided, read-only HighLevel resource collection using the correct connected authority and account identifier. Supports contacts, pipelines, calendars, workflows, campaigns, conversations, products, forms, surveys, users, client accounts, and snapshots; changes nothing.

Parameters

FieldTypeRequiredDescription
resource"contacts" | "pipelines" | "calendars" | "workflows" | "campaigns" | "conversations" | … 6 morerequiredHighLevel resource collection to browse.
searchstringoptionalOptional contact search text; ignored by collections without text search.
limitintegeroptionalMaximum rows to return. Default: 25

Example

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

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

Cancel GHL migration job

gohighlevel.cancel_sync_jobwriteconfirmadmin only

Stop an active HighLevel migration/synchronization job before its next leased batch. Records already copied or updated remain in place; this does not roll back or delete anything in either system.

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
job_idstring (uuid)requiredQueued or running HighLevel migration job to stop.

Example

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

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

List GHL integration coverage

gohighlevel.catalogread

List the official HighLevel API families covered by the universal request action and every named HighLevel Marketplace webhook trigger currently shown in the automation builder. Changes nothing.

Parameters

No parameters — POST an empty body.

Example

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

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

Configure GHL synchronization

gohighlevel.configure_syncwriteconfirmadmin only

Choose whether supported records are copied once, synchronized inbound from HighLevel, synchronized outbound to HighLevel, or kept synchronized both ways, and which resources the inbound migration moves (contacts, pipelines & stages, opportunities → deals, booked appointments). Enabling outbound or two-way mode changes live HighLevel CRM records during future sync runs; only contacts sync outbound. This never sends messages or charges customers.

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"one_time" | "ghl_to_chirply" | "chirply_to_ghl" | "two_way"requiredOne-time copy, ongoing inbound from HighLevel (`ghl_to_chirply`), ongoing outbound to HighLevel (`chirply_to_ghl`), or two-way synchronization.
conflict_policy"ghl_wins" | "chirply_wins" | "newest" | "review"optionalHow two-way contact conflicts are resolved when both copies changed after their last successful synchronization. Default: "newest"
enabledbooleanoptionalContinuously run the selected non-one-time synchronization mode about every five minutes. Default: false
sync_deletionsbooleanoptionalReserved deletion policy. False safely archives/retains records; destructive cross-system deletion is not enabled in the current adapters. Default: false
resourcesarray of ("contacts" | "pipelines" | "opportunities" | "calendars" | "companies" | "conversations")optionalInbound adapters: contacts; pipelines and stages; opportunities mapped to deals; calendars for booked appointments; companies for business records (opt in, preserves local edits); conversations for an inert historical archive of mapped contacts (opt in, requires conversation/message read scopes). The archive preserves source bodies and attachment links, not a live inbox or guaranteed full email payloads. Contacts are always included. Only contacts sync outbound. Calendar availability/event types and executable workflows are not converted. Default: ["contacts","pipelines","opportunities","calendars"]

Example

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

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

Check GHL connections

gohighlevel.connection_statusreadadmin only

Check the connected HighLevel client account and agency grants, their granted scope counts, token expiry metadata, and a live read against each available authority. Returns no token and changes nothing.

Parameters

No parameters — POST an empty body.

Example

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

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

Import GHL contacts

gohighlevel.import_contactswriteconfirmadmin only

Copy up to 100 contacts from the connected GHL client account into this account. THIS CAN SEND REAL MESSAGES TO REAL PEOPLE: every contact it genuinely creates fires this account's 'contact created' automations, so if any workflow is set to greet new contacts, importing 100 people sends up to 100 real SMS or emails — billed to its own Twilio/Mailgun account — the moment the import lands. Check the account's automations before running it on a list you have not seen. Existing contacts here are matched by normalized phone or email and are never overwritten or re-triggered; by default, contacts previously deleted here stay deleted. New contacts retain their GHL ids, tags, and custom-field payload in source metadata. Nothing in GHL is 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
location_idstringoptionalGHL Location ID to import. Defaults to the saved Location ID.
limitintegeroptionalMaximum contacts to copy in this batch. Default: 100
start_after_idstringoptionalGHL contact id cursor from the previous page, for the next batch.
start_afternumberoptionalGHL timestamp cursor from the previous page, when supplied by GHL.
keep_deletedbooleanoptionalWhen true, skip GHL contacts that were previously deleted here, matched by GHL ID, email, or phone. Default: true

Example

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

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

Scan GHL account

gohighlevel.inventoryreadadmin only

Read a migration inventory from the connected GHL client account: contacts, pipelines, calendars, workflows, forms, surveys, and custom fields. Missing token scopes are reported per resource instead of aborting the scan. Changes nothing in either system.

Parameters

FieldTypeRequiredDescription
location_idstringoptionalGHL Location ID to scan. Defaults to the one saved on the connection.

Example

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

List GHL snapshots

gohighlevel.list_snapshotsreadadmin only

List snapshots owned or imported by the connected GHL agency. GHL's API exposes snapshot metadata, share links, and push status, but does not expose a downloadable snapshot payload; this read changes nothing.

Parameters

FieldTypeRequiredDescription
company_idstringoptionalGHL Company ID. Defaults to the Company ID saved on the connection.
skipintegeroptionalSnapshot rows to skip. Default: 0
limitintegeroptionalMaximum snapshot rows to return. Default: 50

Example

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

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

Get free GHL client account

gohighlevel.provision_subaccountwriteconfirmadmin only

Create a real GoHighLevel client account under the platform's own Agency Pro account and immediately attach encrypted location-level API access to this account. This consumes one of the platform's agency client account slots and creates persistent external CRM infrastructure, but sends no customer messages and charges the account nothing.

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
business_namestringoptionalBusiness name for the new GoHighLevel client account. Defaults to this account's name.

Example

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

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

Check free GHL client account

gohighlevel.provisioning_statusreadadmin only

Check whether the platform's own GoHighLevel agency can provide this account a free client account and whether one is already provisioning, linked, or failed. Returns no platform or tenant OAuth credentials and changes nothing.

Parameters

No parameters — POST an empty body.

Example

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

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

Run GHL read request

gohighlevel.readreadadmin only

Run any GET endpoint in the official GoHighLevel/LeadConnector API with this account's encrypted token. The request is pinned to services.leadconnectorhq.com; the token itself is never returned. HighLevel may expose sensitive CRM or agency data, limited by the token's own scopes.

Also answers to GHL API, HighLevel API, LeadConnector GET.

Parameters

FieldTypeRequiredDescription
pathstringrequiredOfficial GHL API path beginning with /, for example /contacts/search.
querymap of string → objectoptionalQuery-string values. Arrays become repeated parameters.
versionstringoptionalOptional Version header override, such as v3 or 2021-07-28.
authority"location" | "agency"optionalUse the client account token for CRM resources or the agency token for company-level endpoints. Default: "location"

Example

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

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

HighLevel history archive

gohighlevel.read_history_archivereadadmin only

Read locally archived HighLevel conversations and messages for this account. Returns twenty threads or a hundred messages per selected thread, with original IDs, dates, source status and attachment links. Imports cover mapped contacts only; partial threads are labeled. Original email HTML is displayed as text, attachment links can expire, and source-provided bodies may omit full email headers/content. This is an archive, not live inbox synchronization. Reading makes no provider calls, sends no messages and changes nothing. Owner/admin only.

Parameters

FieldTypeRequiredDescription
thread_idstring (uuid)optionalOptional local archived thread ID to inspect. Omit to page through threads.
offsetintegeroptionalZero-based thread offset (twenty per page), or message offset when thread_id is supplied (one hundred per page). Default: 0

Example

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

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

Retry GHL migration job

gohighlevel.retry_sync_jobwriteconfirmadmin only

Retry a failed or canceled HighLevel migration/synchronization job from its saved cursor and phase. The job is idempotent through permanent HighLevel-to-account record mappings, but it can create or update real contacts, pipelines, deals, and appointments here — or real contacts in HighLevel — according to the job's direction and resources.

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
job_idstring (uuid)requiredFailed or canceled HighLevel migration job to resume.

Example

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

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

Run a guided GHL action

gohighlevel.run_guided_actionwriteconfirmadmin only

Run one of the named HighLevel CRM or agency actions using guided fields instead of an endpoint path or JSON. Depending on the selected operation, this can send real messages, create or alter CRM and agency records, spend provider funds, or permanently delete data in HighLevel; the side effect happens immediately.

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
operationstringrequiredNamed action key. Available keys: create_contact, upsert_contact, update_contact, delete_contact, add_contact_tags, remove_contact_tags, add_note, create_task, complete_task, add_to_workflow, remove_from_workflow, add_to_campaign, remove_from_campaign, send_sms, send_email, send_whatsapp, internal_comment, create_opportunity, update_opportunity, delete_opportunity, create_appointment, update_appointment, delete_calendar_event, create_block_slot, create_location_tag, update_location_tag, delete_location_tag, create_subaccount, update_subaccount, delete_subaccount, create_user, update_user, delete_user, snapshot_share_link, create_product, update_product, delete_product, create_price.
valuesmap of string → objectrequiredValues for the guided fields shown for the selected action.

Example

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

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

Run GHL sync now

gohighlevel.run_sync_nowwriteconfirmadmin only

Queue and immediately advance the configured HighLevel synchronization. Depending on direction and configured resources, this creates or updates real contacts, pipelines, deals, and appointments in this account, or real contacts in HighLevel, or both. It sends no messages, charges nothing, and does not propagate deletions.

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/gohighlevel.run_sync_now \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

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

Start GHL migration

gohighlevel.start_migrationwriteconfirmadmin only

Start a durable, restartable HighLevel migration using the configured direction, conflict policy, and resource selection. Inbound mode creates or updates real contacts, pipelines & stages, deals (from opportunities), and booked appointments in this account — created deals and contacts can fire this account's own automations, which may send real messages if those automations are configured to. Outbound and two-way modes also create or update real HighLevel contacts. A background cron advances the job every few minutes, so it finishes even after the browser closes. The migration itself sends no customer messages and performs no cross-system deletions.

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"one_time" | "ghl_to_chirply" | "chirply_to_ghl" | "two_way"optionalOne-time copy, ongoing inbound from HighLevel (`ghl_to_chirply`), ongoing outbound to HighLevel (`chirply_to_ghl`), or two-way synchronization.

Example

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

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

View GHL migration and sync status

gohighlevel.sync_statusreadadmin only

Read the connected account's HighLevel migration mode, continuous-sync settings, mapped-record count, supported resource coverage, and ten most recent durable jobs — each with per-resource counts and a per-item report of every record that was skipped or degraded, with the reason. This returns no OAuth credentials and changes neither system.

Parameters

No parameters — POST an empty body.

Example

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

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

Check GHL webhook status

gohighlevel.webhook_statusreadadmin only

Read recent signed HighLevel webhook delivery status for this account, including received, processed, and failed totals. Returns no API token and changes nothing.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum recent webhook deliveries to return. Default: 20

Example

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

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

Run GHL write request

gohighlevel.writewriteconfirmadmin only

Run any POST, PUT, PATCH, or DELETE endpoint in the official GoHighLevel/LeadConnector API with this account's encrypted token. This can create client accounts, send real messages, charge money, change live CRM data, or delete data depending on the path and token scopes; HighLevel applies the real side effect immediately.

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

Also answers to GHL mutation, HighLevel API write, LeadConnector request.

Parameters

FieldTypeRequiredDescription
method"POST" | "PUT" | "PATCH" | "DELETE"requiredHTTP method required by the official GHL endpoint.
pathstringrequiredOfficial GHL API path beginning with /, for example /locations/.
querymap of string → objectoptionalQuery-string values. Arrays become repeated parameters.
bodyanyoptionalJSON request body documented by GHL. Omit it for endpoints with no body.
versionstringoptionalOptional Version header override, such as v3 or 2021-07-28.
authority"location" | "agency"optionalUse the client account token for CRM resources or the agency token for company-level endpoints. Default: "location"

Example

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

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