<!-- BusyBot node reference — https://busybot.net/tools/one-simple-api/ -->

> Node: OneSimpleAPI (`one_simple_api`) · Action (binary) · v1
> Category: Utility · Credentials: OneSimpleAPI (`oneSimpleApiApi`)
> Updated: 2026-08-16

# OneSimpleAPI

> Generate PDFs, screenshots, QR codes, and retrieve information from URLs

## Overview

The OneSimpleAPI tool provides a toolbox of no-code utilities: (1) Website operations — generate PDF from webpage, take screenshot of webpage, get SEO data from webpage; (2) Social Profile lookups — Instagram profile details, Spotify artist details; (3) Information retrieval — currency exchange rates, image metadata; (4) Utility operations — validate email, expand shortened URL, generate QR code. Binary operations (PDF, screenshot, QR code) optionally download the generated file into the binary store. All requests use GET with query parameters.

**Category:** Utility  
**Tool Name:** `one_simple_api`  
**Version:** 1

**Appearance:** Icon: `lucide-Wand` | Color: `#4B5563`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

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

## Credentials

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

### Resources

| Resource | Value |
|----------|-------|
| Information | `information` |
| Social Profile | `socialProfile` |
| Utility | `utility` |
| Website | `website` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Generate PDF | `pdf` | Generate a PDF from a webpage |
| Get SEO Data | `seo` | Get SEO information from a website |
| Take Screenshot | `screenshot` | Create a screenshot from a webpage |
| Instagram | `instagramProfile` | Get details about an Instagram profile |
| Spotify | `spotifyArtistProfile` | Get details about a Spotify artist |
| Exchange Rate | `exchangeRate` | Convert a value between currencies |
| Image Metadata | `imageMetadata` | Retrieve image metadata from a URL |
| Expand URL | `expandURL` | Expand a shortened URL |
| Generate QR Code | `qrCode` | Generate a QR code |
| Validate Email | `validateEmail` | Validate an email address |

Each resource offers only its own operations: `website` → `pdf`, `seo`, `screenshot`; `socialProfile` → `instagramProfile`, `spotifyArtistProfile`; `information` → `exchangeRate`, `imageMetadata`; `utility` → `expandURL`, `qrCode`, `validateEmail`.

### Parameters

Every parameter below supports `{{ }}` expressions, so URLs, text and field names can come from the incoming item.

#### Website: Generate PDF

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webpage URL (`link`) | `string` | Yes | — | Link to webpage to convert to PDF. |
| Download PDF? (`download`) | `boolean` | Yes | `false` | Whether to download the PDF or return a link to it. |
| Put Output In Field | `string` | Yes | `data` | The name of the output field to put the binary file data in. _(shown when Download PDF? is `true`)_ |
| Options | `collection` | No | `{}` | Optional PDF settings. |
| — Page Size | `options` | No | — | Paper size for the generated PDF. |
| | | | | Options: `A0`, `A1`, `A2`, `A3`, `A4`, `A5`, `A6`, `Ledger`, `Legal`, `Letter`, `Tabloid` |
| — Force Refresh | `boolean` | No | `false` | Normally the API will reuse a previously generated file to give a faster response. This option forces a fresh generation. |

#### Website: Take Screenshot

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webpage URL (`link`) | `string` | Yes | — | Link to webpage to screenshot. |
| Download Screenshot? (`download`) | `boolean` | Yes | `false` | Whether to download the screenshot or return a link to it. |
| Put Output In Field | `string` | Yes | `data` | The name of the output field to put the binary file data in. _(shown when Download Screenshot? is `true`)_ |
| Options | `collection` | No | `{}` | Optional screenshot settings. |
| — Screen Size | `options` | No | — | Device viewport to render the page at. |
| | | | | Options: `phone`, `phone-landscape`, `retina`, `tablet`, `tablet-landscape` |
| — Force Refresh | `boolean` | No | `false` | Normally the API will reuse a previously taken screenshot to give a faster response. This option forces a fresh capture. |
| — Full Page | `boolean` | No | `false` | Capture the full page length rather than just the visible viewport area. |

#### Website: Get SEO Data

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webpage URL (`link`) | `string` | Yes | — | Webpage to get SEO information for. |
| Options | `collection` | No | `{}` | Optional SEO settings. |
| — Include Headers? | `boolean` | No | `false` | Whether to include HTTP response headers in the output. |

#### Social Profile: Instagram

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile Name | `string` | Yes | — | Instagram profile name to get details of. |

#### Social Profile: Spotify

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Artist Name | `string` | Yes | — | Spotify artist name to get details for. |

#### Information: Exchange Rate

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Value | `string` | Yes | — | The numeric value to convert. |
| From Currency | `string` | Yes | — | Source currency code (e.g. USD, EUR, GBP). |
| To Currency | `string` | Yes | — | Target currency code (e.g. EUR, USD, GBP). |

#### Information: Image Metadata

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Link To Image (`link`) | `string` | Yes | — | URL of the image to retrieve metadata from. |

