Read all Fini interactions for your workspace, sorted newest first, with cursor pagination.
Reads interactions for the workspace tied to your API key. Use it to export interactions into your own systems for analytics, QA review, or downstream processing. This is the read path described on the API overview — it pulls data out of Fini and does not change agent behavior. Results are sorted by latest message time, newest first.Documentation Index
Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
Use this file to discover all available pages before exploring further.
Bearer fini_...1, maximum 100.nextCursor or prevCursor value returned by the previous response.next moves to older interactions; previous moves back toward newer ones. This is because results are sorted newest first, so “next page” goes further back in time.widget, ui, standalone, testsuite, replay, zendesk, intercom, front, hubspot, salesforce, gorgias, livechat, slack, discord, freshdesk, and freshchat.source and channel accept either comma-separated values or repeated query params if your HTTP client sends arrays.null if there is no next page.null if there is no previous page.400 Bad Request message varies by cause — it may quote the specific rule that failed (since/until range > 90 days, since >= until, invalid UUID, etc.). See Errors for the full list of causes.userAttributes is an open-ended object. Fini returns the attributes captured on the interaction as-is, so the schema is consumer-defined and can vary by workspace. If your bots populate CRM-specific or workflow-specific fields, they appear here unchanged.
events[].csatRating is passed through from the stored event data:
null means no CSAT value is present on that event0, the API returns 0. Do not automatically treat 0 as “unrated” unless that is how your own channel or integration encodes the value.
events[].role can currently be:
| Value | Meaning |
|---|---|
user | A message from the end user or customer. |
agent | A human agent message synced from the connected provider. |
finibot | A Fini-generated message or system action. |
otherbot | A non-Fini bot or automation message from the upstream provider. |
events[].type can currently be:
| Value | Meaning |
|---|---|
message | A normal message event. |
internalnote | A private/internal note rather than a customer-visible message. |
no_reply | Fini decided not to send a reply. |
silent_escalation | Fini escalated without posting a visible reply. |
debounce | A debounce/system event used internally around message timing. |
widget_form | A widget form interaction event. |
PublicEvent
| Field | Type | Description |
|---|---|---|
id | string | Event ID. |
createdAt | epoch ms | When the event was created. |
role | string | One of the event roles documented above. |
type | string | One of the event types documented above. |
message | string | null | Message text, when the event carries message content. |
externalId | string | null | Provider-side message ID when available. |
externalCreatedAt | epoch ms | null | Provider-side timestamp when available. |
csatRating | number | null | Numeric CSAT value if one was stored on the event. |
feedback | string | null | Free-text feedback note attached to the event. |
approved | boolean | null | Thumbs up (true), thumbs down (false), or unrated (null). |
resolved | boolean | null | Resolution flag for negatively rated or flagged events. |
attachments | array | File attachments on the event. Passed through from stored event data; commonly includes fields like originalUrl, contentType, expiresAt, sizeBytes, and storage URLs. |
tags | PublicTag[] | Tags attached to the event. |
usedArticles | PublicArticle[] | Articles retrieved for that specific event. |
PublicArticle
| Field | Type | Description |
|---|---|---|
id | string | Article ID. |
title | string | Article title. |
documentUrl | string | null | Source document URL when available. |
PublicSubfolder
| Field | Type | Description |
|---|---|---|
id | string | Folder ID. |
title | string | Folder title. |
PublicTag
| Field | Type | Description |
|---|---|---|
id | string | Tag ID. |
name | string | Tag name. |
groupId | string | null | Parent tag-group ID when one exists. |
nextCursor with direction=next to move to older interactionsprevCursor with direction=previous to move back toward newer interactionscursor, the API starts from the newest matching interactions in the requested time window.
400 Bad Request
since later than or equal to until, or a time window larger than 90 days. The response message quotes the specific rule that failed.401 Unauthorized
403 Forbidden
429 Too Many Requests
500 Internal Server Error
X-RateLimit-* headersRetry-After header contract429, back off and retry with your own client-side policy.