Reference · Tools
Bitly
Shorten, retrieve, and update URLs using the Bitly API
The Bitly node lets you create shortened links, fetch details about existing bitlinks, and update link metadata directly from a BusyBot workflow. You can use it to automatically generate branded short URLs whenever a new piece of content is published, complete with tags, custom domains, and deep link routing. It connects via a personal access token or OAuth2.
- Node type
- Action
- Parameters
- 11
- Outputs
- Output, Error
- Credentials
- Bitly API (Access Token) , Bitly OAuth2
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 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:
{
"type": "bitly",
"parameters": {
"authentication": "accessToken",
"resource": "link",
"operation": "create",
"longUrl": "{{ $json.url }}"
}
}
Create a branded, tagged campaign link in a specific group:
{
"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:
{
"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:
{
"type": "bitly",
"parameters": {
"resource": "link",
"operation": "get",
"id": "{{ $json.bitlink }}"
}
}
Retitle a link and point it somewhere new:
{
"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/22u3ypKoryourdomain.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
accessTokenfor a personal API token, oroAuth2to act through a connected Bitly account.
Frequently asked questions
What do I put in the 'Bitlink' field — the short URL or some kind of ID?
You enter the short link itself, such as `bit.ly/22u3ypK` or `yourdomain.co/holiday24`. There is no separate numeric ID. If you're retrieving or updating an existing link, copy the short URL exactly as it appears in Bitly.
When I update a bitlink's tags, will the new tags be added to the existing ones?
No — tags are replaced, not merged. Whatever you supply in the tags field on an Update operation becomes the complete tag set for that link. If you want to keep existing tags, you need to fetch them first and include them along with any new ones in the update.
What happens to fields I leave blank on an Update?
Only the fields you explicitly fill in are sent to Bitly. Any field left empty in the Update Fields section is ignored and the corresponding link property stays unchanged. This means you can safely update just the title or just the tags without touching anything else.
What's the difference between the 'Access Token' and 'OAuth2' credential options?
Setting Authentication to `accessToken` uses a personal Bitly API token tied directly to your account — straightforward for personal automation. Choosing `oAuth2` authenticates through a connected Bitly account using the OAuth2 flow, which is more appropriate when acting on behalf of another user or building a multi-user integration.
Where do I find the Group GUID that the Group field expects?
The Group field requires a GUID (a string like `Ba1bc23dE4F`), not the human-readable group name you see in the Bitly dashboard. You can find it in the Bitly app under Profile > Groups. Using the display name instead of the GUID will cause the request to fail.
Build with the Bitly node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Bitly API (Access Token) credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.