← All action domains

Directories

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

Increase acquisition limit

directories.add_acquisition_budgetwriteconfirmadmin only

Increase the hard Outscraper spend ceiling on an existing resumable acquisition campaign so it can continue through its still-uncovered cells without repeating completed searches.

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
campaign_idstring (uuid)requiredExisting acquisition campaign to continue.
add_centsintegerrequiredAdditional approved provider budget in cents.

Example

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

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

Connect domain

directories.connect_domainwriteconfirmadmin only

Connect and provision a custom hostname for one directory website through Cloudflare, including SSL setup. This changes live DNS routing and may replace a conflicting record when the account connected its Cloudflare account.

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
directory_idstring (uuid)requiredDirectory website the hostname should serve.
domainstringrequiredHostname the operator controls, such as directory.example.com.

Example

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

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

Create another directory

directories.createwriteadmin only

Create a new independently configured directory website in draft state. This prepares the site but does not publish it, run Outscraper, or spend money.

Parameters

FieldTypeRequiredDescription
namestringrequiredPublic directory name, such as Texas Med Spa Directory.
mode"geographic" | "niche" | "hybrid"requiredWhether the directory is organized by geography, niche, or both.
nichestring (or null)optionalThe market niche, such as med spas or jiu-jitsu academies.
geography_labelstring (or null)optionalThe market area, such as Houston, Texas or United States.
descriptionstringoptionalShort public description of who and what the directory covers. Default: ""
primary_colorstringoptionalSix-digit brand color in hexadecimal form. Default: "#2563eb"

Example

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

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

Plan data acquisition

directories.create_acquisition_campaignwriteadmin only

Create a budget-capped Outscraper acquisition plan for one directory. This records the strategy and search terms but does not submit paid searches or spend money.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory that will receive the acquired listings.
namestringrequiredHuman-readable campaign name, such as Houston core coverage — August.
budget_centsintegerrequiredHard maximum provider budget in cents; execution must stop before exceeding it.
strategy"maximize_unique" | "complete_geography" | "complete_category" | "broad_coverage"optionalHow uncovered search cells should be prioritized. Default: "maximize_unique"
search_termsstring[]requiredControlled search phrases to test across geographic cells.
northnumberrequiredNorthern latitude of the market boundary.
southnumberrequiredSouthern latitude of the market boundary.
eastnumberrequiredEastern longitude of the market boundary.
westnumberrequiredWestern longitude of the market boundary.
radius_metersintegeroptionalCoverage radius around each deterministic grid coordinate. Default: 5000
requested_limitintegeroptionalMaximum billable results requested per coordinate query; capped at 80 so each tracked purchase completes safely inside a server action. Default: 80

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.create_acquisition_campaign \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "directory_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "budget_cents": 100,
    "search_terms": [
      "example"
    ],
    "north": 1,
    "south": 1,
    "east": 1,
    "west": 1
  }'
Test with your API key

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

Add category

directories.create_categorywriteadmin only

Add a public browse category to one directory website. This changes that directory's taxonomy without affecting other directory instances.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory that owns the category.
namestringrequiredPublic category name.
descriptionstringoptionalOptional category introduction shown to visitors. Default: ""

Example

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

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

Add listing field

directories.create_fieldwriteadmin only

Add a structured niche-specific field to one directory, optionally exposing it as a public browse filter.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory that owns this field definition.
labelstringrequiredHuman-facing field label, such as Kids classes.
field_type"text" | "number" | "boolean" | "select" | "multi_select" | "url"requiredValue type used for validation and rendering.
optionsstring[]optionalAllowed values for select fields; leave empty for other field types. Default: []
filterablebooleanoptionalWhether visitors can filter listings using this field. Default: false
requiredbooleanoptionalWhether listing editors must supply a value. Default: false

Example

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

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

Create listing

directories.create_listingwriteconfirmadmin only

Create a directory listing and create or reuse its canonical company in the CRM. Publishing makes it immediately visible on an already-live directory website.

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
directory_idstring (uuid)requiredDirectory that will publish the listing.
namestringrequiredPublic business or entity name.
descriptionstringoptionalPublic listing description. Default: ""
phonestring (or null)optionalPublic phone number.
websitestring (uri) (or null)optionalPublic website URL.
addressstring (or null)optionalPublic formatted address or service area.
category_idstring (uuid) (or null)optionalOptional category in the same directory.
publishbooleanoptionalPublish immediately instead of saving a draft. Default: false
starts_onstring (or null)optionalOptional first day of a dated event or offer (YYYY-MM-DD, directory time zone).
ends_onstring (or null)optionalOptional last day; after it the listing leaves public results automatically.

