Preview Link

peekalink.preview
ActionBusiness appsconnection required

Calls the Peekalink API with the connection's credentials.

Fetch the title, description, image and type of one URL.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
Peekalink
Secret shape
the API key, or {"api_key": "…"}
Config it needs
base_url
Resolved by
config.connection_id, else node.connection_id

Configuration

5 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
link
The absolute http(s) URL to preview.
stringYes—url formathttps://www.example.com
source
How Peekalink should record where the request came from. Leave this on API unless you are previewing on behalf of a person browsing.
stringNoAPIone of "API", "WEB"—
accept_language
An HTTP Accept-Language value, such as 'de-DE', sent so the target site returns its metadata in that language. Leave blank for the site's default.
stringNo——de-DE
force_new_snapshot
Take a fresh screenshot instead of serving the cached one. This is an enterprise-plan feature and is ignored on other plans.
booleanNofalse——
force_new_snapshot_recursive
Take fresh screenshots for the link and everything it embeds. This is an enterprise-plan feature and is ignored on other plans.
booleanNofalse——

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "accept_language": "de-DE",
  "force_new_snapshot": false,
  "force_new_snapshot_recursive": false,
  "link": "https://www.example.com",
  "source": "API"
}

Output

One shape.

result

FieldTypeExample
id
Peekalink's own identifier for the previewed link.
number—
ok
False when Peekalink reached the link but the link answered badly; 'status' then holds the code it answered with.
boolean—
url
The URL that was previewed.
string—
domain
The host the link points at.
string—
type
What kind of link this is, which decides the detail block below. One of: UNKNOWN, IMAGE, VIDEO, AUDIO, DOCUMENT, TEXT, PAGE, YOUTUBE_VIDEO, YOUTUBE_USER, X_POST, X_USER, INSTAGRAM_POST, INSTAGRAM_USER, REDDIT_POST, REDDIT_USER, REDDIT_SUBREDDIT, TIKTOK_VIDEO, TIKTOK_USER, AMAZON_PRODUCT, ETSY_PRODUCT, GITHUB_REPOSITORY.
string—
status
The HTTP status the target answered the fetch with.
number—
updatedAt
When Peekalink last refreshed this link's metadata.
string—
redirected
True when the URL redirected before it was read.
boolean—
redirectionUrl
The URL finally read, when the link redirected.
string—
redirectionCount
How many redirects were followed.
number—
title
The link's title, when the target has one.
string—
description
The link's description or summary, when it has one.
string—
language
The language Peekalink detected on the target.
string—
icon
The site's favicon, with its URL and dimensions.
object—
image
The 'image' detail block, filled only when 'type' names that kind of link.
object—
video
The 'video' detail block, filled only when 'type' names that kind of link.
object—
audio
The 'audio' detail block, filled only when 'type' names that kind of link.
object—
document
The 'document' detail block, filled only when 'type' names that kind of link.
object—
text
The 'text' detail block, filled only when 'type' names that kind of link.
object—
page
The 'page' detail block, filled only when 'type' names that kind of link.
object—
youtubeVideo
The 'youtubeVideo' detail block, filled only when 'type' names that kind of link.
object—
youtubeUser
The 'youtubeUser' detail block, filled only when 'type' names that kind of link.
object—
xUser
The 'xUser' detail block, filled only when 'type' names that kind of link.
object—
xPost
The 'xPost' detail block, filled only when 'type' names that kind of link.
object—
instagramUser
The 'instagramUser' detail block, filled only when 'type' names that kind of link.
object—
instagramPost
The 'instagramPost' detail block, filled only when 'type' names that kind of link.
object—
amazonProduct
The 'amazonProduct' detail block, filled only when 'type' names that kind of link.
object—
etsyProduct
The 'etsyProduct' detail block, filled only when 'type' names that kind of link.
object—
tiktokUser
The 'tiktokUser' detail block, filled only when 'type' names that kind of link.
object—
tiktokVideo
The 'tiktokVideo' detail block, filled only when 'type' names that kind of link.
object—
redditUser
The 'redditUser' detail block, filled only when 'type' names that kind of link.
object—
redditSubreddit
The 'redditSubreddit' detail block, filled only when 'type' names that kind of link.
object—
redditPost
The 'redditPost' detail block, filled only when 'type' names that kind of link.
object—
githubRepository
The 'githubRepository' detail block, filled only when 'type' names that kind of link.
object—
{
  "amazonProduct": {},
  "audio": {},
  "description": "",
  "document": {},
  "domain": "",
  "etsyProduct": {},
  "githubRepository": {},
  "icon": {},
  "id": 0,
  "image": {},
  "instagramPost": {},
  "instagramUser": {},
  "language": "",
  "ok": false,
  "page": {},
  "redditPost": {},
  "redditSubreddit": {},
  "redditUser": {},
  "redirected": false,
  "redirectionCount": 0,
  "redirectionUrl": "",
  "status": 0,
  "text": {},
  "tiktokUser": {},
  "tiktokVideo": {},
  "title": "",
  "type": "",
  "updatedAt": "",
  "url": "",
  "video": {},
  "xPost": {},
  "xUser": {},
  "youtubeUser": {},
  "youtubeVideo": {}
}

Notes

  • A successful call can still carry ok=false: that means Peekalink reached the link and the link itself answered badly, and 'status' holds the code it answered with. Branch on 'ok' rather than assuming a step that succeeded found a page.
  • Which detail block comes back depends on 'type': a YouTube link fills 'youtubeVideo', a plain web page fills 'page', an image fills 'image', and so on.
  • Every link previewed spends one request from the plan's hourly allowance, and nothing here retries; Peekalink answers an exhausted allowance with RATE_LIMIT_EXCEEDED or BURST_LIMIT_EXCEEDED.

Related Peekalink nodes

See Preview Link run in a workflow.

In a technical demo we add the Peekalink connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.