#### Utility: Validate Email

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Email Address | `string` | Yes | — | The email address to validate. |

#### Utility: Expand URL

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| URL (`link`) | `string` | Yes | — | The shortened URL to expand. |

#### Utility: Generate QR Code

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| QR Content (`message`) | `string` | Yes | — | The text that should be turned into a QR code (e.g. a website URL). |
| Download Image? (`download`) | `boolean` | Yes | `false` | Whether to download the QR code image or return a link to it. |
| Put Output In Field | `string` | Yes | `data` | The name of the output field to put the binary file data in. _(shown when Download Image? is `true`)_ |
| Options | `collection` | No | `{}` | Optional QR code settings. |
| — Size | `options` | No | `Small` | The QR code size. |
| | | | | Options: `Small`, `Medium`, `Large` |
| — Format | `options` | No | `PNG` | The QR code output format. |
| | | | | Options: `PNG`, `SVG` |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

Every operation **merges the OneSimpleAPI response onto the input item JSON** — the incoming fields pass through unchanged. **One output item per input item**; nothing fans out.

The three file-producing operations always return a `url` pointing at the generated file. What happens next depends on the download switch:

| Operation | Download off | Download on |
|-----------|--------------|-------------|
| `pdf` | The item carries the API response, including the `url` of the generated PDF. Binary is forwarded untouched. | The PDF is also fetched and written to the field named by **Put Output In Field**, as `webpage.pdf`, alongside any binary the item already carried. |
| `screenshot` | Same — the response's `url` points at the image. | The image is written as `screenshot.png`. |
| `qrCode` | Same — the response's `url` points at the QR code. | The QR code is written as `qrcode.png`, or `qrcode.svg` when Format is `SVG`. |

The remaining operations (`seo`, `instagramProfile`, `spotifyArtistProfile`, `exchangeRate`, `imageMetadata`, `validateEmail`, `expandURL`) merge their JSON response onto the item and forward binary unchanged.

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

## Usage Examples

- Generate a PDF from a webpage URL
- Take a screenshot of a website
- Generate a QR code from text content
- Get SEO metadata from a webpage
- Validate an email address
- Expand a shortened URL
- Get Instagram profile details
- Convert currency exchange rates

## Example Configuration

Turn a page from the incoming item into an A4 PDF and keep the file:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "website",
    "operation": "pdf",
    "link": "{{ $json.url }}",
    "download": true,
    "output": "pdfFile",
    "options": {
      "page": "A4",
      "force": false
    }
  }
}
```

Capture a full-page phone screenshot, returning just a link:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "website",
    "operation": "screenshot",
    "link": "https://example.com",
    "download": false,
    "options": {
      "screen": "phone",
      "fullpage": true,
      "force": true
    }
  }
}
```

Pull SEO metadata, including response headers:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "website",
    "operation": "seo",
    "link": "{{ $json.pageUrl }}",
    "options": {
      "headers": true
    }
  }
}
```

Generate a large SVG QR code and download it:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "utility",
    "operation": "qrCode",
    "message": "{{ $json.ticketUrl }}",
    "download": true,
    "output": "qrImage",
    "options": {
      "size": "Large",
      "format": "SVG"
    }
  }
}
```

Validate an email address coming off the item:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "utility",
    "operation": "validateEmail",
    "emailAddress": "{{ $json.email }}"
  }
}
```

Expand a shortened link:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "utility",
    "operation": "expandURL",
    "link": "{{ $json.shortLink }}"
  }
}
```

Convert an amount between currencies:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "information",
    "operation": "exchangeRate",
    "value": "{{ $json.amount }}",
    "fromCurrency": "USD",
    "toCurrency": "EUR"
  }
}
```

Look up an Instagram profile:

```json
{
  "type": "one_simple_api",
  "parameters": {
    "resource": "socialProfile",
    "operation": "instagramProfile",
    "profileName": "{{ $json.handle }}"
  }
}
```

### 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 PDFs, screenshots, and QR codes from URLs, plus retrieve social profiles, exchange rates, SEO data, and email validation via OneSimpleAPI.

### Behavior notes

- **Match the operation to the resource.** Each resource exposes only its own operations, and picking a resource resets the operation list — `website` gives `pdf`, `seo` and `screenshot`; `socialProfile` gives `instagramProfile` and `spotifyArtistProfile`; `information` gives `exchangeRate` and `imageMetadata`; `utility` gives `expandURL`, `qrCode` and `validateEmail`.
- **Download is off by default.** Leave it off and you get a link on the item; turn it on and the file is fetched into binary data as well. **Put Output In Field** only appears once download is on.
- **Force Refresh costs time.** The API caches generated PDFs and screenshots and returns the cached copy unless you ask for a fresh one — only turn Force Refresh on when the page has genuinely changed.
- **QR Format decides the file type.** `SVG` produces a scalable `qrcode.svg`; anything else produces `qrcode.png`.
- **Several different fields share the internal name `link`.** When writing node configuration by hand, the webpage URL, the image URL and the shortened URL are all `link`.