List conversations
curl --request GET \
--url https://api.inboxbase.ai/v1/identities/{handle}/conversations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.inboxbase.ai/v1/identities/{handle}/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.inboxbase.ai/v1/identities/{handle}/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"identity": "<string>",
"conversations": [
{
"id": "<string>",
"with": "jsmith@example.com",
"subject": "<string>",
"snippet": "<string>",
"messageCount": 123,
"archived": true,
"lastEventAt": 123,
"lastEventAtIso": "2023-11-07T05:31:56Z",
"createdAt": 123,
"createdAtIso": "2023-11-07T05:31:56Z"
}
],
"nextCursor": 123
}{
"error": "<string>",
"details": {}
}{
"error": "<string>",
"details": {}
}Endpoints
List conversations
Paginated list of threads in an identity, newest activity first. Filterable.
GET
/
v1
/
identities
/
{handle}
/
conversations
List conversations
curl --request GET \
--url https://api.inboxbase.ai/v1/identities/{handle}/conversations \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.inboxbase.ai/v1/identities/{handle}/conversations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.inboxbase.ai/v1/identities/{handle}/conversations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"identity": "<string>",
"conversations": [
{
"id": "<string>",
"with": "jsmith@example.com",
"subject": "<string>",
"snippet": "<string>",
"messageCount": 123,
"archived": true,
"lastEventAt": 123,
"lastEventAtIso": "2023-11-07T05:31:56Z",
"createdAt": 123,
"createdAtIso": "2023-11-07T05:31:56Z"
}
],
"nextCursor": 123
}{
"error": "<string>",
"details": {}
}{
"error": "<string>",
"details": {}
}Returns a page of summary rows — id, correspondent, subject, snippet,
message count, timestamps. Not the full timeline; for that, fetch one
conversation at a time.
Filtering
Filters are AND-combined. Common patterns:- The conversation with one correspondent.
?with=morgan@example.com. - Everything from a domain.
?withDomain=example.commatches bothmorgan@example.comandbob@us.example.com. - Incremental polls.
?since=<lastEventAt of your previous poll>returns only threads that moved since then. Pair with the events stream for live updates. - Hide archived.
?archived=false.
Pagination
nextCursor (or null) is on every response. Pass it back as
?cursor= on the next call. The cursor is the lastEventAt of the
last row in the previous page, so behavior is “give me older than this.”
What’s NOT in this response
- The full timeline. Each row carries
messageCountand the most recentsubject/snippet. To see all messages on a conversation, fetchGET /conversations/:convId. - Per-conversation read state. We don’t track read state — every
integrator wants different semantics. Run your own cursor on top of
lastEventAt.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identity handle, URL-encoded.
Example:
"alice.acme@inboxbase.ai"
Query Parameters
Filter to archived (true) or active (false) only. Omit for both.
Exact correspondent email match.
Suffix match on the correspondent's domain (e.g. acme.com).
lastEventAt >= since (Unix milliseconds).
lastEventAt <= until (Unix milliseconds).
Pagination — lastEventAt of the last row from the previous page.
Page size, 1..200.
Required range:
1 <= x <= 200