List related Insights
curl --request GET \
--url https://{host}/v1/articles/{id}/related \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/articles/{id}/related', 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://{host}/v1/articles/{id}/related",
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 <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
url = "https://{host}/v1/articles/{id}/related"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"type": "articles",
"id": "1188",
"attributes": {
"name": "How to spot a fake",
"slug": "how-to-spot-a-fake",
"locale": "en",
"excerpt": "Six things a counterfeiter almost never gets right.",
"type": "default",
"seoTitle": "How to spot a fake watch",
"seoDescription": "Six things a counterfeiter almost never gets right.",
"robots": "index, follow",
"featured": true,
"url": "https://wristler.eu/insights/how-to-spot-a-fake",
"image": "https://cdn.wristler.eu/insights/fake-hero.jpg",
"publishedAt": "2026-09-12T06:00:00.000000Z",
"updatedAt": "2026-09-14T09:31:00.000000Z",
"blocks": null
}
}
],
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 9,
"perPage": 25,
"to": 25,
"total": 214
}
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Content (Insights)
List related Insights
Scope: content:read
What else to read, under the article somebody is reading: up to six sharing a tag, most tags in common first, in the same language, never the article itself. The same ones the website puts at the bottom.
An article that is not published has no page to hang this off, so it answers
404.
GET
/
v1
/
articles
/
{id}
/
related
List related Insights
curl --request GET \
--url https://{host}/v1/articles/{id}/related \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/articles/{id}/related', 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://{host}/v1/articles/{id}/related",
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 <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
url = "https://{host}/v1/articles/{id}/related"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"type": "articles",
"id": "1188",
"attributes": {
"name": "How to spot a fake",
"slug": "how-to-spot-a-fake",
"locale": "en",
"excerpt": "Six things a counterfeiter almost never gets right.",
"type": "default",
"seoTitle": "How to spot a fake watch",
"seoDescription": "Six things a counterfeiter almost never gets right.",
"robots": "index, follow",
"featured": true,
"url": "https://wristler.eu/insights/how-to-spot-a-fake",
"image": "https://cdn.wristler.eu/insights/fake-hero.jpg",
"publishedAt": "2026-09-12T06:00:00.000000Z",
"updatedAt": "2026-09-14T09:31:00.000000Z",
"blocks": null
}
}
],
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 9,
"perPage": 25,
"to": 25,
"total": 214
}
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}{
"errors": [
{
"status": "404",
"code": "watch_reserved",
"title": "Not Found",
"detail": "<string>",
"meta": {},
"source": {
"pointer": "/data/attributes/reference",
"parameter": "<string>"
}
}
],
"jsonapi": {
"version": "1.0"
}
}Authorizations
oauth2bearerAuth
Headers
The language to answer in: specificationLabels, translatedDescription, facet
and label names, the content pages, and every other translated word in the
answer. Read on every request, whatever the endpoint. One we do not have falls
back to English rather than failing.
Available options:
en, nl, de, es, fr, it, pt, fi, pl Response
Up to six articles.