Example

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

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

Create article

directories.create_postwriteconfirmadmin only

Create a CMS article for one directory. Publishing immediately makes the article publicly accessible and indexable on a live directory website.

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
directory_idstring (uuid)requiredDirectory website that owns the article.
titlestringrequiredPublic article title.
excerptstringoptionalSummary used in article cards and search descriptions. Default: ""
body_markdownstringrequiredFull article body in Markdown.
status"draft" | "scheduled" | "published"optionalWhether to save privately, schedule publication, or publish immediately. Default: "draft"
published_atstring (date-time) (or null)optionalRequired future publication timestamp for a scheduled article; otherwise null.
featured_image_urlstring (uri) (or null)optionalOptional public featured-image URL.
seo_titlestring (or null)optionalOptional search title override.
seo_descriptionstring (or null)optionalOptional search description override.

Example

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

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

Delete article

directories.delete_postwriteconfirmadmin only

Permanently delete one directory CMS article. The article and its public URL cannot be recovered after this action.

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)requiredDirectory CMS article to permanently delete.

Example

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

View directory

directories.getread

Return one directory website's configuration, publication state, paid-license state, branding, public address, and its public layout (homepage section order, listing card fields, listing page section order — see View layout for the options).

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredDirectory website to return.

Example

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

View acquisition coverage

directories.get_acquisition_statusread

Return budget, spend, completion, saturation, unique-result, and duplicate counts for one directory's tracked Outscraper campaigns without submitting any paid searches.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose acquisition ledger should be returned.

Example

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

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

View layout

directories.get_layoutread

Return how one directory website's public pages are arranged — which homepage sections show and in what order, which details a listing card shows (including chosen custom fields), and the order of sections on a listing's own page — together with every section and card field that can be chosen and the directory's custom fields that a card can show. Reads only; changes nothing.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredDirectory website whose layout should be returned.

Example

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

View listing

directories.get_listingread

Return one directory listing with its public details, niche-specific values, and visibility state.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredDirectory listing to return.

Example

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

View article

directories.get_postread

Return one directory CMS article with its Markdown body, publication schedule, image, and search metadata.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredDirectory CMS article to return.

Example

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

View directories

directories.listread

List every independently configured directory website owned by this account, including its publication and billing status.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum directory sites to return. Default: 50
offsetintegeroptionalDirectory sites to skip. Default: 0

Example

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

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

View categories

directories.list_categoriesread

List the public browse categories configured for one directory website.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose categories should be returned.

Example

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

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

View listing claims

directories.list_claimsread

List email-verified ownership claims submitted against listings in one directory so staff can review them without exposing unverified submissions.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose claims should be returned.
status"pending" | "approved" | "rejected"optionalOptional review-status filter.

Example

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

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

View reported corrections

directories.list_correctionsread

List visitor “Report incorrect details” notes filed against listings in one directory, newest first, with each one's status (open, resolved or dismissed), the listing it is about and the reporter's optional email.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose reports should be returned.
status"open" | "resolved" | "dismissed"optionalOptional status filter; omit for every status.

Example

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

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

View features

directories.list_featuresread

List the visitor-facing features of one directory website (listing claims, enquiries, report incorrect details, owner updates, dated listings, saved favourites) with what each does and whether it is switched on. Features never switched are on.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory website whose features to list.

Example

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

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

View listing fields

directories.list_fieldsread

List the niche-specific structured fields and public filter settings configured for one directory.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose field definitions should be returned.

Example

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

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

View directory leads

directories.list_leadsread

List visitor inquiries captured by one directory website, including their linked CRM contact when available.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose leads should be returned.
status"new" | "contacted" | "closed"optionalOptional lead-status filter.

Example

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

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

View listings

directories.list_listingsread

List business or entity listings in one directory, including draft, published, claimed, and archived records.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose listings should be returned.
status"draft" | "published" | "claimed" | "archived"optionalOptional visibility-state filter.
searchstringoptionalOptional name or description search.
limitintegeroptionalMaximum listings to return. Default: 50
offsetintegeroptionalListings to skip. Default: 0

Example

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

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

View owner updates

directories.list_owner_updatesread

List the listing updates verified owners have submitted for one directory — each one's proposed details and photos, what they replace, and whether it is pending, approved, rejected or superseded by a newer submission.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory whose owner updates should be returned.
status"pending" | "approved" | "rejected" | "superseded"optionalOptional status filter; pending is the review queue.

Example

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

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

View articles

directories.list_postsread

