curl --request POST \
--url https://api.eu.linqalpha.com/v2/chat/sse \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"query": "What are the latest insights on AAPL performance?",
"stock_ids": [
"BBG001S5N8V8"
],
"tickers": [
"AAPL"
],
"external_types": [
"transcript",
"filing",
"news",
"ir_slide"
]
}
'import requests
url = "https://api.eu.linqalpha.com/v2/chat/sse"
payload = {
"query": "What are the latest insights on AAPL performance?",
"stock_ids": ["BBG001S5N8V8"],
"tickers": ["AAPL"],
"external_types": ["transcript", "filing", "news", "ir_slide"]
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'What are the latest insights on AAPL performance?',
stock_ids: ['BBG001S5N8V8'],
tickers: ['AAPL'],
external_types: ['transcript', 'filing', 'news', 'ir_slide']
})
};
fetch('https://api.eu.linqalpha.com/v2/chat/sse', 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/chat/sse",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'What are the latest insights on AAPL performance?',
'stock_ids' => [
'BBG001S5N8V8'
],
'tickers' => [
'AAPL'
],
'external_types' => [
'transcript',
'filing',
'news',
'ir_slide'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eu.linqalpha.com/v2/chat/sse"
payload := strings.NewReader("{\n \"query\": \"What are the latest insights on AAPL performance?\",\n \"stock_ids\": [\n \"BBG001S5N8V8\"\n ],\n \"tickers\": [\n \"AAPL\"\n ],\n \"external_types\": [\n \"transcript\",\n \"filing\",\n \"news\",\n \"ir_slide\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eu.linqalpha.com/v2/chat/sse")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"What are the latest insights on AAPL performance?\",\n \"stock_ids\": [\n \"BBG001S5N8V8\"\n ],\n \"tickers\": [\n \"AAPL\"\n ],\n \"external_types\": [\n \"transcript\",\n \"filing\",\n \"news\",\n \"ir_slide\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.linqalpha.com/v2/chat/sse")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"What are the latest insights on AAPL performance?\",\n \"stock_ids\": [\n \"BBG001S5N8V8\"\n ],\n \"tickers\": [\n \"AAPL\"\n ],\n \"external_types\": [\n \"transcript\",\n \"filing\",\n \"news\",\n \"ir_slide\"\n ]\n}"
response = http.request(request)
puts response.read_bodyChat
Legacy in the EU region. This endpoint is kept for backward compatibility and is not recommended for new EU integrations. Use Analytics V2 (POST /v2/analytics/sse) instead.
Generate a response from the LinqAlpha engine. LinqAlpha uses different types of language models and data sources to generate an answer. The response is provided as a server-sent events (SSE) stream.
Note: For this search chat endpoint, the stock_id (BBG_ID) can be obtained by referring to the Map Tickers API and using the stock_id value from its response.
curl --request POST \
--url https://api.eu.linqalpha.com/v2/chat/sse \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"query": "What are the latest insights on AAPL performance?",
"stock_ids": [
"BBG001S5N8V8"
],
"tickers": [
"AAPL"
],
"external_types": [
"transcript",
"filing",
"news",
"ir_slide"
]
}
'import requests
url = "https://api.eu.linqalpha.com/v2/chat/sse"
payload = {
"query": "What are the latest insights on AAPL performance?",
"stock_ids": ["BBG001S5N8V8"],
"tickers": ["AAPL"],
"external_types": ["transcript", "filing", "news", "ir_slide"]
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'What are the latest insights on AAPL performance?',
stock_ids: ['BBG001S5N8V8'],
tickers: ['AAPL'],
external_types: ['transcript', 'filing', 'news', 'ir_slide']
})
};
fetch('https://api.eu.linqalpha.com/v2/chat/sse', 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/chat/sse",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'What are the latest insights on AAPL performance?',
'stock_ids' => [
'BBG001S5N8V8'
],
'tickers' => [
'AAPL'
],
'external_types' => [
'transcript',
'filing',
'news',
'ir_slide'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eu.linqalpha.com/v2/chat/sse"
payload := strings.NewReader("{\n \"query\": \"What are the latest insights on AAPL performance?\",\n \"stock_ids\": [\n \"BBG001S5N8V8\"\n ],\n \"tickers\": [\n \"AAPL\"\n ],\n \"external_types\": [\n \"transcript\",\n \"filing\",\n \"news\",\n \"ir_slide\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eu.linqalpha.com/v2/chat/sse")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"What are the latest insights on AAPL performance?\",\n \"stock_ids\": [\n \"BBG001S5N8V8\"\n ],\n \"tickers\": [\n \"AAPL\"\n ],\n \"external_types\": [\n \"transcript\",\n \"filing\",\n \"news\",\n \"ir_slide\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.linqalpha.com/v2/chat/sse")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"What are the latest insights on AAPL performance?\",\n \"stock_ids\": [\n \"BBG001S5N8V8\"\n ],\n \"tickers\": [\n \"AAPL\"\n ],\n \"external_types\": [\n \"transcript\",\n \"filing\",\n \"news\",\n \"ir_slide\"\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Body
A search query
"What are the latest updates on AAPL?"
Conversation id (optional)
Every user-initiated chat is grouped under a conversation. A conversation contains one or more messages generated either by the user or LinqAlpha. Use the conversation_id to track the context of previous interactions.
"123e4567-e89b-12d3-a456-426614174000"
Bloomberg stock IDs (optional)
["BBG001S5N8V8"]
Ticker symbols (optional)
["AAPL"]
External document types (optional, defaults to ["transcript", "filing", "news", "ir_slide"])
["transcript", "filing", "news", "ir_slide"]
Specifies the number of top search results to return. If the value exceeds 50, it will be capped at 50 The number of returned results will be less than or equal to the specified top_k value. Results are sorted by relevancy in descending order (from highest to lowest).
50
Filter documents by upload date range. At least one of start_time or end_time must be provided.
Show child attributes
Show child attributes
{ "start_time": { "year": 2025, "month": 1, "day": 1 }, "end_time": { "year": 2026, "month": 1, "day": 17 } }