curl --request GET \
--url https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": null,
"payload": {
"references": [
{
"id": "1",
"citation_idx": "1",
"search_type": "rms",
"chunk_id": "ad477254-58ef-4965-b86a-26ff9f5b3614",
"text": "UBS Investment Research report on energy sector companies...",
"text_type": "paragraph",
"document_id": "47061a59-2e02-4711-a096-8ba5744c73d0",
"document_name": "ued39062.pdf",
"s3_file_key": "production/data-original/1ec8b21f-c799-4fbb-a6cc-1548d45334f3/organization/2a96a7ca-f2ba-4098-92f8-742e9eb2ede6/s3/4b24a452b612b89d2c046e1740c5c6f75952ce8abc46b00abcc548409196f9f3.pdf",
"external_url": null,
"metadata": {
"calendar_date": "2026-03-02T00:00:00Z",
"fiscal_year": 2025,
"fiscal_quarter": 4,
"source": "filing",
"tickers": [
"BRKM5",
"ECOPETL",
"PETR4",
"YPFD",
"PRIO3"
],
"company_names": [
"Braskem",
"Ecopetrol",
"Petrobras",
"YPF",
"PRIO"
],
"stock_ids": [
"BBG001S6ZH89",
"BBG001SSJG36",
"BBG001S7GRB2",
"BBG001S7KCP5",
"BBG001T9LDJ4"
],
"document_category": "Analysis, Report & Note",
"document_subcategory": "Brokerage",
"rms_document_type": null,
"rms_type": null,
"rms_sub_type": null,
"sector": [
"Energy"
],
"subsector": [
"Oil & gas"
],
"publisher": "UBS",
"countries": [
"United States",
"Iran",
"Israel",
"Saudi Arabia",
"Brazil"
],
"regions": [
"North America",
"EMEA",
"LatAm",
"Europe",
"APAC"
],
"participants": [
{
"name": "Donald Trump",
"role": "President",
"organization": "United States",
"participation_type": "referenced"
}
],
"tags": [],
"parent_id": "608fabf4-c879-486f-83d1-3a889d91f74e",
"parent_document_id": "608fabf4-c879-486f-83d1-3a889d91f74e",
"creation_timestamp": "2026-03-02T15:49:29+00:00",
"last_contribution_timestamp": "2026-03-02T15:49:29+00:00",
"document_tags": [
"research_report",
"brokerage"
],
"creator_name": null,
"last_contributor_name": null,
"offset": [
{
"top": 0.683,
"left": 0.076,
"page": 8,
"width": 0.561,
"height": 0.229
}
]
},
"custom_metadata": null
}
]
}
}{
"error": {
"code": "INVALID_REQUEST_BODY",
"msg": "conversation_id must be a valid UUID",
"message": "conversation_id must be a valid UUID"
},
"payload": null
}{
"error": {
"code": "API_KEY_MISSING",
"msg": "header does not contain api key",
"message": "header does not contain api key"
},
"payload": null
}Analytics V2 References
Retrieves the list of evidence references (citations) used in an analytics conversation, in normalized format with enriched metadata.
Note: This endpoint returns references from the Analytics V2 SSE endpoint. Some source types (e.g.,
rms) require a separate onboarding process. For more information, please contact us at support@linqalpha.com.
Usage Flow:
- Call the Analytics SSE V2 endpoint (
POST /v2/analytics/sse) - From the SSE stream, find the
conversationevent → extractconversation_id - After the stream finishes, call this endpoint with the
conversation_id - The response contains all references with citation index, source document info, and metadata
How to view original documents:
- Via Viewer:
https://chat.eu.linqalpha.com/rms/viewer?conversation_id={conversation_id}&citation_idx={citation_idx}
Note: This endpoint returns references in the same normalized format as the v1 references API, with enriched metadata fields (s3_file_key, external_url, calendar_date, fiscal_year, etc.). Use this endpoint when consuming the v2 analytics SSE stream.
curl --request GET \
--url https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.linqalpha.com/v2/analytics/conversations/{conversation_id}/references")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": null,
"payload": {
"references": [
{
"id": "1",
"citation_idx": "1",
"search_type": "rms",
"chunk_id": "ad477254-58ef-4965-b86a-26ff9f5b3614",
"text": "UBS Investment Research report on energy sector companies...",
"text_type": "paragraph",
"document_id": "47061a59-2e02-4711-a096-8ba5744c73d0",
"document_name": "ued39062.pdf",
"s3_file_key": "production/data-original/1ec8b21f-c799-4fbb-a6cc-1548d45334f3/organization/2a96a7ca-f2ba-4098-92f8-742e9eb2ede6/s3/4b24a452b612b89d2c046e1740c5c6f75952ce8abc46b00abcc548409196f9f3.pdf",
"external_url": null,
"metadata": {
"calendar_date": "2026-03-02T00:00:00Z",
"fiscal_year": 2025,
"fiscal_quarter": 4,
"source": "filing",
"tickers": [
"BRKM5",
"ECOPETL",
"PETR4",
"YPFD",
"PRIO3"
],
"company_names": [
"Braskem",
"Ecopetrol",
"Petrobras",
"YPF",
"PRIO"
],
"stock_ids": [
"BBG001S6ZH89",
"BBG001SSJG36",
"BBG001S7GRB2",
"BBG001S7KCP5",
"BBG001T9LDJ4"
],
"document_category": "Analysis, Report & Note",
"document_subcategory": "Brokerage",
"rms_document_type": null,
"rms_type": null,
"rms_sub_type": null,
"sector": [
"Energy"
],
"subsector": [
"Oil & gas"
],
"publisher": "UBS",
"countries": [
"United States",
"Iran",
"Israel",
"Saudi Arabia",
"Brazil"
],
"regions": [
"North America",
"EMEA",
"LatAm",
"Europe",
"APAC"
],
"participants": [
{
"name": "Donald Trump",
"role": "President",
"organization": "United States",
"participation_type": "referenced"
}
],
"tags": [],
"parent_id": "608fabf4-c879-486f-83d1-3a889d91f74e",
"parent_document_id": "608fabf4-c879-486f-83d1-3a889d91f74e",
"creation_timestamp": "2026-03-02T15:49:29+00:00",
"last_contribution_timestamp": "2026-03-02T15:49:29+00:00",
"document_tags": [
"research_report",
"brokerage"
],
"creator_name": null,
"last_contributor_name": null,
"offset": [
{
"top": 0.683,
"left": 0.076,
"page": 8,
"width": 0.561,
"height": 0.229
}
]
},
"custom_metadata": null
}
]
}
}{
"error": {
"code": "INVALID_REQUEST_BODY",
"msg": "conversation_id must be a valid UUID",
"message": "conversation_id must be a valid UUID"
},
"payload": null
}{
"error": {
"code": "API_KEY_MISSING",
"msg": "header does not contain api key",
"message": "header does not contain api key"
},
"payload": null
}Authorizations
Path Parameters
Conversation ID (UUID). Provided in the conversation SSE event from the Analytics SSE V2 endpoint.
Query Parameters
Organization ID. Required for platform API keys to identify the target organization.
User ID. Required together with user_email for platform API keys to identify the specific user who owns the conversation.
User email. Required together with user_id for platform API keys to identify the specific user who owns the conversation.