curl --request GET \
--url https://api-prod.heliyos.ai/v1/platform/interactions \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-prod.heliyos.ai/v1/platform/interactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-prod.heliyos.ai/v1/platform/interactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"meta": {
"message": "Meetings fetched successfully.",
"pagination": {
"limit": 20,
"next_cursor": "NjZmMWE4YzNlNGIwYTFiMmMzZDRlNWY2"
}
},
"data": [
{
"_id": "6728b1c2d3e4f5a6b7c8d9e0",
"organizationId": "66a0f1e2d3c4b5a697887766",
"integrationId": "66a0f1e2d3c4b5a697885555",
"channel": {
"type": "email",
"email": "priya@example.com"
},
"subject": "Security questionnaire for Northwind Traders",
"thread_id": "thr_7f3a9c",
"threads": [
{
"message_id": "msg_91b2",
"thread_id": "thr_7f3a9c",
"subject": "Security questionnaire for Northwind Traders",
"snippet": "Hi Priya, attached is our standard questionnaire. Could you return it by Friday?",
"date": 1762250400,
"from": [
{
"name": "Ana Silva",
"email": "ana.silva@northwind.example.com"
}
],
"to": [
{
"name": "Priya Patel",
"email": "priya@example.com"
}
],
"cc": [],
"unread": false,
"starred": false
}
],
"relationships": [
{
"objectId": "66f1a8c3e4b0a1b2c3d4e5f6",
"objectType": "company",
"schemaId": "66a0f1e2d3c4b5a697880001",
"object": {
"_id": "66f1a8c3e4b0a1b2c3d4e5f6",
"objectType": "company",
"baseSchemaId": "66a0f1e2d3c4b5a697880001",
"isAgentAssigned": true,
"data": {
"company_name": "Northwind Traders",
"domain": "northwind.example.com"
}
}
}
],
"categoryIds": [],
"classificationLabels": [],
"summary": "Northwind sent its security questionnaire and wants it back by Friday.",
"sentiment": "Positive",
"sentimentReason": "The buyer is moving the deal forward.",
"isSummarized": true,
"createdAt": "2026-11-04T10:00:05.000Z"
},
{
"_id": "6728b1c2d3e4f5a6b7c8d9e1",
"organizationId": "66a0f1e2d3c4b5a697887766",
"integrationId": "66a0f1e2d3c4b5a697885556",
"channel": {
"type": "meeting",
"email": "priya@example.com"
},
"title": "Northwind Traders pricing review",
"when": {
"start_time": 1762329600,
"end_time": 1762331400,
"start_timezone": "UTC",
"end_timezone": "UTC"
},
"participants": [
{
"email": "priya@example.com",
"status": "yes"
},
{
"email": "ana.silva@northwind.example.com",
"status": "yes"
}
],
"meetingStatus": "NOT_STARTED",
"relationships": [],
"summary": "",
"sentiment": null,
"isSummarized": false,
"createdAt": "2026-11-04T10:05:00.000Z"
}
]
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}List interactions
Returns the workspace’s synced email threads and meetings, from every connected mailbox and
calendar, with their AI analysis and the records they are linked to. Each row is the full
interaction, including message bodies and meeting transcripts, so keep limit small.
By default the list pages with a cursor, newest synced first: pass limit, then send
meta.pagination.next_cursor back as cursor. A sort, or page (as a parameter or inside
filters), switches to page-number paging, where meta.pagination holds page, limit,
totalPages, count and hasMore. See Pagination.
To list only the interactions linked to one record, send {"objectId": "<record id>"} in filters.
curl --request GET \
--url https://api-prod.heliyos.ai/v1/platform/interactions \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-prod.heliyos.ai/v1/platform/interactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-prod.heliyos.ai/v1/platform/interactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"meta": {
"message": "Meetings fetched successfully.",
"pagination": {
"limit": 20,
"next_cursor": "NjZmMWE4YzNlNGIwYTFiMmMzZDRlNWY2"
}
},
"data": [
{
"_id": "6728b1c2d3e4f5a6b7c8d9e0",
"organizationId": "66a0f1e2d3c4b5a697887766",
"integrationId": "66a0f1e2d3c4b5a697885555",
"channel": {
"type": "email",
"email": "priya@example.com"
},
"subject": "Security questionnaire for Northwind Traders",
"thread_id": "thr_7f3a9c",
"threads": [
{
"message_id": "msg_91b2",
"thread_id": "thr_7f3a9c",
"subject": "Security questionnaire for Northwind Traders",
"snippet": "Hi Priya, attached is our standard questionnaire. Could you return it by Friday?",
"date": 1762250400,
"from": [
{
"name": "Ana Silva",
"email": "ana.silva@northwind.example.com"
}
],
"to": [
{
"name": "Priya Patel",
"email": "priya@example.com"
}
],
"cc": [],
"unread": false,
"starred": false
}
],
"relationships": [
{
"objectId": "66f1a8c3e4b0a1b2c3d4e5f6",
"objectType": "company",
"schemaId": "66a0f1e2d3c4b5a697880001",
"object": {
"_id": "66f1a8c3e4b0a1b2c3d4e5f6",
"objectType": "company",
"baseSchemaId": "66a0f1e2d3c4b5a697880001",
"isAgentAssigned": true,
"data": {
"company_name": "Northwind Traders",
"domain": "northwind.example.com"
}
}
}
],
"categoryIds": [],
"classificationLabels": [],
"summary": "Northwind sent its security questionnaire and wants it back by Friday.",
"sentiment": "Positive",
"sentimentReason": "The buyer is moving the deal forward.",
"isSummarized": true,
"createdAt": "2026-11-04T10:00:05.000Z"
},
{
"_id": "6728b1c2d3e4f5a6b7c8d9e1",
"organizationId": "66a0f1e2d3c4b5a697887766",
"integrationId": "66a0f1e2d3c4b5a697885556",
"channel": {
"type": "meeting",
"email": "priya@example.com"
},
"title": "Northwind Traders pricing review",
"when": {
"start_time": 1762329600,
"end_time": 1762331400,
"start_timezone": "UTC",
"end_timezone": "UTC"
},
"participants": [
{
"email": "priya@example.com",
"status": "yes"
},
{
"email": "ana.silva@northwind.example.com",
"status": "yes"
}
],
"meetingStatus": "NOT_STARTED",
"relationships": [],
"summary": "",
"sentiment": null,
"isSummarized": false,
"createdAt": "2026-11-04T10:05:00.000Z"
}
]
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}heliyos_interactions_list.Authorizations
A workspace API key, sent as Authorization: Bearer heliyos_.... Create one in Heliyos under Settings → API keys. A key acts as a workspace admin in the one workspace it was created in.
Query Parameters
Interactions per page, 1 to 100. Defaults to 20.
1 <= x <= 100The next_cursor from the previous page. Only valid without a sort (a 400 otherwise). When you send both cursor and page, cursor wins.
next_cursor from the previous page; only valid with the default sort.
200A page number, starting at 1, for page-number paging. Pages are limit interactions long.
x >= 1A JSON object, URL-encoded. Keys:
objectId(id): only interactions linked to this record.channelType(string or array):email,meeting, or both (an array or a comma-separated string).categoryIds(string or array): only interactions with any of these label ids.search(string): case-insensitive text match on the subject, title, summary, message previews, takeaways, transcript and participant addresses.uniqByRelationships(any non-empty value): keep one interaction per distinct set of linked records.sort(array):{ "field", "direction" }with directionascordesc. Useful fields:thread_date(newest email message),start_time(meeting start),createdAt(when synced).filters(array): conditions{ "field", "operator", "value", "conjunction" }. Conditions with"conjunction": "and"must all match. Conditions without it, or with"or", are combined with OR, so set"conjunction": "and"on every condition you need to hold. Operators:equals,not_equals,contains,not_contains,starts_with,ends_with,empty,not_empty,in,not_in,greater_than,less_than,greater_than_equal,less_than_equal,after,before,between(value{"startDate","endDate"}as a JSON string), andis/is_notforparticipants. Special fields:channelType,categoryIds,participants(meeting invitee addresses),hasAgentDraft(true for threads holding a worker's unsent draft), andrelationships.<objectType>.<field>to match a linked record's field value, for examplerelationships.company.company_name.pageandpageSize: page-number paging.pageSizeis capped at 200. JSON-encoded filter object (search, filters, sort, page, pageSize). Optional. pageSize above 200 is clamped to 200.
20000Was this page helpful?

