← All action domains

Email pools

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

Add to pool

email_pools.add_senderwriteadmin only

Add ONE account email address to a sending pool, appended to the end of the rotation. Use this instead of replacing the whole member list when a single sender is joining. The address must already be ready to send, since a pending sender in a pool is skipped at send time. Re-adding an existing member does nothing and keeps its place in the rotation. If the pool has a warmup plan with auto-enrol switched on, the new member starts that ramp from its own day one rather than joining at the volume the established members already send. From the next bulk send onward, some recipients will see this address as the From — it does not send anything by itself.

Parameters

FieldTypeRequiredDescription
pool_idstring (uuid)requiredEmail pool the sender should join.
identity_idstring (uuid)requiredReady account email identity to add to the rotation.

Example

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

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

Create email pool

email_pools.createwriteadmin only

Create an email sending pool. Bulk sends addressed to the pool rotate across its member addresses (least-used-today first, respecting each member's warmup allowance). The pool's reply-to overrides every member's individual reply-to; leave it blank and replies return to whichever address sent each message. Creating a pool sends nothing.

Parameters

FieldTypeRequiredDescription
namestringrequiredPool name shown in send pickers, such as 'Cold outreach pool'.
reply_tostring (email) (or null)optionalOne address that receives replies to everything sent through this pool, or null so replies return to the sending address.
identity_idsarray of (string (uuid))optionalAccount email identities to add as members, in rotation tie-break order. The same identity may belong to several pools. Default: []

Example

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

Delete email pool

email_pools.deletewriteconfirmadmin only

Permanently delete an email pool and its member list. The member email addresses themselves are NOT deleted and keep working individually. Any broadcast still pointing at this pool falls back to the account default sender on its next send, which changes what recipients see — that is why this asks for confirmation.

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
pool_idstring (uuid)requiredEmail pool to delete permanently.

Example

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

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

View email pool

email_pools.getreadadmin only

Show one email pool in full: its reply-to, status, the warmup plan applied to its members, and every member address with today's send count, its current warmup allowance, and whether it is resting. Read-only. Owner/admin only, matching the Email pools settings screen.

Parameters

FieldTypeRequiredDescription
pool_idstring (uuid)requiredEmail pool to inspect.

Example

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

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

List email pools

email_pools.listreadadmin only

List the account's email sending pools — named sets of From addresses that bulk sends rotate across — with each pool's member count, reply-to address, active/paused status, warmup plan, and how many emails it has sent today. Read-only. Owner/admin only, matching the Email pools settings screen.

Parameters

No parameters — POST an empty body.

Example

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

Remove from pool

email_pools.remove_senderwriteadmin only

Take ONE email address out of a sending pool's rotation. The address itself is not deleted and keeps working on its own; every other member of the pool is left in place. Later bulk sends through this pool stop coming from this address, which concentrates the same volume on the remaining members — worth checking against their warmup allowances. Sends nothing.

Parameters

FieldTypeRequiredDescription
pool_idstring (uuid)requiredEmail pool to take the sender out of.
identity_idstring (uuid)requiredAccount email identity to remove from the rotation.

Example

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

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

Warm up pool

email_pools.set_warmupwriteadmin only

Put every address in a sending pool onto one warmup ramp, in a single call. While warming, pool rotation caps each member at its own daily allowance (day-one volume, plus the increment for each elapsed day, levelling off at the maximum, counted per UTC day) and parks the rest of a campaign until the next day rather than failing it. Pick a named plan — gentle (5/day +5, up to 100), standard (10/day +10, up to 200) or fast (25/day +25, up to 500) — or 'custom' with your own numbers. Staggering starts each member's ramp a few days after the last, so a pool of new mailboxes does not step up in lockstep. Members that are not ready to send are skipped rather than enrolled, since their ramp clock would otherwise run down while they sat idle. Changes future pacing only; sends nothing and costs nothing.

Parameters

FieldTypeRequiredDescription
pool_idstring (uuid)requiredEmail pool whose member addresses should be warmed up.
enabledbooleanoptionalFalse turns warmup off for every member of the pool and clears the pool's plan, so members send at whatever volume a campaign asks for. Default: true
plan"gentle" | "standard" | "aggressive" | "custom"optionalNamed ramp to apply. 'gentle' for brand-new mailboxes on a brand-new domain, 'standard' for a new address on a domain that already sends, 'aggressive' for a new mailbox on an already-warm domain, 'custom' to supply the three numbers below. Default: "standard"
start_per_dayinteger (or null)optionalCustom plans only: emails each address may send on day one.
increment_per_dayinteger (or null)optionalCustom plans only: extra emails allowed each subsequent day.
max_per_dayinteger (or null)optionalCustom plans only: the daily ceiling the ramp levels off at, or null to keep climbing.
stagger_daysintegeroptionalDays between each member's ramp start. 0 starts everyone today; 2 means the second address begins in two days, the third in four. Defaults to the chosen plan's own stagger.
auto_enrollbooleanoptionalPut addresses added to this pool later onto the same plan from their own day one, instead of letting them join at the volume established members already send. Default: false
restartbooleanoptionalRestart every member's ramp from day one (use when re-warming mailboxes that have been rested). Default: false

Example

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

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

Update email pool

email_pools.updatewriteadmin only

Rename an email pool, change or clear its reply-to, pause or reactivate it, or replace its member list. A paused pool refuses new sends; in-flight campaigns pointing at it park until it is active again. Omitted fields are left alone. Sends nothing.

Parameters

FieldTypeRequiredDescription
pool_idstring (uuid)requiredEmail pool to change.
namestringoptionalNew pool name.
reply_tostring (email) (or null)optionalNew reply-to for everything sent through the pool, or null so replies return to the sending address.
status"active" | "paused"optionalPause to stop the pool accepting sends; reactivate to resume.
identity_idsarray of (string (uuid))optionalReplacement member list in rotation tie-break order. Omit to keep current members.

Example

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

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