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

> Node: Bitly (`bitly`) · Action · v1
> Category: Utility · Credentials: Bitly API (Access Token) (`bitlyApi`), Bitly OAuth2 (`bitlyOAuth2`)
> Updated: 2026-08-16

# Bitly

> Shorten, retrieve, and update URLs using Bitly.

## Overview

Bitly is a URL shortening and link management platform. This tool supports creating shortened links (bitlinks), retrieving link details, and updating existing links. It supports both API access token and OAuth2 authentication. Features include custom domains, deep links, tags, and group management.

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

**Appearance:** Icon: `si-bitly` | Color: `#EE6123`

## Node Type

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

## Input / Output

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

## Credentials

This tool requires **Bitly API (Access Token)** or **Bitly OAuth2** credentials — configure the one that matches the Authentication parameter.
See the [Credentials Guide](https://busybot.net/credentials/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Link | `link` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a link |
| Get | `get` | Get a link |
| Update | `update` | Update a link |

### Parameters

#### Link: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Long URL | `string` | Yes | — | The long URL to be shortened. Supports expressions like {{ $json.url }}. |
| Additional Fields | `collection` | No | `{}` | Optional properties applied to the new bitlink. |
| — Domain | `string` | No | `bit.ly` | Custom short domain. Default: bit.ly. |
| — Group | `string` | No | — | Group GUID to associate the bitlink with. Find in Bitly app: Profile > Groups. |
| — Tags | `string` | No | — | Comma-separated tags to categorize the bitlink. |
| — Title | `string` | No | — | A descriptive title for the bitlink. |
| Deeplinks | `fixedCollection` | No | `{}` | Mobile deep links to attach to the bitlink. Add more than one entry to attach several. |
| — App ID | `string` | No | — | The app identifier. |
| — App URI Path | `string` | No | — | The URI path for the app deep link. |
| — Install Type | `string` | No | — | The install type for the deep link. |
| — Install URL | `string` | No | — | The install URL for the deep link. |

#### Link: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Bitlink | `string` | Yes | — | The bitlink ID (e.g. "bit.ly/22u3ypK"). Supports expressions. |

#### Link: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Bitlink | `string` | Yes | — | The bitlink ID to update (e.g. "bit.ly/22u3ypK"). Supports expressions. |
| Update Fields | `collection` | No | `{}` | Properties to change on the existing bitlink. Fields you leave out are untouched. |
| — Archived | `boolean` | No | `false` | Whether the bitlink is archived. |
| — Group | `string` | No | — | Group GUID to associate the bitlink with. Find in Bitly app: Profile > Groups. |
| — Long URL | `string` | No | — | The new long URL destination. |
| — Tags | `string` | No | — | Comma-separated tags. Replaces existing tags. |
| — Title | `string` | No | — | A new descriptive title for the bitlink. |
| Deeplinks | `fixedCollection` | No | `{}` | Mobile deep links to set on the bitlink. Add more than one entry to attach several. |
| — App ID | `string` | No | — | The app identifier. |
| — App URI Path | `string` | No | — | The URI path for the app deep link. |
| — Install Type | `string` | No | — | The install type for the deep link. |
| — Install URL | `string` | No | — | The install URL for the deep link. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Authentication | `options` | No | `accessToken` | The authentication method to use. Decides which of the two Bitly credentials the node uses. |
| | | | | Options: `accessToken`, `oAuth2` |
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One output item per input item. Bitly's response for the operation — the bitlink record — is merged into the item JSON at the top level, so the incoming fields stay addressable alongside the link details. Binary data is forwarded.

All three operations return the same kind of record: the bitlink's identifier, its short and long URLs, and the metadata Bitly holds for it (title, tags, archived state, group, and any deep links). `create` returns the newly minted link, `get` returns the link as it stands, and `update` returns it as it is after the change — so an update can be read back immediately without a follow-up `get`.

Because the merge happens at the top level, an incoming item field whose name collides with a Bitly response key is overwritten. Rename such fields upstream if you need both.

## Usage Examples

- Shorten a URL using Bitly
- Create a bitlink with a custom domain
- Get details of an existing bitlink
- Update the title of a bitlink
- Archive a bitlink

## Example Configuration

Shorten a URL carried on the item:

```json
{
  "type": "bitly",
  "parameters": {
    "authentication": "accessToken",
    "resource": "link",
    "operation": "create",
    "longUrl": "{{ $json.url }}"
  }
}
```

Create a branded, tagged campaign link in a specific group:

```json
{
  "type": "bitly",
  "parameters": {
    "authentication": "accessToken",
    "resource": "link",
    "operation": "create",
    "longUrl": "{{ $json.landingPage }}",
    "additionalFields": {
      "domain": "bit.ly",
      "group": "Ba1bc23dE4F",
      "tags": "holiday, email-campaign",
      "title": "{{ $json.campaignName }}"
    }
  }
}
```

Attach a mobile deep link to a new bitlink:

```json
{
  "type": "bitly",
  "parameters": {
    "resource": "link",
    "operation": "create",
    "longUrl": "{{ $json.url }}",
    "deeplink": {
      "deeplinkUi": [
        {
          "appId": "com.example.mobileapp",
          "appUriPath": "/special-offer",
          "installType": "promote_install",
          "installUrl": "https://apps.apple.com/app/example-app"
        }
      ]
    }
  }
}
```

Read an existing bitlink back:

```json
{
  "type": "bitly",
  "parameters": {
    "resource": "link",
    "operation": "get",
    "id": "{{ $json.bitlink }}"
  }
}
```

Retitle a link and point it somewhere new:

```json
{
  "type": "bitly",
  "parameters": {
    "resource": "link",
    "operation": "update",
    "id": "{{ $json.bitlink }}",
    "updateFields": {
      "title": "Extended Holiday Campaign",
      "longUrl": "{{ $json.newDestination }}",
      "archived": false
    }
  }
}
```

### 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

Shorten, retrieve, and update URLs using the Bitly link management API with access token or OAuth2 authentication.

- **The Bitlink parameter is the short link itself**, not a numeric ID — `bit.ly/22u3ypK` or `yourdomain.co/holiday24`.
- **Tags are written as one comma-separated string** and split into individual tags for you. On update they replace the link's existing tags rather than adding to them.
- **Group expects a GUID**, not the group's display name. Find it in the Bitly app under Profile > Groups.
- **Deeplinks accepts multiple entries**, so one bitlink can carry deep links for more than one app.
- **Update only sends what you fill in.** Fields left out of Update Fields are not modified.
- **Authentication picks the credential.** Set it to `accessToken` for a personal API token, or `oAuth2` to act through a connected Bitly account.