List draft, scheduled, and published CMS articles for one directory website.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory website whose CMS articles should be returned.
status"draft" | "scheduled" | "published"optionalOptional publication-state filter.

Example

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

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

Mark verified

directories.mark_listing_verifiedwriteadmin only

Set — or clear — the “Last verified” date visitors see on one directory listing. Pass a calendar day in the directory's time zone, omit it for right now, or pass null to clear. Changes the public listing immediately; sends nothing.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredDirectory listing to stamp.
verified_onstring (or null)optionalYYYY-MM-DD in the directory's time zone; omit for now; null clears the date.

Example

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

Save acquisition plan

directories.plan_acquisition_from_geographywriteconfirmadmin only

Resolve a plain-language market with one request to its connected Outscraper account, then create a budget-capped coordinate grid and permanent query ledger. The geography lookup may consume provider usage; this does not purchase any business records.

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
directory_idstring (uuid)requiredDirectory that will receive acquired listings.
namestringrequiredHuman-readable campaign name.
budget_centsintegerrequiredHard maximum business-record budget in cents.
strategy"maximize_unique" | "complete_geography" | "complete_category" | "broad_coverage"optionalHow uncovered cells should be prioritized. Default: "maximize_unique"
search_termsstring[]requiredControlled business search phrases to run in every planned cell.
geography_querystringrequiredPlain-language market for Outscraper to geocode, such as Houston, Texas.
coverage_radius_milesnumberoptionalDistance from the resolved market center that the initial grid should cover. Default: 25
cell_radius_metersintegeroptionalSpacing and nominal coverage radius of each deterministic grid cell. Default: 5000
requested_limitintegeroptionalMaximum billable Google Maps results for each later cell query. Default: 80

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.plan_acquisition_from_geography \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "directory_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "budget_cents": 100,
    "search_terms": [
      "example"
    ],
    "geography_query": "example"
  }'
Test with your API key

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

Publish

directories.publishwriteconfirmadmin only

Publish a paid directory website immediately, making its homepage, listings, categories, and published CMS articles available to the public and search engines.

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)requiredDirectory website to publish publicly now.

Example

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

Update report status

directories.resolve_correctionwriteadmin only

Mark a visitor's “Report incorrect details” note resolved or dismissed, or reopen it. Changes only the review inbox — it does not edit the listing (use Save listing or Mark verified for that) and emails no one.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredReport to update.
status"open" | "resolved" | "dismissed"requiredresolved = fixed, dismissed = not a real problem, open = back in the queue.
notestring (or null)optionalOptional internal note about how it was handled.

Example

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

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

Retry failed queries

directories.retry_failed_acquisition_querieswriteconfirmadmin only

Requeue every failed Outscraper query in one directory acquisition campaign and resume its worker. Retries can purchase real Google Maps records from the organization's Outscraper account, but the campaign's approved budget remains enforced.

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
directory_idstring (uuid)requiredDirectory website that owns the acquisition campaign.
campaign_idstring (uuid)requiredAcquisition campaign whose failed queries will be retried.

Example

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

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

Review claim

directories.review_claimwriteconfirmadmin only

Approve or reject a pending listing claim. Approval marks the listing claimed, creates or reuses the claimant as a CRM contact, and emails the claimant that they were approved — with a 30-day link to propose updates to their listing when owner updates are switched on — from this account's own verified sending address or its agency's, never the platform's. Rejection leaves the listing ownership unchanged and sends 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
claim_idstring (uuid)requiredPending claim to review.
decision"approved" | "rejected"requiredFinal review decision.

Example

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

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

Review owner update

directories.review_owner_updatewriteconfirmadmin only

Approve or reject a verified owner's proposed listing update. Approval publishes the proposed details and photos on the live listing immediately and stamps it “Last verified” today; rejection leaves the listing unchanged and removes any photos the update uploaded. Either way the owner is emailed the outcome (with the optional note) from this account's own verified sending address, or its agency's — never the platform's.

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)requiredPending owner update to review.
decision"approved" | "rejected"requiredFinal review decision.
notestring (or null)optionalOptional note emailed to the owner, e.g. why it was rejected.

Example

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

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

Run next uncovered cell

directories.run_acquisition_querywriteconfirmadmin only

Submit one planned Google Maps query to Outscraper for a tracked geographic cell. This returns real billable records, publishes net-new directory listings, records duplicates and cost, and refuses to exceed the campaign's approved budget.

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
query_idstring (uuid)requiredExact planned acquisition query to purchase and execute.

Example

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

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

Switch feature on or off

directories.set_featurewriteconfirmadmin only

