Create an internal Telegram campaign for existing private chats

Requires an explicitly issued campaign-scoped key, the REST, Campaigns, scoped-routing and independent campaign-mutation feature gates, the exact campaign user allowlist, the exact campaign workspace allowlist, and Idempotency-Key (bound to this exact payload). Recipients must be existing private chats of READY internal Telegram accounts in the key workspace (max 100; duplicates collapse). No @username resolution, attachments, client-supplied names, broadcasts, or Unipile fallback. Names/usernames for personalization come from Telegram. Suppressed recipients reject the whole request. Campaign, steps and recipients are written in one database transaction; this endpoint never sends a message — the durable worker dispatches queued recipients. Ambiguous outcomes are never retried.

post/campaigns

Request

  • Base URL: https://gramclaw.com/api/v1
  • URL: https://gramclaw.com/api/v1/campaigns
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

Stable caller-generated identity for this exact mutation. Ambiguous operations are not retried.

Request body

namestring
message_textstring required

Supports [[name]] and [[username]], resolved from Telegram for every recipient.

branching_enabledboolean

Seen/unseen branching; rejected unless the independent U4 branching and read-receipt gates are on.

daily_quota_per_accountinteger
max_followupsinteger
scheduled_atstring date-time

Not in the past; at most one year ahead.

schedule_timezonestring

IANA time zone, default UTC.

Response

Existing campaign for this operation (idempotent)

Changes

No recorded changes to this operation across all 1 revision of this API.