curl --request PATCH \
--url https://api.eu.linqalpha.com/v1/briefings/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"topic": "<string>",
"stock_ids": [
"<string>"
],
"tickers": [
"<string>"
],
"scheduled_time": "<string>",
"timezone": "<string>",
"scheduled_day_of_week": 3,
"scheduled_day_of_month": 16,
"title": "<string>",
"attach_pdf": true,
"is_active": true,
"rms_sources": [
{
"source": "<string>",
"workspace": "<string>"
}
],
"watchlist_group_id": "<string>",
"use_custom_email_title": true,
"organization_id": "<string>",
"user_id": "<string>",
"user_email": "<string>",
"user_name": "<string>"
}
'import requests
url = "https://api.eu.linqalpha.com/v1/briefings/{id}"
payload = {
"topic": "<string>",
"stock_ids": ["<string>"],
"tickers": ["<string>"],
"scheduled_time": "<string>",
"timezone": "<string>",
"scheduled_day_of_week": 3,
"scheduled_day_of_month": 16,
"title": "<string>",
"attach_pdf": True,
"is_active": True,
"rms_sources": [
{
"source": "<string>",
"workspace": "<string>"
}
],
"watchlist_group_id": "<string>",
"use_custom_email_title": True,
"organization_id": "<string>",
"user_id": "<string>",
"user_email": "<string>",
"user_name": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
topic: '<string>',
stock_ids: ['<string>'],
tickers: ['<string>'],
scheduled_time: '<string>',
timezone: '<string>',
scheduled_day_of_week: 3,
scheduled_day_of_month: 16,
title: '<string>',
attach_pdf: true,
is_active: true,
rms_sources: [{source: '<string>', workspace: '<string>'}],
watchlist_group_id: '<string>',
use_custom_email_title: true,
organization_id: '<string>',
user_id: '<string>',
user_email: '<string>',
user_name: '<string>'
})
};
fetch('https://api.eu.linqalpha.com/v1/briefings/{id}', 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/v1/briefings/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'topic' => '<string>',
'stock_ids' => [
'<string>'
],
'tickers' => [
'<string>'
],
'scheduled_time' => '<string>',
'timezone' => '<string>',
'scheduled_day_of_week' => 3,
'scheduled_day_of_month' => 16,
'title' => '<string>',
'attach_pdf' => true,
'is_active' => true,
'rms_sources' => [
[
'source' => '<string>',
'workspace' => '<string>'
]
],
'watchlist_group_id' => '<string>',
'use_custom_email_title' => true,
'organization_id' => '<string>',
'user_id' => '<string>',
'user_email' => '<string>',
'user_name' => '<string>'
]),
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/v1/briefings/{id}"
payload := strings.NewReader("{\n \"topic\": \"<string>\",\n \"stock_ids\": [\n \"<string>\"\n ],\n \"tickers\": [\n \"<string>\"\n ],\n \"scheduled_time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"scheduled_day_of_week\": 3,\n \"scheduled_day_of_month\": 16,\n \"title\": \"<string>\",\n \"attach_pdf\": true,\n \"is_active\": true,\n \"rms_sources\": [\n {\n \"source\": \"<string>\",\n \"workspace\": \"<string>\"\n }\n ],\n \"watchlist_group_id\": \"<string>\",\n \"use_custom_email_title\": true,\n \"organization_id\": \"<string>\",\n \"user_id\": \"<string>\",\n \"user_email\": \"<string>\",\n \"user_name\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.eu.linqalpha.com/v1/briefings/{id}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"topic\": \"<string>\",\n \"stock_ids\": [\n \"<string>\"\n ],\n \"tickers\": [\n \"<string>\"\n ],\n \"scheduled_time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"scheduled_day_of_week\": 3,\n \"scheduled_day_of_month\": 16,\n \"title\": \"<string>\",\n \"attach_pdf\": true,\n \"is_active\": true,\n \"rms_sources\": [\n {\n \"source\": \"<string>\",\n \"workspace\": \"<string>\"\n }\n ],\n \"watchlist_group_id\": \"<string>\",\n \"use_custom_email_title\": true,\n \"organization_id\": \"<string>\",\n \"user_id\": \"<string>\",\n \"user_email\": \"<string>\",\n \"user_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.linqalpha.com/v1/briefings/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"topic\": \"<string>\",\n \"stock_ids\": [\n \"<string>\"\n ],\n \"tickers\": [\n \"<string>\"\n ],\n \"scheduled_time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"scheduled_day_of_week\": 3,\n \"scheduled_day_of_month\": 16,\n \"title\": \"<string>\",\n \"attach_pdf\": true,\n \"is_active\": true,\n \"rms_sources\": [\n {\n \"source\": \"<string>\",\n \"workspace\": \"<string>\"\n }\n ],\n \"watchlist_group_id\": \"<string>\",\n \"use_custom_email_title\": true,\n \"organization_id\": \"<string>\",\n \"user_id\": \"<string>\",\n \"user_email\": \"<string>\",\n \"user_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"error": {},
"payload": {
"id": "<string>",
"title": "<string>",
"topic": "<string>",
"tickers": [
"<string>"
],
"language": "<string>",
"scheduled_time": "<string>",
"timezone": "<string>",
"frequency": "daily",
"scheduled_day_of_week": 123,
"scheduled_day_of_month": 123,
"next_delivery_at": "<string>",
"is_active": true,
"source_type": "<string>",
"attach_pdf": true,
"created_at": "<string>",
"updated_at": "<string>"
}
}Update Briefing Schedule
Update an existing briefing. All fields are optional.
curl --request PATCH \
--url https://api.eu.linqalpha.com/v1/briefings/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"topic": "<string>",
"stock_ids": [
"<string>"
],
"tickers": [
"<string>"
],
"scheduled_time": "<string>",
"timezone": "<string>",
"scheduled_day_of_week": 3,
"scheduled_day_of_month": 16,
"title": "<string>",
"attach_pdf": true,
"is_active": true,
"rms_sources": [
{
"source": "<string>",
"workspace": "<string>"
}
],
"watchlist_group_id": "<string>",
"use_custom_email_title": true,
"organization_id": "<string>",
"user_id": "<string>",
"user_email": "<string>",
"user_name": "<string>"
}
'import requests
url = "https://api.eu.linqalpha.com/v1/briefings/{id}"
payload = {
"topic": "<string>",
"stock_ids": ["<string>"],
"tickers": ["<string>"],
"scheduled_time": "<string>",
"timezone": "<string>",
"scheduled_day_of_week": 3,
"scheduled_day_of_month": 16,
"title": "<string>",
"attach_pdf": True,
"is_active": True,
"rms_sources": [
{
"source": "<string>",
"workspace": "<string>"
}
],
"watchlist_group_id": "<string>",
"use_custom_email_title": True,
"organization_id": "<string>",
"user_id": "<string>",
"user_email": "<string>",
"user_name": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
topic: '<string>',
stock_ids: ['<string>'],
tickers: ['<string>'],
scheduled_time: '<string>',
timezone: '<string>',
scheduled_day_of_week: 3,
scheduled_day_of_month: 16,
title: '<string>',
attach_pdf: true,
is_active: true,
rms_sources: [{source: '<string>', workspace: '<string>'}],
watchlist_group_id: '<string>',
use_custom_email_title: true,
organization_id: '<string>',
user_id: '<string>',
user_email: '<string>',
user_name: '<string>'
})
};
fetch('https://api.eu.linqalpha.com/v1/briefings/{id}', 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/v1/briefings/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'topic' => '<string>',
'stock_ids' => [
'<string>'
],
'tickers' => [
'<string>'
],
'scheduled_time' => '<string>',
'timezone' => '<string>',
'scheduled_day_of_week' => 3,
'scheduled_day_of_month' => 16,
'title' => '<string>',
'attach_pdf' => true,
'is_active' => true,
'rms_sources' => [
[
'source' => '<string>',
'workspace' => '<string>'
]
],
'watchlist_group_id' => '<string>',
'use_custom_email_title' => true,
'organization_id' => '<string>',
'user_id' => '<string>',
'user_email' => '<string>',
'user_name' => '<string>'
]),
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/v1/briefings/{id}"
payload := strings.NewReader("{\n \"topic\": \"<string>\",\n \"stock_ids\": [\n \"<string>\"\n ],\n \"tickers\": [\n \"<string>\"\n ],\n \"scheduled_time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"scheduled_day_of_week\": 3,\n \"scheduled_day_of_month\": 16,\n \"title\": \"<string>\",\n \"attach_pdf\": true,\n \"is_active\": true,\n \"rms_sources\": [\n {\n \"source\": \"<string>\",\n \"workspace\": \"<string>\"\n }\n ],\n \"watchlist_group_id\": \"<string>\",\n \"use_custom_email_title\": true,\n \"organization_id\": \"<string>\",\n \"user_id\": \"<string>\",\n \"user_email\": \"<string>\",\n \"user_name\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.eu.linqalpha.com/v1/briefings/{id}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"topic\": \"<string>\",\n \"stock_ids\": [\n \"<string>\"\n ],\n \"tickers\": [\n \"<string>\"\n ],\n \"scheduled_time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"scheduled_day_of_week\": 3,\n \"scheduled_day_of_month\": 16,\n \"title\": \"<string>\",\n \"attach_pdf\": true,\n \"is_active\": true,\n \"rms_sources\": [\n {\n \"source\": \"<string>\",\n \"workspace\": \"<string>\"\n }\n ],\n \"watchlist_group_id\": \"<string>\",\n \"use_custom_email_title\": true,\n \"organization_id\": \"<string>\",\n \"user_id\": \"<string>\",\n \"user_email\": \"<string>\",\n \"user_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.linqalpha.com/v1/briefings/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"topic\": \"<string>\",\n \"stock_ids\": [\n \"<string>\"\n ],\n \"tickers\": [\n \"<string>\"\n ],\n \"scheduled_time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"scheduled_day_of_week\": 3,\n \"scheduled_day_of_month\": 16,\n \"title\": \"<string>\",\n \"attach_pdf\": true,\n \"is_active\": true,\n \"rms_sources\": [\n {\n \"source\": \"<string>\",\n \"workspace\": \"<string>\"\n }\n ],\n \"watchlist_group_id\": \"<string>\",\n \"use_custom_email_title\": true,\n \"organization_id\": \"<string>\",\n \"user_id\": \"<string>\",\n \"user_email\": \"<string>\",\n \"user_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"error": {},
"payload": {
"id": "<string>",
"title": "<string>",
"topic": "<string>",
"tickers": [
"<string>"
],
"language": "<string>",
"scheduled_time": "<string>",
"timezone": "<string>",
"frequency": "daily",
"scheduled_day_of_week": 123,
"scheduled_day_of_month": 123,
"next_delivery_at": "<string>",
"is_active": true,
"source_type": "<string>",
"attach_pdf": true,
"created_at": "<string>",
"updated_at": "<string>"
}
}Stock Selection
Same as Create Briefing: providestock_ids (preferred) or tickers. Use the Map Tickers endpoint to convert ticker symbols to stock IDs.
Scheduled Time Format
Must be in 12-hour AM/PM format:"9:00 AM", "3:30 PM", "12:00 PM".
Partial Update
Only fields included in the request body will be updated. For example, to change only the schedule time:{
"scheduled_time": "8:00 AM"
}
{
"is_active": false
}
null does not clear a field — for example, a linked watchlist group cannot currently be unlinked via this endpoint, and language: null does not reset an already-set language.Field Reference
| Field | Type | Description |
|---|---|---|
topic | string | Briefing instructions |
stock_ids | string[] | Internal stock UUIDs (preferred) |
tickers | string[] | Ticker symbols (auto-resolved) |
language | string | null | Output language (null = auto-detect; see note above) |
scheduled_time | string | h:mm AM/PM format |
timezone | string | IANA timezone (e.g. America/New_York) |
frequency | string | daily, weekly, or monthly |
scheduled_day_of_week | integer | 0 (Sun) – 6 (Sat), for weekly |
scheduled_day_of_month | integer | 1–31, for monthly |
title | string | Custom briefing title |
source_type | string | tfs_only, rms_only, or both |
attach_pdf | boolean | Attach PDF to delivery email |
is_active | boolean | Enable/disable the schedule |
rms_sources | object[] | RMS source configs (source, workspace) |
watchlist_group_id | string | Watchlist group ID to link (unlink via null not supported) |
use_custom_email_title | boolean | Use title as fixed email subject |
user_id | string | Platform (EDS) keys only: target user’s customer_id |
user_email | string | Platform (EDS) keys only: target user’s email |
user_name | string | Platform (EDS) keys only: display name (used when creating) |
Authorizations
Path Parameters
Body
All fields are optional. Only include fields you want to change.
Briefing instructions/topic
Internal stock UUIDs (preferred)
Ticker symbols (auto-resolved)
Output language (null = auto-detect)
English, Spanish, French, German, Italian, Portuguese, Dutch, Hindi, Japanese, Chinese, Finnish, Korean, Polish, Russian, Turkish, Ukrainian, Vietnamese h:mm AM/PM format (e.g. '9:00 AM')
IANA timezone (e.g. Asia/Seoul)
daily, weekly, monthly 0=Sun, 6=Sat
0 <= x <= 61 <= x <= 31Custom briefing title
tfs_only, rms_only, both Enable/disable the schedule
RMS source configurations
Show child attributes
Show child attributes
Watchlist group ID to link for dynamic ticker sync. Note: unlinking by sending null is not currently supported.
Use title as fixed email subject
Platform (EDS) keys only: org UUID under the key's platform. Ignored by org-bound keys.
Platform (EDS) keys only: the target user's customer_id (your external user id, not a UUID). Ignored by org-bound keys.
Platform (EDS) keys only: the target user's email. Ignored by org-bound keys.
Platform (EDS) keys only: optional display name (used only when creating the user).