Skip to main content
DELETE
/
api
/
accounts
/
{id}
Delete a connected account
curl --request DELETE \
  --url https://app.puffle.ai/api/accounts/{id} \
  --header 'Authorization: Bearer <token>'
{
  "success": true
}

Overview

Tear down a sender account. Behaviour depends on the account’s type and current status:
  • LinkedIn, already disconnected — hard-delete the row.
  • LinkedIn, still connected — best-effort Unipile session revoke, then soft-delete (status: "disconnected"). Campaign history stays intact.
  • Email — best-effort Instantly warmup disable + delete, best-effort AgentMail inbox delete, then hard-delete the row.
External-service failures during the cleanup phase are logged and swallowed — Puffle always tears down its own state, even if an upstream is flaky.

AI agent notes

Irreversible for email accounts. The row is hard-deleted and the AgentMail inbox is destroyed — past sends remain in conversations but the sender account itself is gone. Confirm with the human before calling.In-flight campaigns will start failing at the provider boundary once the account is gone. Pause any active campaigns whose sender_accounts include this account first, or delete senders only from draft campaigns.404 means the account was never yours. Account ownership is checked via user_id. A 404 here is not a “try again” — it’s “wrong id” or “not your workspace.”500 only for DB delete failure. Upstream Unipile / Instantly / AgentMail errors are swallowed and do not produce a 500.This endpoint only exposes DELETE. There is no GET /api/accounts/{id} or PATCH /api/accounts/{id} — use listAccounts to read and updateSettings (via the campaign_account section) to change sender limits.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

Account UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Response

Account removed (or soft-disconnected for connected LinkedIn accounts). No body fields beyond success: true.

success
enum<boolean>
required
Available options:
true