PublicApiListInboxThreads
curl --request GET \
--url https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/inbox/threads \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/inbox/threads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"threads": [
{
"threadId": "<string>",
"subject": "<string>",
"lastMessageAt": "<string>",
"lastMessageDirection": "outbound",
"messageCount": 4503599627370495,
"unreadCount": 4503599627370495,
"pendingApprovalCount": 4503599627370495,
"hasBounce": true,
"hasGoalHit": true,
"hasFailed": true,
"hasReply": true,
"hasUnsubscribe": true,
"hasOoo": true,
"status": "<string>",
"journeyStatus": "<string>",
"contact": {
"id": "<string>",
"email": "<string>",
"name": "<string>"
},
"campaign": {
"id": "<string>",
"name": "<string>",
"goal": "<string>"
},
"senderConnector": {
"id": "<string>",
"email": "<string>"
},
"visibility": "<string>",
"ownerId": "<string>",
"ownerName": "<string>",
"assigneeId": "<string>",
"assigneeName": "<string>",
"isOrphan": true,
"isWarmup": true,
"dealId": "<string>"
}
],
"total": 4503599627370495,
"page": 4503599627370496,
"limit": 25,
"tabCounts": {
"all": 4503599627370495,
"needs-approval": 4503599627370495,
"unread": 4503599627370495,
"replies": 4503599627370495,
"completed": 4503599627370495,
"active": 4503599627370495,
"bounced": 4503599627370495,
"failed": 4503599627370495,
"warmup": 4503599627370495
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}Inbox
PublicApiListInboxThreads
GET /api/v1/organizations//workspaces//inbox/threads
GET
/
api
/
v1
/
organizations
/
{orgId}
/
workspaces
/
{wsId}
/
inbox
/
threads
PublicApiListInboxThreads
curl --request GET \
--url https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/inbox/threads \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/inbox/threads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"threads": [
{
"threadId": "<string>",
"subject": "<string>",
"lastMessageAt": "<string>",
"lastMessageDirection": "outbound",
"messageCount": 4503599627370495,
"unreadCount": 4503599627370495,
"pendingApprovalCount": 4503599627370495,
"hasBounce": true,
"hasGoalHit": true,
"hasFailed": true,
"hasReply": true,
"hasUnsubscribe": true,
"hasOoo": true,
"status": "<string>",
"journeyStatus": "<string>",
"contact": {
"id": "<string>",
"email": "<string>",
"name": "<string>"
},
"campaign": {
"id": "<string>",
"name": "<string>",
"goal": "<string>"
},
"senderConnector": {
"id": "<string>",
"email": "<string>"
},
"visibility": "<string>",
"ownerId": "<string>",
"ownerName": "<string>",
"assigneeId": "<string>",
"assigneeName": "<string>",
"isOrphan": true,
"isWarmup": true,
"dealId": "<string>"
}
],
"total": 4503599627370495,
"page": 4503599627370496,
"limit": 25,
"tabCounts": {
"all": 4503599627370495,
"needs-approval": 4503599627370495,
"unread": 4503599627370495,
"replies": 4503599627370495,
"completed": 4503599627370495,
"active": 4503599627370495,
"bounced": 4503599627370495,
"failed": 4503599627370495,
"warmup": 4503599627370495
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}Use this endpoint through the Developer API or the matching
firstsales CLI command when available. Responses use the stable FirstSales public error envelope.Authorizations
FirstSales developer API key bearer token (fs-key-*).
Query Parameters
Available options:
all, needs-approval, unread, replies, completed, active, bounced, failed, warmup Minimum string length:
1Minimum string length:
1Available options:
outreaching, marketing, warmup Required string length:
1 - 64Required string length:
1 - 64Available options:
newest, oldest Required range:
1 <= x <= 10000Required range:
1 <= x <= 50