← All action domains

Email validation

5 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 validation run

email_validation.cancel_jobwrite

Stop a queued or running background email-validation run. Contacts already checked keep their stamped verdicts; no further provider credits are spent.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe validation run to cancel.

Example

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

View email validation settings

email_validation.getread

Read whether automatic email validation is enabled, which provider it uses, and which contact-capture channels are covered. Never returns provider credentials and performs no billable validation. Any member can read this, exactly as /settings/email-policy shows the panel to everyone and only disables the inputs for non-managers. `never_bounce_key_saved` says whether a NeverBounce key is on file; it is reported as false to members, because the page withholds that one fact from them too.

Parameters

No parameters — POST an empty body.

Example

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

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

Validation run progress

email_validation.job_statusread

Read the progress of background email-validation runs: processed/total, live verdict counts, skips, failures, and final status. Pass an id for one run, or omit it for the most recent runs. Reading progress also nudges an unfinished run forward.

Parameters

FieldTypeRequiredDescription
idstring (uuid)optionalOne job to read. Omit for the most recent runs.

Example

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

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

Save settings

email_validation.savewriteadmin only

Save automatic email-validation settings for the account. When enabled, each selected contact-capture channel can make a real single-address request to its own Mailgun or NeverBounce account and may incur that provider's validation charges. An explicit invalid or disposable result blocks that email from entering the CRM; provider errors and timeouts fail open.

Parameters

FieldTypeRequiredDescription
enabledbooleanrequiredTurn automatic email validation on or off.
provider"mailgun" | "neverbounce"requiredThe service used for each single-address validation.
neverbounce_api_keystringoptionalA new NeverBounce API key to encrypt and store. Omit it to keep the saved key.
channelsobjectrequiredWhich contact-capture paths get their email addresses validated. Each flag is independent.
channels.apibooleanrequiredValidate contacts created through API, MCP, or Copilot.
channels.trackingbooleanrequiredValidate contacts auto-captured by website tracking.
channels.importsbooleanrequiredValidate contact email addresses in CSV and file imports.
channels.manualbooleanrequiredValidate contacts added manually in the dashboard.
channels.nativebooleanrequiredValidate emails submitted through native funnels, forms, surveys, and quizzes.

Example

curl -X POST https://app.chirply.io/api/v1/actions/email_validation.save \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "provider": "mailgun",
    "channels": {
      "api": true,
      "tracking": true,
      "imports": true,
      "manual": true,
      "native": true
    }
  }'
Test with your API key

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

Validate email

email_validation.start_bulkwriteconfirm

Start a background job that validates each listed contact's email address through its own Mailgun or NeverBounce account and stamps the verdict (valid, catch-all, unknown, invalid, disposable) on each contact. Every check is a real provider request that can use a paid validation credit; by default contacts whose current address was already checked are skipped. Returns the job id immediately — poll email_validation.job_status for progress.

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
contact_idsarray of (string (uuid))requiredThe contacts whose email addresses should be validated.
mode"skip_validated" | "always"optionalskip_validated skips contacts whose current address was already checked (no credit spent); always re-checks every address. Default: "skip_validated"

Example

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

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