https://reply.io logo
#announcements
*Now Live* *October 22* • *Webhooks — `email_replied`:* new `email_to`,…
# announcements
a

Andrii Samokysh

10/23/2026, 6:53 AM
Now Live October 22 • Webhooks — `email_replied`: new
email_to
,
email_cc
,
email_bcc
(arrays of addresses from the message headers). Empty headers are omitted, so
email_bcc
is absent in practice. Not gated by
includeEmailUrl
/
includeEmailText
. • `POST /v3/sequences`: every
settings
field is now optional and nullable; an omitted field takes its documented default (e.g.
daysToFinishProspect
5
,
emailSendingDelaySeconds
60
,
dailyThrottling
100
,
disableOpensTracking
true
,
repliesHandlingType
markAsFinished
,
generatedTaskOwner
`sequence`;
emailsCountPerDay
= your workspace default). • `POST /v3/contacts/import`:
options.keys.contactId
(boolean, default
false
) +
contactId
per item. The key is not additive, every item must then carry a
contactId
, and an id that doesn’t resolve inside your team imports a new contact. • Inbox: new message status code
linkedInInvalidUrl
(LinkedIn profile URL missing/invalid or contact deleted; resending fails until the URL is fixed). • AI SDR: unknown personalization variables now return a descriptive
400
—
offer.invalidParameter
(create/patch),
playbook.invalidParameter
(create/patch),
salesAgentSequence.invalidParameter
(settings patch). Example:
Text contains unknown variables. Unknown variables: {{Your_Company}}. Fields: callToActions.
October 8 • Billing:
GET /v3/billing
(
billing:read
) is out of Coming soon. • LinkedIn Accounts:
PUT
/
DELETE /v3/linkedin-accounts/{id}/voice
(
channels:write
) are out of Coming soon. Unlinking falls back to the team’s default voice. • Accounts — custom field values:
customFields[]
on account responses, create and update (by
id
or
name
,
value
≤ 4000).
PUT
writes only the values you send; bad value →
400 contactAccount.invalidInput
, feature off → `403 contactAccount.featureDisabled`; on bulk create only the failing item fails (error
3
/
6
). • Custom Fields: new
entityType
(
contact
/
account
) on the model, create (default
contact
), update (must match) and
GET /v3/custom-fields?entityType=
. • Contacts:
stage
(name, nullable) on read,
PATCH
and import.
null
is the only value that clears a stage; unknown/blank name →
400
listing available names. • `GET /v3/whoami/team-users`: new
isOwner
,
teamRole
,
organizationRole
. • Sequences:
GET /v3/sequences/{id}/steps
is ordered by position (empty array when none,
404 sequenceStep.notFound
);
POST /v3/sequences
documents
sequence.invalidStep
/
sequence.emptySubject
. • Reporting / sequence stats: plain-date
to
covers the whole day, UTC-timestamp
to
is an exclusive bound, times are read in the user’s time zone (the
Z
suffix does not shift them). • Rate limits: weekly quota documented — 100/min, 3,000/h, 150,000/week per user. Prompt Actions: up to 6
outputs
(was 5). 🔜 Coming Soon AI SDR Sequence Structures (targeted: late October 2026) •
GET /v3/ai-sdr/sequence-structures
,
GET /v3/ai-sdr/sequence-structures/{id}
(
ai-sdr:read
) •
GET
/
PUT /v3/sequences/ai-sdr/{sequence_id}/structure
,
POST /v3/sequences/ai-sdr/{sequence_id}/structure/save-as
(
ai-sdr:write
for
PUT
/
save-as
) Ids are
g-{number}
(library) or
c-{number}
(user-saved).
PUT
replaces the sequence’s steps and returns
409 sequenceStructure.changeBlocked
once messages were sent.
POST /v3/sequences/ai-sdr
takes an optional `structureId`;
502 salesAgentSequence.structureNotSuggested
means the sequence was created without steps (id in
detail
). Teams (targeted: early November 2026) Notes API (late October 2026):
GET /v3/contacts/{id}/notes
,
GET /v3/contacts/{id}/notes/{note_id}
,
GET
/
POST /v3/contact-accounts/{id}/notes
,
GET /v3/contact-accounts/{id}/notes/{note_id}
. AI SDR playbooks (late October 2026): playbook draft endpoints under
/v3/sequences/ai-sdr/{sequence_id}/playbook-draft
(
generate
,
regenerate
,
example-files
,
save
),
POST /v3/ai-sdr/playbooks/{id}/regenerate
,
GET /v3/ai-sdr/playbooks/{id}/sequences
. Drafts are deleted after 1 hour of inactivity. Mailbox Procurement (late October 2026 — moved from late September): new
GET /v3/email-accounts/procurement/domains
,
POST .../domains/{domainId}/mailboxes/estimate
,
POST .../domains/{domainId}/mailboxes/purchase
,
GET .../procurement/geo/states
. Rate limits (mid October 2026):
GET /v3/rate-limits
— your usage per limit and window. ⚠️ Breaking Changes 1. Unknown or malformed template variables are rejected with
400
(Oct 8) > Before: variable names were documented as case-sensitive; no rejection of unknown names was documented. > After: email template create/update,
POST /v3/sequences
and step/variant create/update/bulk (email and SMS steps) return
400
, e.g.
Unknown variable {{firstName}}. Did you mean {{FirstName}}? …
. LinkedIn, WhatsApp, call and task steps are not checked. > Action required: check variable names against
GET /v3/email-templates/variables
and use the exact casing. 2. AI SDR sequence steps now come from sequence structures (Oct 22, with the late-October structures release) > Before:
POST /v3/sequences/ai-sdr
required `sequenceStructureSetup`;
PUT /v3/sequences/ai-sdr/{sequence_id}/generated-step-types
set the channels; settings returned
generatedStepTypes
. > After:
sequenceStructureSetup
is removed and
structureId
is optional;
PUT .../generated-step-types
and
generatedStepTypes
are removed. > Action required: stop sending
sequenceStructureSetup
(send
structureId
or nothing), move to
PUT .../structure
, stop reading
generatedStepTypes
. Housekeeping • LinkedIn account limits:
limitsMode
is documented as
fixed
/
ranged
(the casing
GET
returns). • New schema pages (Sequence structure, Contact Note, Playbook draft, Rate Limits and more); new sidebar groups for Sequence Structures, Teams, Purchased domains, Mailboxes on existing domains and Rate Limits. • Authentication guide: new
teams
scope row; MCP pages updated for the weekly limit and
Retry-After
on
429
. 📚 Full documentation
🙌 1