<!-- BusyBot node reference — https://busybot.net/tools/peekalink/ -->

> Node: Peekalink (`peekalink`) · Action · v1
> Category: Development · Credentials: Peekalink API (`peekalinkApi`)
> Updated: 2026-08-16

# Peekalink

> Generate rich link previews and check URL preview availability.

## Overview

Peekalink is a link preview API service. This tool can generate rich metadata previews for any URL (title, description, image, content type, etc.) and check whether a preview is available for a given link. It uses the Peekalink REST API with API key authentication via the X-API-Key header. Both operations send a POST request with the URL as the "link" field in the JSON body.

**Category:** Development  
**Tool Name:** `peekalink`  
**Version:** 1

**Appearance:** Icon: `lucide-ExternalLink` | Color: `#CE0000`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Peekalink API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/peekalink-api/) for setup instructions.

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Is Available | `isAvailable` | Check whether a preview for a given link is available. |
| Preview | `preview` | Return the preview for a link. |

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| URL | `string` | Yes | — | The URL to generate a preview for or check availability. Supports expressions like {{ $json.link }}. _(shown when Operation is `preview`, `isAvailable`)_ |
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One output item per input item. The Peekalink response is **merged onto the input item JSON** — every field the API returns is copied onto the item alongside the fields that were already there, so an upstream field is only overwritten when the API returns a field with the same name. Binary data is forwarded unchanged. Neither operation fans out; a single input item always produces exactly one output item.

- **Preview** returns the link's rich metadata (title, description, content type, image and related fields, as provided by Peekalink).
- **Is Available** returns the availability status for the link, which lets you check a URL before spending a preview call on it.

Reference the result downstream by expression, e.g. `{{ $json.title }}`.

## Usage Examples

- Generate a link preview for a URL
- Check if a preview is available for a URL
- Extract title and description from a webpage URL
- Get OpenGraph metadata for a link

## Example Configuration

Generate a rich preview for a URL carried on the item:

```json
{
  "type": "peekalink",
  "parameters": {
    "operation": "preview",
    "url": "{{ $json.link }}",
    "maxConcurrency": 10
  }
}
```

Check availability before requesting a preview:

```json
{
  "type": "peekalink",
  "parameters": {
    "operation": "isAvailable",
    "url": "https://example.com/page",
    "maxConcurrency": 5
  }
}
```

Preview a fixed URL with the default concurrency:

```json
{
  "type": "peekalink",
  "parameters": {
    "operation": "preview",
    "url": "https://example.com/article"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Generate rich link previews or check preview availability for any URL using the Peekalink API.