https://reply.io logo
#announcements
:rocket: *Reply API V3 β€” Changelog (August 27, 2026)* > Three small…
# announcements
d

Dasha

08/27/2026, 12:01 PM
πŸš€ Reply API V3 β€” Changelog (August 27, 2026)
Three small additions and one correction. If you create schedules through the API, read the last part.
🟒 Now Live Inbox β€” reply to a different address.
POST /v3/inbox/threads/{id}/messages
takes an optional
to
(
string
,
format: email
, nullable), for when a colleague or a shared inbox answered instead of the contact. Omit it and nothing changes. Note: setting it switches off link and open tracking for that message. Settings β€” tracking and plain text.
GET
/
PATCH /v3/settings
now expose
isLinksTrackingEnabled
and
isSendingPlainTextEnabled
(both
boolean
, nullable) in the
emails
section. They don't mix β€” plain text can't be enabled while open or link tracking is on:
Copy code
400  settings.invalidOperation
     Cannot enable plain text mode together with open or click tracking
LinkedIn β€” delay between actions.
PUT /v3/linkedin-accounts/{id}/limits
takes
actionDelayMinSeconds
(
>= 30
, default
60
) and
actionDelayMaxSeconds
(<= 86400`, default
120
, with
max - min>
= 60`). Reply picks a random delay in
[min, max]
before each action. ⚠️ That
PUT
replaces the whole limits object β€” omit the two fields and you get the 60–120s defaults, which changes pacing even if your code doesn't change. ⚠️ Schedules β€”
timezoneId
never took IANA identifiers
Our docs said IANA (
"America/New_York"
). The API takes Windows identifiers and rejects IANA. Nothing changed in the API β€” the documentation was wrong, and anyone who trusted it has been getting rejections. Map before calling
POST /v3/schedules
or `PUT /v3/schedules/{id}`:
"America/New_York"
β†’
"Eastern Standard Time"
,
"Europe/London"
β†’
"GMT Standard Time"
. πŸ“ Also: 276 endpoint descriptions across 30 areas were rewritten. No contract changes, but they now spell out behavior that was always true β€” notably on
PATCH /v3/settings
, where an explicit
null
clears a text field but is ignored on booleans and numbers, and
calls.resolutions
replaces the whole list, so a custom resolution you omit is deleted. πŸ“š Full documentation
πŸ™Œ 2