Switch one visitor-facing feature on or off for one directory website. Takes effect on the live public site immediately: switching off listing claims or enquiries removes those forms from every listing page and makes their submissions refuse; switching off dated listings stops the date search and stops ended listings from being hidden. Existing claims, enquiries and reports already received are kept. Sends nothing and costs 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
directory_idstring (uuid)requiredDirectory website to change.
feature"claims" | "leads" | "report_corrections" | "owner_updates" | "listing_dates" | "saved_listings"requiredFeature to switch: claims (listing claims), leads (enquiries), report_corrections (report incorrect details), owner_updates (owner-submitted updates), listing_dates (dated events and offers), saved_listings (visitor favourites).
enabledbooleanrequiredTrue switches the feature on; false switches it off.

Example

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

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

Set time zone

directories.set_timezonewriteadmin only

Set the time zone one directory website uses for dated listings and the “Last verified” date. It decides which day counts as today, so it decides when an event or offer has ended and drops out of public results. Changes what visitors see immediately; sends nothing and costs nothing.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory website to change.
timezonestringrequiredIANA time zone name, such as America/Los_Angeles or Europe/London.

Example

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

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

Submit claim

directories.submit_claimwriteconfirm

Submit a public ownership claim for one published directory listing and email a real 24-hour verification link to the claimant. The claim reaches the directory review queue only after that email is verified. The verification is sent from THIS account's own verified sending address (or its parent agency's), billed to its own Mailgun/Resend account — never from the platform's sender, because the claimant is the account's own user. If the account has no verified sending address, nothing is written and the call fails: connect one under Settings → Email routing first (see the "directories" feature in readiness.status).

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
directory_idstring (uuid)requiredDirectory website containing the listing.
listing_idstring (uuid)requiredPublished listing being claimed.
claimant_namestringrequiredFull name of the claimant.
claimant_emailstring (email)requiredEmail address that will receive the verification link.
claimant_phonestring (or null)requiredOptional claimant phone number.
relationship"owner" | "manager" | "authorized_representative"requiredClaimant's relationship to the listed business.

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.submit_claim \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "directory_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "listing_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "claimant_name": "Example",
    "claimant_email": "ada@example.com",
    "claimant_phone": "+15551234567",
    "relationship": "owner"
  }'
Test with your API key

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

Send report

directories.submit_correctionwrite

File a visitor's “Report incorrect details” note against one published directory listing. It goes to the directory administrator's review inbox — not to the listed business and not into the CRM as a lead — and notifies the account's staff by push. Stores the note and an optional reply email; sends no email. Refused when the directory has the Report incorrect details feature switched off.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory website containing the listing.
listing_idstring (uuid)requiredPublished listing the report is about.
notestringrequiredWhat is incorrect or out of date on the listing.
emailstring (email) (or null)requiredReporter's email for a reply, or null to stay anonymous.

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.submit_correction \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "directory_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "listing_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "note": "example",
    "email": "ada@example.com"
  }'
Test with your API key

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

Send request

directories.submit_leadwrite

Create a real inbound CRM contact and lead from a visitor request on one published directory listing. This stores the visitor's submitted contact details and message but sends no outreach.

Parameters

FieldTypeRequiredDescription
directory_idstring (uuid)requiredDirectory website containing the listing.
listing_idstring (uuid)requiredPublished listing that should receive the request.
namestringrequiredVisitor's full name.
emailstring (email) (or null)requiredVisitor email address, or null when phone is supplied.
phonestring (or null)requiredVisitor phone number, or null when email is supplied.
messagestringrequiredVisitor's request for the listed business.

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.submit_lead \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "directory_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "listing_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "email": "ada@example.com",
    "phone": "+15551234567",
    "message": "example"
  }'
Test with your API key

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

Save layout

directories.update_layoutwriteconfirmadmin only

Rearrange one directory website's PUBLIC pages: show, hide and reorder the homepage sections, choose which details every listing card shows (photo, description, address, phone, website, the “View profile” prompt, and up to three custom fields), and show, hide and reorder the sections of a listing's page. The change is live for every visitor the moment it saves — there is no draft layout; use Preview to check it. Parts you leave out keep their current setting; `reset` restores the original layout. Required sections (homepage listings, the contact and claim forms) cannot be hidden. Sends nothing and costs 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
idstring (uuid)requiredDirectory website whose layout should change.
homeobject[]optionalHomepage sections in the order they should appear, top to bottom. Sections left out are placed at their default position. Omit to keep the current homepage.
home[].key"hero" | "categories" | "listings" | "posts"requiredHomepage section.
home[].visiblebooleanrequiredWhether the section shows. Required sections always show.
cardobjectoptionalWhat a listing card shows on the homepage, category pages and the visitor's saved page. Omit to keep the current card.
card.fieldsarray of ("photo" | "description" | "address" | "phone" | "website" | "cta")optionalBuilt-in details every listing card shows, besides the listing name which always shows. Omit to keep the current choice.
card.custom_fieldsstring[]optionalKeys of this directory's custom fields to show on every card, in order (see View listing fields). Empty list shows none. Omit to keep the current choice.
detailobject[]optionalSections of a listing's own page in the order they should appear, below the listing name. Sections left out are placed at their default position. Omit to keep the current order.
detail[].key"dates" | "photo" | "description" | "contact" | "details" | "hours" | … 3 morerequiredListing page section.
detail[].visiblebooleanrequiredWhether the section shows. Required sections always show.
resetbooleanoptionalTrue to restore the original layout and ignore every other part of this request.

