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.

agentic_traffic breaks down clicks from AI agents and assistants (ChatGPT, Claude, ...) by agent. These are counted separately from clicks, so they are not a subset of the click totals.

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 | agentic_traffic)
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?"

"Which AI agents have been visiting bit.ly/ABC123?"


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_update_group - Rename a group or replace the custom domains it can shorten links with

bsds replaces the group's current custom domains: read the current list with bitly_get_group_details and pass it back with the new domain appended; a domain omitted from the list is detached. Only verified domains of the group's organization can be attached. Requires a group admin.

Parameters:

group_guid (required)
name (optional; new group name)
bsds (optional; the complete list of custom domains for the group; [] detaches all)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Let group Bg123def456 use links.example.com"

"Rename group Bg123def456 to 'Marketing'"


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_update_group_preferences - Set a group's default domain for new links

The domain must be bit.ly or a custom domain already attached to the group (attach one with bitly_update_group). Requires a group admin.

Parameters:

group_guid (required)
domain_preference (required; e.g. 'links.example.com' or 'bit.ly')
response_format (optional; "text" (default) or "json")

Usage Examples:

"Make links.example.com the default domain for group Bg123def456"


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

A custom domain replaces bit.ly in short links. To connect a domain the organization owns: bitly_prevalidate_custom_domain, then bitly_create_custom_domain, then bitly_get_custom_domain_dns for the records to create at the registrar. To get a new domain instead, at no cost under the plan's complimentary domain allowance: bitly_search_available_domains, then bitly_get_domain_agreements, then bitly_create_complimentary_domain after the user accepts the agreements. Bitly sets up the DNS of a registered domain itself. DNS verification is asynchronous and can take 24 to 48 hours; no tool waits for it, so read the state later with bitly_get_custom_domain_details. Once a domain is verified, attach it to a group with bitly_update_group and make it the group's default with bitly_update_group_preferences. Connecting, registering, or changing a domain, listing an organization's domains, and reading a domain that is not yet attached to a group (every pending domain) require an organization admin. Members of a group can read the details of a domain attached to that group, and any member of the organization can run the DNS check.

bitly_get_custom_domains - List the verified custom domains the user can shorten links with

The member view: verified domains only, across every organization and group, with no setup state. For an organization's domains with their verification status, use bitly_get_organization_custom_domains.

Parameters:

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

Usage Examples:

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


bitly_get_organization_custom_domains - List an organization's custom domains with verification status, attached groups, and settings

Includes domains still being set up. validation_status is pending (DNS not verified yet), ok (ready for new links), or error: for a domain that never verified the reason is in validation_error; for a verified domain whose DNS later broke it is in ssl_configuration_error. Requires an organization admin.

Parameters:

organization_guid (optional; omit to list the domains of every organization the caller administers)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Show the custom domains for organization Oa1bcd234eF and whether they are verified"

"Has my custom domain finished verifying?"


bitly_get_custom_domain_details - Get one custom domain's verification status, attached groups, and settings

Works for a domain still being set up, so use it to check whether a newly added domain has verified yet.

Parameters:

custom_domain (required; e.g. 'links.example.com')
response_format (optional; "text" (default) or "json")

Usage Examples:

"What is the status of links.example.com?"


bitly_prevalidate_custom_domain - Check that a domain the user owns can be connected, without creating anything

Catches a malformed, reserved, or blocklisted domain, one held by another Bitly account, and an organization at its custom domain limit. Safe to call repeatedly; run it before bitly_create_custom_domain.

Parameters:

custom_domain (required; a subdomain ('links.example.com') or root domain ('example.link'))
organization_guid (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Can I use links.example.com as a custom domain for organization Oa1bcd234eF?"


bitly_create_custom_domain - Connect a domain the user owns to an organization and queue its DNS verification

Afterwards call bitly_get_custom_domain_dns for the records to create at the registrar. Verification is asynchronous (up to 24 to 48 hours after the records propagate) and the domain reads pending until it completes. Calling this again for a domain already verified in the organization re-requests verification, for example after fixing DNS on a domain in error. Each organization has a single pending slot: adding a second domain before the first verifies replaces the first claim.

Parameters:

custom_domain (required; a subdomain ('links.example.com') or root domain ('example.link'))
organization_guid (required)
group_guids (optional; groups that may shorten with the domain; omit to attach later with bitly\_update\_group)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Add links.example.com as a custom domain for organization Oa1bcd234eF"


bitly_get_custom_domain_dns - Get the DNS records a custom domain needs, the records resolving now, and whether they match

A subdomain needs one CNAME; a root domain needs two A records. Answers only for a domain already added to the organization (pending counts). Empty current records right after creating them usually mean DNS has not propagated yet.

Parameters:

custom_domain (required; e.g. 'links.example.com')
organization_guid (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"What DNS records do I need to create for links.example.com?"

"Are the DNS records for links.example.com correct yet?"


bitly_search_available_domains - Find new domains the organization can register as its complimentary custom domain

Every result was available to register when the search ran, at no cost under the plan's complimentary domain allowance. Each search checks the registrar, so results can change between calls. For a domain the user already owns, use bitly_prevalidate_custom_domain.

Parameters:

query (required; a keyword ('acme') or a full domain ('acme.link'), at most 32 bytes)
organization_guid (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Find me a free custom domain for Acme"

"Is acme.link available as a custom domain?"


bitly_get_domain_agreements - Get the agreements the user must accept before a domain is registered

Returns Bitly's Domain Name Use Agreement and the title, link, and key of each registrar agreement. Show the user every title and link and get an explicit acceptance before bitly_create_complimentary_domain.

Parameters:

domain (required; a root domain, e.g. 'acme.link')
organization_guid (required)
response_format (optional; "text" (default) or "json")

Usage Examples:

"What do I have to agree to before registering acme.link?"


bitly_create_complimentary_domain - Register a new domain for the organization as its complimentary custom domain

Bitly registers the domain at no cost and sets up its DNS, so there are no records to create. The registration cannot be undone and uses up the organization's complimentary domain allowance. It also replaces a domain the organization is still connecting. The user must first accept Bitly's Domain Name Use Agreement and the registrar agreements. Setup is asynchronous and can take 24 to 48 hours; check it with bitly_get_custom_domain_details.

Parameters:

domain (required; a root domain from bitly\_search\_available\_domains)
organization_guid (required)
agreement_keys (required; every key from bitly\_get\_domain\_agreements, sent only after the user accepts)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Register acme.link as the custom domain for organization Oa1bcd234eF"


bitly_update_custom_domain - Update a verified custom domain's redirects and HTTPS/HSTS settings

Only the fields sent change. A domain that is not yet verified returns CUSTOM_DOMAIN_NOT_VERIFIED.

Parameters:

custom_domain (required; e.g. 'links.example.com')
root_redirect (optional; URL for visitors to the bare domain; '' clears it)
wildcard_redirect (optional; URL for unknown or expired paths; '' clears it)
https_enabled (optional; serve links over HTTPS)
hsts_enabled (optional; send the Strict-Transport-Security header)
upgrade_insecure_requests (optional; send the upgrade-insecure-requests header)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Redirect links.example.com to https://www.example.com when someone visits it without a path"

"Turn on HSTS for links.example.com"


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"


Bitly Sites

Bitly Sites are link-in-bio landing pages (microsites) reachable at a short URL. Newly created sites and edits are drafts until published with bitly_publish_site. Site analytics are served by a single bitly_get_site_analytics tool that takes a dataset and a dimension.

bitly_create_site - Create a new, empty Bitly Site (link-in-bio page) for a group at a short URL

The new site is a draft with no blocks. Add content with bitly_create_site_block, style it with bitly_update_site_appearance, then publish it with bitly_publish_site.

Parameters:

group_guid (required)
uri (required; keyword ('mysite'), 'domain/keyword', or full 'domain/m/keyword'; '/m/' is added automatically and a bare keyword assumes bit.ly)
display_name (optional; defaults to a system value when omitted)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Create a Bitly Site at bit.ly/mysite in group Bg123def456"


bitly_get_site - Get a Bitly Site's configuration: URL, status, display name, description, button count, and attached QR Code

Parameters:

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

Usage Examples:

"Show the details for site M1234567890"


bitly_get_group_sites - List the Bitly Sites in a group with URL filtering and pagination

Parameters:

group_guid (required)
sites_url_param (optional; filter by URL substring)
size (optional; results per page (default 50, max 100))
search_after (optional; pagination cursor from the previous response)
response_format (optional; "text" (default) or "json")

Usage Examples:

"List the Bitly Sites in group Bg123def456"


bitly_update_site - Update a Bitly Site's URI, display name, description, or attach a QR Code

Only the fields you send change; a present empty string ("") clears display_name/description. Changing the URI creates a redirect from the old one.

Parameters:

site_id (required)
uri (optional; keyword ('mysite'), 'domain/keyword', or full 'domain/m/keyword'; '/m/' is added automatically and a bare keyword assumes bit.ly)
display_name (optional; pass "" to clear it)
description (optional; pass "" to clear it)
qr_code_id (optional; attach a QR Code created with bitly\_create\_qr\_code; the site must not already have one)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Rename site M1234567890's display name to 'My Links'"

"Attach QR Code QR123456 to site M1234567890"


bitly_delete_site - Deactivate (delete) a Bitly Site, taking the live site down

Parameters:

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

Usage Examples:

"Delete Bitly Site M1234567890"


bitly_publish_site - Publish a Bitly Site's draft so the current edits go live

Parameters:

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

Usage Examples:

"Publish site M1234567890"


bitly_discard_site_draft - Discard a Bitly Site's unpublished draft, reverting to the published version

Parameters:

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

Usage Examples:

"Discard the unpublished draft for site M1234567890"


bitly_clone_site - Clone a live Bitly Site into a new draft at a different URI

Parameters:

site_id (required)
uri (required; keyword, 'domain/keyword', or full 'domain/m/keyword' (must differ from the source); '/m/' is added automatically and a bare keyword assumes bit.ly)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Clone site M1234567890 to bit.ly/mysite-copy"


bitly_get_site_templates - List Bitly Site templates that can be applied to a site, optionally filtered by category

Parameters:

category (optional; e.g. 'Link-in-bio', 'Digital business card', 'Image gallery')
response_format (optional; "text" (default) or "json")

Usage Examples:

"List the available Bitly Site templates"


bitly_apply_site_template - Apply a template's content, appearance, and blocks to a Bitly Site

Parameters:

site_id (required)
template_guid (required; from bitly\_get\_site\_templates)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Apply template Mt123456 to site M1234567890"


bitly_update_site_appearance - Replace a Bitly Site's appearance: theme, layout, fonts, and colors

This is a full replacement (PUT) of the appearance object, so include every field you want set. Fetch the current values with bitly_get_site (response_format "json") first.

Parameters:

site_id (required)
appearance (required; object; theme_id, layout, font, colors, header_appearance, etc.)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Set site M1234567890's background color to #000000 and text color to #FFFFFF"


bitly_create_site_container - Create a container (grid or carousel) on a Bitly Site to group content blocks

Parameters:

site_id (required)
type (required; grid | carousel)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Add a carousel to site M1234567890"


bitly_create_site_block - Add a content block to a Bitly Site: a bitlink button, social icon, YouTube video, image, digital business card, or text block

For a YouTube block, resolve the video with bitly_prevalidate_site_button first. To nest the block, create a container with bitly_create_site_container and pass its ID as parent.

Parameters:

site_id (required)
content_type (required; bitlink | social | youtubeVideo | image | digital_business_card | text_block; block type; grid/carousel containers are created with bitly\_create\_site\_container)
content (required; object; shape depends on content_type)
appearance (optional; object; text_block only)
schedule_start (optional; RFC 3339 timestamp)
schedule_end (optional; RFC 3339 timestamp)
is_active (optional; defaults to true (visible) when omitted)
is_pinned (optional)
parent (optional; container block ID to nest inside)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Add a bitlink button linking to bit.ly/ABC123 titled 'Shop now' to site M1234567890"


bitly_update_site_block - Update an existing content block on a Bitly Site, replacing its content (and text-block appearance)

The block type is taken from the stored block and cannot be changed. Fetch the block's ID with bitly_get_site.

Parameters:

site_id (required)
block_id (required; ID of the block to update; find it with bitly\_get\_site)
content (required; object; shape depends on the block's type)
appearance (optional; object; text_block only)
schedule_start (optional; RFC 3339 timestamp)
schedule_end (optional; RFC 3339 timestamp)
is_active (optional)
is_pinned (optional)
parent (optional; container block ID to nest inside)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Update the text of text block L123456 on site M1234567890"


bitly_delete_site_block - Delete a block of any type from a Bitly Site: a bitlink button, social icon, YouTube video, image, digital business card, text block, or a grid/carousel container

Fetch the block's ID with bitly_get_site.

Parameters:

site_id (required)
block_id (required; ID of the block to delete; find it with bitly\_get\_site)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Delete block L123456 from site M1234567890"


bitly_prevalidate_site_button - Prevalidate button content (a YouTube video) before adding it to a Bitly Site

Returns the resolved video URL, title, and thumbnail to use when creating a youtubeVideo content block with bitly_create_site_block.

Parameters:

site_id (required)
button_type (required; youtubeVideo)
video_id (required; the YouTube video ID to resolve)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Prevalidate YouTube video dQw4w9WgXcQ for site M1234567890"


bitly_create_site_image - Register an already-uploaded image for use on a Bitly Site

Parameters:

site_id (required)
image_guid (required; GUID of the previously uploaded image)
url (required; URL of the uploaded image)
image_use (required; how the image is used (avatar, background, etc.))
crop (optional; JSON-encoded crop rectangle)
response_format (optional; "text" (default) or "json")

Usage Examples:

"Register uploaded image Img123 as the avatar for site M1234567890"


bitly_delete_site_redirect - Delete a redirect from a Bitly Site

Redirects are created automatically when a site's URI changes (see bitly_update_site); this removes one, identified by its old domain and keyword.

Parameters:

site_id (required)
domain (required; the redirect's domain, e.g. 'bit.ly')
keyword (required; the redirect's keyword (path after the domain))
response_format (optional; "text" (default) or "json")

Usage Examples:

"Delete the redirect bit.ly/old-uri from site M1234567890"


bitly_get_site_analytics - Analytics for a single Bitly Site

Takes a dataset selecting what to measure. Valid dimensions depend on the dataset: page_views (countries, cities, devices, referrers, over_time, summary); button_clicks (countries, cities, devices, over_time, top); dbc_downloads (over_time); overview (summary); link_performance (summary).

Parameters:

site_id (required)
dataset (required; button_clicks | dbc_downloads | link_performance | overview | page_views)
dimension (required; countries | cities | devices | referrers | over_time | summary | top)
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:

"How many page views did site M1234567890 get in the last 7 days?"

"Which countries viewed site M1234567890?"

"What are the top-performing buttons on site M1234567890?"