Ticker-Driven Toronto Stock Exchange (TSX) Stocks News API

Version 1.0.1

Revolutionize Market Access: Multilingual Toronto Stock Exchange (TSX) News API for Traders & Investors. As one of the world's premier electronic stock exchanges, Toronto Stock Exchange (TSX) hosts over 3,000 companies and facilitates billions in daily trading volume. Empower your users with the ultimate news discovery tool. Our API provides a continuous stream of real-time news headlines, concise briefs, and in-depth full-text articles for all Toronto Stock Exchange (TSX)-listed companies. Simply input a stock ticker to access critical market-moving news across 100 languages, eliminating the complexities of foreign language research. Gain a competitive edge by integrating vital global news directly into your trading terminals, investment apps, and wealth management solutions, helping retail investors and institutional traders react to market sentiment and company developments.

Base URL

https://api.pressmonitor.com/news-xtse/v1

Authentication

bearerAuth

Type: http

Send Authorization header as: Bearer secret_key:subscription_id

GET /names

Resolve Company Names to Tickers

Returns Toronto Stock Exchange (TSX) tickers matching a partial or full company name.

Parameters

Name Type In Required Description
name string query Required Partial or full company name to search (e.g., 'Micro' -> MSFT, Microsoft Corp).
count integer query Optional Maximum number of results to return.
Default: 20

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/names?name=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/names" querystring = {"name":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/names?name=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/names?name=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/names?name=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

[ { "ticker": "MSFT", "name": "Microsoft Corp" }, { "ticker": "HON", "name": "Honeywell" } ]
400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-headlines

News Headlines

Returns news headlines with titles and URLs.

Parameters

Name Type In Required Description
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-headlines?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-headlines" querystring = {"ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-headlines?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-headlines?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-headlines?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-briefs

News Briefs

Returns headlines, URLs, and brief AI-generated summaries of stories.

Parameters

Name Type In Required Description
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-briefs?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-briefs" querystring = {"ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-briefs?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-briefs?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-briefs?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-fulltext

Full Articles

Returns full articles with titles, summaries, URLs, images, and article body.

Parameters

Name Type In Required Description
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-fulltext?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-fulltext" querystring = {"ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-fulltext?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-fulltext?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-fulltext?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-fulltext-metadata

Full Articles + Metadata

Returns full articles with enriched metadata such as Wikidata IDs, named entities, and subject codes.

Parameters

Name Type In Required Description
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-fulltext-metadata?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-fulltext-metadata" querystring = {"ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-fulltext-metadata?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-fulltext-metadata?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-fulltext-metadata?ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-headlines-translated

News Headlines with Translation

Returns news headlines with titles and URLs. Translated into the target language.

Parameters

Name Type In Required Description
target_lang_code string query Required
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-headlines-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-headlines-translated" querystring = {"target_lang_code":"SOME_STRING_VALUE","ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-headlines-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-headlines-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-headlines-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-briefs-translated

News Briefs with Translation

Returns headlines, URLs, and brief AI-generated summaries of stories. Translated into the target language.

Parameters

Name Type In Required Description
target_lang_code string query Required
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-briefs-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-briefs-translated" querystring = {"target_lang_code":"SOME_STRING_VALUE","ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-briefs-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-briefs-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-briefs-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-fulltext-translated

Full Articles with Translation

Returns full articles with titles, summaries, URLs, images, and article body. Translated into the target language.

Parameters

Name Type In Required Description
target_lang_code string query Required
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated" querystring = {"target_lang_code":"SOME_STRING_VALUE","ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json

GET /news-fulltext-metadata-translated

Full Articles with Translation

Returns full articles with titles, summaries, URLs, images, and article body. Translated into the target language.

Parameters

Name Type In Required Description
target_lang_code string query Required
ticker string query Required Toronto Stock Exchange (TSX) stock ticker symbol (e.g., RY).
country_code string query Optional
lang_code string query Optional
search_after string query Optional Opaque pagination cursor used only with `sort=latest` (publish-time sort).
count integer query Optional
Default: 20
sort string query Optional Ranking mode: latest by publish time (default) or relevance.
Default: latest

Code Examples

curl --request GET \ --url 'https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
import requests url = "https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated" querystring = {"target_lang_code":"SOME_STRING_VALUE","ticker":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","search_after":"SOME_STRING_VALUE","count":"SOME_INTEGER_VALUE","sort":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/news-xtse/v1/news-fulltext-translated?target_lang_code=SOME_STRING_VALUE&ticker=SOME_STRING_VALUE&country_code=SOME_STRING_VALUE&lang_code=SOME_STRING_VALUE&search_after=SOME_STRING_VALUE&count=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }

Responses

200 Successful response

Content-Type: application/json

400 Bad request (invalid parameter or combination)

Content-Type: application/problem+json

401 Unauthorized (missing/invalid token)

Content-Type: application/problem+json

403 Forbidden (subscription or plan restriction)

Content-Type: application/problem+json

429 Too Many Requests (rate limit exceeded)

Content-Type: application/problem+json

500 Server error

Content-Type: application/problem+json