Skip to main content
POST
/
v3
/
inbox
/
threads
/
filter
Filter inbox threads
curl --request POST \
  --url https://api.reply.io/v3/inbox/threads/filter \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "channels": [
    "email"
  ],
  "onlyWithMeetingIntent": true,
  "from": "2026-04-01T00:00:00Z",
  "to": "2026-04-30T23:59:59Z"
}
'
{ "items": [ { "id": 58217, "channel": "email", "isRead": false, "subject": "Re: Pricing for Q3 rollout", "bodyPreview": "Thanks — does Tuesday at 10am work for a quick call?", "lastActivityDate": "2026-04-29T14:32:11Z", "isLastMessagePlanned": false, "contact": { "id": 9821, "ownerId": 42, "fullName": "Daria Kovalenko", "email": "daria.kovalenko@northwind.example", "linkedInProfileUrl": "https://www.linkedin.com/in/daria-kovalenko", "phone": "+380501234567", "companyName": "Northwind Logistics", "title": "VP of Operations", "isDeleted": false }, "sequence": { "id": 314, "name": "Q3 Outbound — Logistics ICP" }, "category": { "id": 7, "name": "Hot Leads" }, "hasMeetingIntent": true, "status": { "state": "ok" } } ], "hasMore": false }

Authorizations

Authorization
string
header
required

Authenticate every request with a Bearer token. Pass your Reply API key in the Authorization header:

Authorization: Bearer <your-api-key>

Get your API key from the Reply dashboard: Settings → API Key.

Query Parameters

top
integer
Required range: 1 <= x <= 1000
skip
integer
Required range: x >= 0

Body

application/json

Filter criteria for POST /v3/inbox/threads/filter. All fields are optional — omit a field to skip that filter.

search
string | null

Free-text search across subject, body preview, and contact identifiers.

ownerUserId
integer | null

Restrict to threads owned by the given user. The target must be a member of the caller's team; otherwise the request fails with 400 inboxThread.invalidInput.

Required range: x >= 1
sequenceIds
integer[] | null
Required range: x >= 1
emailAccountIds
integer<int64>[] | null
Required range: x >= 1
linkedInAccountIds
integer[] | null
Required range: x >= 1
contactIds
integer[] | null
Required range: x >= 1
channels
enum<string>[] | null

Restrict to threads on the given channels. unknown is rejected by validation.

Available options:
email,
linkedIn
categoryIds
integer[] | null
Required range: x >= 1
onlyWithMeetingIntent
boolean | null
source
enum<string> | null

Predefined source bucket:

  • inbox — all threads with at least one inbound message.
  • sent — threads where the latest activity is outbound.
  • unread — only unread threads.
  • aiDraft — threads with a pending AI-drafted reply.
Available options:
inbox,
sent,
unread,
aiDraft
from
string<date-time> | null
to
string<date-time> | null

Upper bound on lastActivityDate. Must be strictly after from when both are supplied.

Response

Filtered threads page

items
Inbox Thread List Item · object[]
required
hasMore
boolean
required