Share links
The Share link object
Attributes
idstringUnique identifier of the object (prefixed, opaque).
objectstringshare_linkbrandstringThe brand the object belongs to (
br_…).kindenumWhat a public link opens: a dated snapshot of the brand's visibility report (
report, the apex page/r/{token}), or a live SVG badge to put on a site or a signature (badge, served by the API).Possible values:
report·badgemarket_codestringurlstringA report: its public page. A badge: the page its image links to (the brand's active report, else skoup.ai).
badge_urlstringnullableThe SVG image — badges only.
embedstringnullableThe
<a><img></a>to paste — badges only.snapshot_atstringnullableWhen the report was frozen — null for a badge, which is live.
expires_atstringnullablerevoked_atstringnullableSet once revoked: the page and the badge answer 410.
viewsintegerlivemodebooleantruefor live data,falsefor the test-mode sandbox.createdintegerTime at which the object was created (unix timestamp, seconds).
{
"id": "shl_034IhuucUGXrYD1T0nHfUT",
"object": "share_link",
"brand": "br_034CyfRFSXUqzrbzV6MAfZ",
"kind": "report",
"market_code": "string",
"url": "https://hooks.example.com/skoup",
"badge_url": "string",
"embed": "string",
"snapshot_at": "2026-09-21T02:40:00Z",
"expires_at": "2026-09-21T02:40:00Z",
"revoked_at": "2026-09-21T02:40:00Z",
"views": 12,
"livemode": true,
"created": 1790000000
}Create a share link
POST/v1/brands/{brand}/share-links
A report link freezes the brand’s visibility on market (default:
the primary market) right now — never a live view, never a
competitor or a query; parameter_invalid on market while nothing
was measured there. A badge reads the share live, cached an hour.
No expiry unless expires_at is given.
Parameters
brandstringrequiredBrand id (
br_…).kindenumrequiredWhat a public link opens: a dated snapshot of the brand's visibility report (
report, the apex page/r/{token}), or a live SVG badge to put on a site or a signature (badge, served by the API).Possible values:
report·badgemarketstringnullableMarket code (ISO country, e.g.
FR).expires_atstringnullable
Returns
Returns the created share_link object. Raises an error if something goes wrong.
curl
curl -X POST https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/share-links \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{"kind":"report","market":"FR"}'{
"id": "shl_034IhuucUGXrYD1T0nHfUT",
"object": "share_link",
"brand": "br_034CyfRFSXUqzrbzV6MAfZ",
"kind": "report",
"market_code": "string",
"url": "https://hooks.example.com/skoup",
"badge_url": "string",
"embed": "string",
"snapshot_at": "2026-09-21T02:40:00Z",
"expires_at": "2026-09-21T02:40:00Z",
"revoked_at": "2026-09-21T02:40:00Z",
"views": 12,
"livemode": true,
"created": 1790000000
}List share links
GET/v1/brands/{brand}/share-links
The brand’s public links, active and revoked, newest first: a
report is a dated snapshot anyone opens at its url without an
account, a badge an SVG image (badge_url) with the HTML to
paste (embed).
Parameters
brandstringrequiredBrand id (
br_…).limitintegerNumber of objects to return, between 1 and 100 (default 20).
starting_afterstringCursor: the
idof the last object of the previous page.
Returns
A dictionary with a data property holding up to limit share_link objects, newest first, and has_more telling whether another page exists. Raises an error if something goes wrong.
curl
curl https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/share-links?limit=3 \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"object": "list",
"url": "/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/share-links",
"has_more": false,
"data": [
{
"id": "shl_034IhuucUGXrYD1T0nHfUT",
"object": "share_link",
"brand": "br_034CyfRFSXUqzrbzV6MAfZ",
"kind": "report",
"market_code": "string",
"url": "https://hooks.example.com/skoup",
"badge_url": "string",
"embed": "string",
"snapshot_at": "2026-09-21T02:40:00Z",
"expires_at": "2026-09-21T02:40:00Z",
"revoked_at": "2026-09-21T02:40:00Z",
"views": 12,
"livemode": true,
"created": 1790000000
}
]
}Revoke a share link
DELETE/v1/brands/{brand}/share-links/{share_link}
Its page and its badge answer 410 from now on. The link stays
listed with revoked_at set; revoking twice changes nothing.
Parameters
brandstringrequiredBrand id (
br_…).share_linkstringrequiredShare Link id (
shl_…).
Returns
Returns an object with deleted: true. Raises an error if something goes wrong.
curl
curl -X DELETE https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/share-links/shl_034IhuucUGXrYD1T0nHfUT \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"id": "shl_034IhuucUGXrYD1T0nHfUT",
"object": "share_link",
"deleted": true
}