MCP Tools Reference

A concise, skimmable catalog of Bitly MCP tools.

bitly_create_short_link - Create a compact, shareable link with advanced customization options

Parameters:

long_url (optional; required if bitlink_id not provided)
bitlink_id (optional; existing short link to add a custom back-half to)
domain (optional)
group_guid (optional)
title (optional)
tags (optional; string[])
keyword (optional; custom back-half for the short link)
dynamic_routing (optional; object[]; up to 10 rules; send visitors to different destinations by country, region, device, or OS)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Shorten https://example.com/very-long-product-page-url"

"Create a short link for https://example.com/spring-sale titled 'Spring Sale 2024' tagged 'marketing' and 'seasonal' using our custom domain"

"Create a custom short link bit.ly/summer-sale for https://example.com/sale"


bitly_create_short_link_with_qr - Create a short link and a QR Code that encodes it in a single step (one approval covers both)

Parameters:

group_guid (required)
bitlink_id (optional; existing short link to encode; required if long_url not provided)
long_url (optional; required if bitlink_id not provided)
domain (optional)
title (optional; used for the short link)
tags (optional; string[])
keyword (optional; custom back-half for the short link)
dynamic_routing (optional; object[]; up to 10 rules; applied to the short link)
qr_title (optional; defaults to the link title when omitted)
archived (optional; boolean)
render_customizations (optional; object; QR appearance)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Create a short link and matching QR Code for https://example.com/event in my marketing group"

"Make bit.ly/summer-sale for https://example.com/sale and generate a QR Code titled 'Summer Sale Flyer'"


bitly_get_short_link_details - Get complete short link details (title, destination, created, creator, tags, custom domains)

Parameters:

bitlink_id (required; the short link in 'domain/hash' form, e.g. 'bit.ly/ABC123')
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show me the full details for bit.ly/ABC123"


bitly_update_short_link - Update destination URL, title, archive state, tags, or dynamic routing rules

Parameters:

bitlink_id (required; the short link in 'domain/hash' form, e.g. 'bit.ly/ABC123')
long_url (optional)
title (optional)
archived (optional; boolean)
tags (optional; string[])
dynamic_routing (optional; object[]; up to 10 rules; replaces all existing rules, pass [] to remove them)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Archive bit.ly/ABC123"

"Update bit.ly/ABC123 with title 'Updated Campaign Link' and tags 'Q1-2024' and 'email-campaign'"

"Change the destination of bit.ly/ABC123 to https://example.com/new-page"


bitly_delete_short_link - Permanently delete a short link (unedited links only)

Parameters:

bitlink_id (required; the short link in 'domain/hash' form, e.g. 'bit.ly/ABC123')
response_format (optional; "text" (default) or "json")

Usage Examples:

"Delete bit.ly/ABC123 permanently"


bitly_get_link_destination - Look up where a short link points: its destination long URL plus basic metadata (works for any bitlink, including links you do not own)

Parameters:

bitlink_id (required; the short link in 'domain/hash' form, e.g. 'bit.ly/ABC123')
response_format (optional; "text" (default) or "json")

Usage Examples:

"What URL does bit.ly/ABC123 point to?"


Analytics

Analytics are served by three tools, one per subject. Each takes a dimension that selects the report: a facet breakdown (e.g. countries, cities, devices) or over_time (a time series). The single-link and QR Code tools also offer summary (totals); group analytics instead offers top (best-performing links) and has no group-level summary — for an overall group count, total the over_time series.

bitly_get_link_analytics - Analytics for a single short link

over_time and summary report click counts; engagements and engagements_summary report the same time ranges with a clicks/scans/button-clicks breakdown.

Parameters:

bitlink_id (required; the short link in 'domain/hash' form, e.g. 'bit.ly/ABC123')
dimension (required; countries | cities | devices | referrers | referring_domains | over_time | summary | engagements | engagements_summary)
unit (optional; minute | hour | day | week | month)
units (optional; number of periods; default 30)
unit_reference (optional; ISO timestamp ending the range)
size (optional; number)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Which countries clicked bit.ly/ABC123 in the last 7 days?"

