RecruitAffiliates.ai

List threads

Your Mailroom's threads: the ones that need a reply first, then newest first. A thread is one email conversation with one person. Message bodies never come back over the API. A test key gets an empty list.

Scope: finder:read (or finder:write)

get/v1/finder/threads

Request

  • Base URL: https://api.affiliaterail.com
  • URL: https://api.affiliaterail.com/v1/finder/threads
  • Auth: HTTP bearer

Query parameters

view'replies' | 'needs_reply' | 'snoozed' | 'all'

replies (the default): every thread they've written on. needs_reply: their message is the latest and it's interested or a question. snoozed, or all for everything sent.

filter'interested' | 'questions' | 'not_now' | 'complaints' | 'wrong_person' | 'not_interested'

One kind of reply

inbox_idstring

One mailbox, from GET /settings

Example:fin_7uSyy9FqVLCFWrdPeZaK
owner_user_idstring

A teammate's user_id from GET /team, or unassigned

stage'saved' | 'contacting' | 'replied' | 'negotiating' | 'onboarding' | 'activated' | 'no_reply' | 'declined' | 'on_hold'
campaign_idstring

Prefixed id (fca_…)

Example:fca_7uSyy9FqVLCFWrdPeZaK
limitstring

1 to 100, default 25

Example:25
cursorstring

next_cursor from the previous page, with the same filters

Response

Threads

has_moreboolean required
next_cursorstring nullable required

Pass as cursor with the same filters for the next page. Null on the last page.

Example response

{
  "data": [
    {
      "id": "fth_7uSyy9FqVLCFWrdPeZaK",
      "last_message_at": "2026-08-21T10:15:30.000Z",
      "snoozed_until": "2026-08-21T10:15:30.000Z",
      "handled_at": "2026-08-21T10:15:30.000Z"
    }
  ]
}

Changes

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