Example

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

Update lead status

directories.update_lead_statuswriteadmin only

Move a directory inquiry between new, contacted, and closed while retaining its CRM contact and source attribution.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredDirectory lead to update.
status"new" | "contacted" | "closed"requiredNew follow-up status.

Example

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

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

Save listing

directories.update_listingwriteconfirmadmin only

Update a directory listing's public content, category, niche-specific values, optional event/offer dates, and visibility. Publishing or archiving changes what visitors can see immediately on a live directory, and an end date in the past removes the listing from public results.

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)requiredDirectory listing to update.
namestringrequiredPublic listing name.
descriptionstringrequiredPublic listing description.
phonestring (or null)requiredPublic phone number, or null to clear it.
websitestring (uri) (or null)requiredPublic website URL, or null to clear it.
addressstring (or null)requiredPublic formatted address, or null to clear it.
category_idstring (uuid) (or null)requiredCategory to assign, or null for no category.
status"draft" | "published" | "claimed" | "archived"requiredNew listing visibility state.
custom_valuesmap of string → objectoptionalValues keyed by this directory's niche-specific field keys. Default: {}
starts_onstring (or null)optionalFirst day of a dated event or offer (YYYY-MM-DD, directory time zone). Omit both dates to leave them unchanged; null clears.
ends_onstring (or null)optionalLast day of a dated event or offer. After it the listing drops out of public results automatically (when dated listings are on). A start with no end is a one-day event.

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.update_listing \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "description": "example",
    "phone": "+15551234567",
    "website": "https://example.com",
    "address": "example",
    "category_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "status": "draft"
  }'
Test with your API key

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

Save article

directories.update_postwriteconfirmadmin only

Update a directory CMS article and set it to draft, scheduled, or published. Publishing makes the content immediately public; scheduling publishes it when its timestamp arrives.

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)requiredDirectory CMS article to update.
titlestringrequiredPublic article title.
excerptstringrequiredArticle summary for cards and search descriptions.
body_markdownstringrequiredFull article body in Markdown.
status"draft" | "scheduled" | "published"requiredPublication state to save.
published_atstring (date-time) (or null)requiredScheduled timestamp for scheduled content; null for drafts or immediate publishing.
featured_image_urlstring (uri) (or null)requiredPublic featured-image URL, or null to remove it.
seo_titlestring (or null)requiredOptional search title override.
seo_descriptionstring (or null)requiredOptional search description override.

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.update_post \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "title": "Example",
    "excerpt": "example",
    "body_markdown": "example",
    "status": "draft",
    "published_at": "2026-09-17T15:00:00Z",
    "featured_image_url": "https://example.com",
    "seo_title": "Example",
    "seo_description": "example"
  }'
Test with your API key

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

Save website settings

directories.update_settingswriteconfirmadmin only

Update one directory website's name, niche, geography, description, logo, brand color, and public listing terminology without changing its paid license or running data acquisition.

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)requiredDirectory website to update.
namestringrequiredPublic website name.
nichestring (or null)requiredNiche represented by the directory, or null for a geography-only directory.
geography_labelstring (or null)requiredPublic geography label, or null for a niche-only directory.
descriptionstringrequiredShort public description of the directory.
logo_urlstring (uri) (or null)requiredPublic logo URL, or null to remove the logo.
primary_colorstringrequiredSix-digit brand color in hexadecimal form.
singularstringrequiredSingular listing label, such as academy or med spa.
pluralstringrequiredPlural listing label, such as academies or med spas.

Example

curl -X POST https://app.chirply.io/api/v1/actions/directories.update_settings \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "niche": "example",
    "geography_label": "example",
    "description": "example",
    "logo_url": "https://example.com",
    "primary_color": "example",
    "singular": "example",
    "plural": "example"
  }'
Test with your API key

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