"Show me metrics over time for bit.ly/ABC123"

"How many total engagements has bit.ly/ABC123 received?"


bitly_get_group_analytics - Analytics across all links in a group (workspace)

Takes a dataset selecting what to measure. Valid dimensions depend on the dataset:

DatasetDimensions
agentic_trafficsummary
clickscountries, cities, device_os, referrers, over_time, top
engagementscountries, cities, devices, referrers, referring_networks, over_time, top
qr_scanscountries, cities, over_time, top

devices is device form factor (mobile, desktop, ...); device_os is operating system (iOS, Android, Windows, ...).

agentic_traffic counts clicks from AI agents and assistants. It always returns a fixed 90-day total and ignores unit, units, and unit_reference.

Parameters:

group_guid (required)
dataset (required; agentic_traffic | clicks | engagements | qr_scans)
dimension (required; countries | cities | devices | device_os | referrers | referring_networks | over_time | summary | top; see matrix above)
unit (optional; minute | hour | day | week | month)
units (optional; number of periods; default 30)
unit_reference (optional; ISO timestamp ending the range)
size (optional; number)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Break down my group's QR scans by city"

"What are my top performing links this week?"

"How have my group's clicks trended over the last 30 days?"

"How much of my traffic came from AI agents?"


bitly_get_qr_code_analytics - Scan analytics for a single QR Code

Parameters:

qrcode_id (required)
dimension (required; countries | cities | device_os | browsers | over_time | summary)
unit (optional; minute | hour | day | week | month)
units (optional; number of periods; default 30)
unit_reference (optional; ISO timestamp ending the range)
size (optional; number)
response_format (optional; "text" (default) or "json")

Usage Examples:

"What operating systems scanned QR Code QR123456?"

"How many total scans does QR Code QR123456 have?"


QR Codes

bitly_create_qr_code - Create a new QR Code for a link

Parameters:

group_guid (required)
title (optional)
long_url (optional; destination to encode; required if bitlink_id not provided)
bitlink_id (optional; existing short link to encode; required if long_url not provided)
domain (optional)
archived (optional; boolean)
render_customizations (optional; object; foreground/background colors, gradients, frame, dot pattern)
expiration_at (optional; ISO 8601 "YYYY-MM-DDTHH:MM:SS+0000"; long_url-backed QR Codes only, on entitled accounts)
dynamic_routing (optional; object[]; up to 10 rules; decoupled (long_url-backed) QR Codes only)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Create a QR Code for bit.ly/ABC123 called 'Event Registration'"

"Create a QR Code for bit.ly/ABC123 titled 'Event Registration' in my marketing group"

"Create a QR Code for bit.ly/ABC123 with a blue foreground and white background"


bitly_get_qr_code - Get QR Code metadata

Parameters:

qrcode_id (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show details for QR Code QR123456"


bitly_get_qr_code_image - Return a QR Code's image as a base64 data URI (not a URL). Most agent UIs cannot render raw image data, so to view or download the image prefer the QR Code details page returned by bitly_get_qr_code and bitly_create_qr_code.

Parameters:

qrcode_id (required)
format (optional; svg | png; default "svg")
response_format (optional; "text" (default) or "json")

Usage Examples:

"Get the raw image data for QR Code QR123456 as a PNG"


bitly_update_qr_code - Update a QR Code's title, customizations, expiration, archived status, or dynamic routing rules

Parameters:

qrcode_id (required)
title (optional)
archived (optional; boolean)
render_customizations (optional; object; foreground/background colors, gradients, frame, dot pattern)
expiration_at (optional; ISO 8601 "YYYY-MM-DDTHH:MM:SS+0000"; pass "" to remove an existing expiration)
dynamic_routing (optional; object[]; up to 10 rules; decoupled (long_url-backed) QR Codes only)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Update QR Code QR123456 with title 'Updated Event QR' and archive it"

"Recolor QR Code QR123456 with a red foreground"


bitly_get_group_qr_codes - List QR Codes in a group with filtering and pagination

Parameters:

group_guid (required)
query (optional; search term)
archived (optional; on | off | both)
size (optional; results per page)
search_after (optional; pagination cursor from the previous response)
has_dynamic_routing (optional; on | off | both; filter to QR Codes with or without routing rules)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show QR Codes in group Bg123def456 that contain 'event'"


User & Organization

bitly_get_user - Get the authenticated user's profile

Parameters:

response_format (optional; "text" (default) or "json")

Usage Examples:

"Show my user profile"


bitly_get_organizations - List organizations the user can access

Parameters:

response_format (optional; "text" (default) or "json")

Usage Examples:

"List all organizations I can access"


bitly_get_groups - List groups (workspaces); optionally filter by organization

Parameters:

organization_guid (optional)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show all my groups"


bitly_get_group_details - Get a group's details, including its custom domains

Parameters:

group_guid (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Get details for group Bg123def456"


bitly_get_group_preferences - Get a group's preferences, including the default domain used when creating links for the group

Parameters:

group_guid (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"What is the default domain for group Bg123def456?"

"Show the preferences for my marketing group"


bitly_get_group_short_links - List links in a group with rich filtering

Parameters:

group_guid (required)
size (optional; results per page)
search_after (optional; pagination cursor from the previous response)
query (optional; search term)
tag (optional; string[]; links must carry every tag listed (AND))
created_before (optional; Unix timestamp)
created_after (optional; Unix timestamp)
archived (optional; on | off | both)
has_dynamic_routing (optional; on | off | both; filter to links with or without routing rules)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show links in group Bg123def456"

"Get the first 20 links in group Bg123def456 tagged 'campaign' created after 2024-01-01 (exclude archived)"


bitly_get_group_short_links_sorted - List group links sorted by performance

Parameters:

group_guid (required)
sort (required; clicks)
unit (optional; minute | hour | day | week | month)
units (optional; number of periods)
unit_reference (optional; ISO timestamp ending the range)
size (optional; number)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show top-performing links in group Bg123def456 by clicks over the last 30 days"


Custom Domains

bitly_get_custom_domains - List custom domains available to the user

Parameters:

response_format (optional; "text" (default) or "json")

Usage Examples:

"What custom domains can I use for shortening links?"


bitly_get_custom_link_details - Get custom link metadata and override history

Parameters:

custom_bitlink (required; a custom-keyword link, e.g. 'example.ly/spring-sale')
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show details for example.ly/spring-sale"


Bulk Uploads

bitly_bulk_upload_validate - Validate a bulk upload request and obtain a signed URL for uploading a .CSV or .XLSX file

Parameters:

filename (required)
upload_type (required; "link", "qr_code", or "coupled_link")
group_guid (optional)
domain (optional)
template_id (optional; required for "qr_code" and "coupled_link"; "QTDTmplWLogo" or "QTDTmplNLogo")
response_format (optional; "text" (default) or "json")

Usage Examples:

"Bulk upload links.csv into group Bg123def456"

"Bulk create QR Codes from qr-batch.xlsx using the no-logo template"


bitly_bulk_upload_file - Upload a file to the signed URL returned by bitly_bulk_upload_validate

Parameters:

upload_url (required; signed URL from the validate step)
headers (required; object; headers from the validate step)
file_content (required)
content_type (optional)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Upload the validated bulk file to complete the bulk request"


Data Export

bitly_export_data - Export link or QR data as a CSV, returned inline as a downloadable file

Parameters:

group_guid (required)
export_type (required; "link_engagements_timeseries", "link_engagements_batch", "links_list", or "qr_codes_list")
bitlinks (optional; string[]; fully qualified bitlinks; for the engagement exports)
unix_from_date (optional; "YYYY-MM-DD" UTC; required for "link_engagements_timeseries")
unix_to_date (optional; "YYYY-MM-DD" UTC)
include_metrics (optional; boolean; for "links_list" and "qr_codes_list" only)
filter (optional; object; required for "links_list" and "qr_codes_list")
response_format (optional; "text" (default) or "json")

Usage Examples:

"Export a CSV of all links in group Bg123def456"

"Export daily click totals for bit.ly/ABC123 over the last 30 days"