Skip to main content
This page explains how to leverage fact extraction via the REST-based /tools/extract-facts API endpoint. Find the API reference here.
This feature requires human oversight of its outputs
This endpoint is currently not yet included in the JavaScript SDK

How to

Use this endpoint if your integration is centred around an asynchronous workflow, where audio is not streamed live to return transcripts and extract facts over a WebSocket, but instead relying on an existing audio file, an existing transcript, or other text document. To provide you flexibility, this endpoint:
  • Is stateless and does not depend on being related to an interaction
  • Does not retain extracted facts, ie nothing is saved to the database via the API
  • Is not limited to extracting facts from a transcript, instead any unstructured text document or string can be the input source
Please contact us if you have additional use cases you would like to see more explicitly supported.

Steps:
1

Stringify your text-based input, whether a transcript or another unstructured document.
2

Post your request to the /tools/extract-facts endpoint
3

Receive the response with the extracted facts assigned to the factGroup deemed most relevant by the LLM.
If you try to extract facts from existing unstructured notes, it is necessary to make separate requests for separate notes. This can lead to some redundant facts extracted but leads to higher completeness of extracted facts. Future improvements to this use case are planned for Q1 2026. Do contact us for details.

Additional information

While this is a REST endpoint, under the hood, we leverage the same setup as used in the real-time fact extraction. The key aspects of this setup are:
  • A sliding context window is fed to the LLM
  • As facts are extracted, those are also exposed to the LLM to lead to the most relevant sequential extraction
However, since a REST endpoint, the available time to process is a much more constrained resource. To address this limitation, the API chunks up the provided text input, so those chunks can be processed in parallel.
Please be aware of this different setup in the REST endpoint vs WebSocket Stream, plus the general nature and behaviour of a non-deterministic LLM, when trying to compare results.
I