Bitly MCP connector
OAuth 2.0 marketingsalescrmConnect with Bitly MCP for URL shortening, link analytics, and branded links.
Bitly MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'bitlymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Bitly MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'bitlymcp_get_custom_domains',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "bitlymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Bitly MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="bitlymcp_get_custom_domains",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Create and manage short links — shorten URLs, create links with custom back-halves, update link metadata, and delete links
- Create and manage QR codes — generate QR codes for links, update QR code settings, and retrieve QR code images
- Analyze link performance — get click summaries, engagement metrics, and breakdowns by city, country, device, referrer, and referring domain
- Analyze QR code scans — get scan summaries and breakdowns by city, country, device, and browser
- Analyze group-level engagement — query top links, clicks, scans, and engagement trends across all links in a group
- Manage account structure — retrieve organizations, groups, custom domains, and user details
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
bitlymcp_bulk_upload_file
#
Upload a CSV or XLSX file to the signed URL returned by bulk_upload_validate. Pass the upload_url, headers, and file_content from the validate response. Requires an enterprise plan. 6 params
Upload a CSV or XLSX file to the signed URL returned by bulk_upload_validate. Pass the upload_url, headers, and file_content from the validate response. Requires an enterprise plan.
file_content string required The actual file content (CSV or XLSX file bytes as a string) from the conversation context. headers object required The headers map returned from bulk_upload_validate (as a JSON object with string keys and string values). upload_url string required The signed upload URL returned from bulk_upload_validate. _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. content_type string optional MIME type for the upload. e.g. text/csv for CSV files or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet for XLSX. response_format string optional 'text' (default) or 'json' bitlymcp_bulk_upload_validate
#
Validate a bulk upload request and get a signed upload URL. upload_type: 'link' (links only), 'qr_code' (QR codes, requires template_id), 'coupled_link' (both, requires template_id). Template IDs: 'QTDTmplWLogo' (with Bitly logo), 'QTDTmplNLogo' (without). Returns upload_url and headers for use with bulk_upload_file. Requires an enterprise plan. 7 params
Validate a bulk upload request and get a signed upload URL. upload_type: 'link' (links only), 'qr_code' (QR codes, requires template_id), 'coupled_link' (both, requires template_id). Template IDs: 'QTDTmplWLogo' (with Bitly logo), 'QTDTmplNLogo' (without). Returns upload_url and headers for use with bulk_upload_file. Requires an enterprise plan.
filename string required Logical filename for the bulk upload (for example, "contacts.csv" or "links.xlsx"). upload_type string required Type of bulk upload. Must be exactly one of: "link", "qr_code", or "coupled_link". _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. domain string optional Optional short domain to use for created links. If omitted, backend defaults and validation apply. group_guid string optional Optional group GUID to associate with this bulk upload. If omitted, the default group may be used. response_format string optional 'text' (default) or 'json' template_id string optional QR code template ID. Required for qr_code and coupled_link uploads. Use 'QTDTmplWLogo' to include Bitly logo, 'QTDTmplNLogo' to exclude it. bitlymcp_create_qr_code
#
Create a QR code linked to a URL. Supports visual customizations (colors, patterns). Use create_short_link_with_qr to create both a short link and QR code in one step. 8 params
Create a QR code linked to a URL. Supports visual customizations (colors, patterns). Use create_short_link_with_qr to create both a short link and QR code in one step.
group_guid string required The GUID of the group to create the QR code in long_url string optional The destination URL for the QR code. Required if bitlink_id is not provided. _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. archived boolean optional Whether the QR code should be archived (default: false) bitlink_id string optional Existing short link ID to use as destination render_customizations object optional Visual customizations for the QR code as a JSON object. e.g. {"dot_pattern_color": "#EF8000", "dot_pattern_type": "rounded", "background_color": "#ffffff"}. Supports corner colors, gradient, and logo configuration. response_format string optional 'text' (default) or 'json' title string optional The title of the QR code bitlymcp_create_short_link
#
Create a Bitly short link from a long URL. Optionally set a custom back-half (keyword), title, tags, domain, or group. Returns the short link ID for use with other tools. 9 params
Create a Bitly short link from a long URL. Optionally set a custom back-half (keyword), title, tags, domain, or group. Returns the short link ID for use with other tools.
long_url string optional The URL to be shortened. Must be a valid HTTP or HTTPS URL. Required if bitlink_id is not provided. _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. bitlink_id string optional An existing Bitly link to add a custom back-half to. Use with keyword parameter. Required if long_url is not provided. domain string optional Custom short domain to use (e.g., 'bit.ly', 'custom-domain.com'). Uses group default if not specified. group_guid string optional GUID of the group to create the short link in. Uses user's default group if not specified. keyword string optional Custom back-half for the short link (e.g. 'summer-sale' creates 'bit.ly/summer-sale'). Must be unique. Omit for a random hash. response_format string optional 'text' (default) or 'json' tags array optional Array of strings to tag the short link for organization (e.g., ['campaign', 'social-media']) title string optional Custom title for the short link to help with organization and identification. bitlymcp_create_short_link_with_qr
#
Create a short link and a QR code for the same URL in one step. The QR code is tied to the new short link. 12 params
Create a short link and a QR code for the same URL in one step. The QR code is tied to the new short link.
group_guid string required The unique identifier of the group (workspace) long_url string optional URL to shorten. Required unless bitlink_id is provided (same rules as create_short_link). _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. archived boolean optional Whether the QR code should be archived (default: false). bitlink_id string optional The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') domain string optional Custom short domain (e.g. bit.ly). keyword string optional Custom back-half for the short link. qr_title string optional Title for the QR code; defaults to the link title when omitted. render_customizations object optional Visual customizations for the QR code as a JSON object. e.g. {"dot_pattern_color": "#EF8000", "dot_pattern_type": "rounded", "background_color": "#ffffff"}. Supports corner colors, gradient, and logo configuration. response_format string optional 'text' (default) or 'json' tags array optional Tags for the short link. title string optional Title for the short link. bitlymcp_delete_short_link
#
Permanently delete a non-customized short link. Cannot be undone. Analytics data is preserved. 3 params
Permanently delete a non-customized short link. Cannot be undone. Analytics data is preserved.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_expand
#
Look up the original long URL behind any Bitly short link. Returns destination URL and creation timestamp. 3 params
Look up the original long URL behind any Bitly short link. Returns destination URL and creation timestamp.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_custom_domains
#
List all custom domains (branded short domains) available to the user. These can be used instead of 'bit.ly' when creating links. 2 params
List all custom domains (branded short domains) available to the user. These can be used instead of 'bit.ly' when creating links.
_meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_custom_link_details
#
Get metadata and override history for a custom link (vanity URL). Use the custom_bitlink field (e.g. yourdomain.com/path). 3 params
Get metadata and override history for a custom link (vanity URL). Use the custom_bitlink field (e.g. yourdomain.com/path).
custom_bitlink string required The short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_group_details
#
Get metadata for a specific group by GUID, including name, organization, creation date, and BSDs. 3 params
Get metadata for a specific group by GUID, including name, organization, creation date, and BSDs.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_group_engagements_cities
#
Get engagement metrics (clicks + scans) for all links in a group, broken down by city. Requires a paid Bitly plan. 7 params
Get engagement metrics (clicks + scans) for all links in a group, broken down by city. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_engagements_countries
#
Get engagement metrics (clicks + scans) for all links in a group, broken down by country. Requires a paid Bitly plan. 7 params
Get engagement metrics (clicks + scans) for all links in a group, broken down by country. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_engagements_devices
#
Get engagement metrics (clicks + scans) for all links in a group, broken down by device type. Requires a paid Bitly plan. 7 params
Get engagement metrics (clicks + scans) for all links in a group, broken down by device type. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_engagements_over_time
#
Get engagement metrics (clicks + scans) for all links in a group as a time series. Requires a paid Bitly plan. 6 params
Get engagement metrics (clicks + scans) for all links in a group as a time series. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_engagements_referrers
#
Get engagement metrics for all links in a group broken down by referrer source (Facebook, Google, direct, etc.). Requires a paid Bitly plan. 7 params
Get engagement metrics for all links in a group broken down by referrer source (Facebook, Google, direct, etc.). Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_engagements_referring_networks
#
Get engagement metrics for all links in a group broken down by referring network category. Requires a paid Bitly plan. 7 params
Get engagement metrics for all links in a group broken down by referring network category. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_engagements_top
#
Get top-performing links in a group ranked by total engagements. Requires a paid Bitly plan. 7 params
Get top-performing links in a group ranked by total engagements. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_clicks_cities
#
Get click metrics for all links in a group, broken down by city. Requires a paid Bitly plan. 7 params
Get click metrics for all links in a group, broken down by city. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_clicks_countries
#
Get click metrics for all links in a group, broken down by country. Requires a paid Bitly plan. 7 params
Get click metrics for all links in a group, broken down by country. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_clicks_devices
#
Get click metrics for all links in a group, broken down by device OS (iOS, Android, Windows, etc.). Requires a paid Bitly plan. 7 params
Get click metrics for all links in a group, broken down by device OS (iOS, Android, Windows, etc.). Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_clicks_over_time
#
Get click metrics for all links in a group as a time series. Requires a paid Bitly plan. 6 params
Get click metrics for all links in a group as a time series. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_clicks_referrers
#
Get click metrics for all links in a group broken down by referrer source. Requires a paid Bitly plan. 7 params
Get click metrics for all links in a group broken down by referrer source. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_clicks_top
#
Get top-performing links in a group ranked by total clicks. Requires a paid Bitly plan. 7 params
Get top-performing links in a group ranked by total clicks. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_scans_cities
#
Get QR scan metrics for all links in a group, broken down by city. Requires a paid Bitly plan. 7 params
Get QR scan metrics for all links in a group, broken down by city. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_scans_countries
#
Get QR scan metrics for all links in a group, broken down by country. Requires a paid Bitly plan. 7 params
Get QR scan metrics for all links in a group, broken down by country. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_scans_over_time
#
Get QR scan metrics for all links in a group as a time series. Requires a paid Bitly plan. 6 params
Get QR scan metrics for all links in a group as a time series. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_links_scans_top
#
Get top-performing links in a group ranked by total QR scans. Requires a paid Bitly plan. 7 params
Get top-performing links in a group ranked by total QR scans. Requires a paid Bitly plan.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_group_qr_codes
#
List QR codes in a group with optional search and pagination. 7 params
List QR codes in a group with optional search and pagination.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. archived string optional Filter by archived status: 'on' (archived only), 'off' (non-archived only), 'both' (all) query string optional Search term to filter QR codes by title or destination URL response_format string optional 'text' (default) or 'json' search_after string optional Pagination cursor for retrieving next page of results size string optional Number of QR codes to return (default: 50, max: 100) bitlymcp_get_group_short_links
#
List links in a group with optional filtering by query or date range, and pagination. 9 params
List links in a group with optional filtering by query or date range, and pagination.
group_guid string required The unique identifier of the group (workspace) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. archived string optional Filter by archived status: 'on' (archived only), 'off' (non-archived only), 'both' (all) created_after string optional Filter links created after this timestamp (ISO 8601 format) created_before string optional Filter links created before this timestamp (ISO 8601 format) query string optional Search term to filter links by title, destination URL, or short URL response_format string optional 'text' (default) or 'json' search_after string optional Pagination cursor for retrieving next page of results size string optional Number of links to return (default: 50, max: 100) bitlymcp_get_group_short_links_sorted
#
List links in a group ranked by click performance. Requires sort='clicks'. Supports time-range filtering. 8 params
List links in a group ranked by click performance. Requires sort='clicks'. Supports time-range filtering.
group_guid string required The unique identifier of the group (workspace) sort string required Sort method for the results. Currently supported: 'clicks' (rank by click performance) _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_groups
#
List all groups (workspaces) the authenticated user has access to. Groups contain links and QR codes. Use the returned group_guid with other tools. 3 params
List all groups (workspaces) the authenticated user has access to. Groups contain links and QR codes. Use the returned group_guid with other tools.
_meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. organization_guid string optional Optional organization GUID to filter groups by specific organization. If provided, only groups belonging to this organization will be returned. response_format string optional 'text' (default) or 'json' bitlymcp_get_organizations
#
List all organizations the authenticated user belongs to, including org GUIDs, names, tier, and associated custom domains. 2 params
List all organizations the authenticated user belongs to, including org GUIDs, names, tier, and associated custom domains.
_meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_qr_code
#
Get metadata for a QR code by qrcode_id: destination URL, type, customizations, and creation date. 3 params
Get metadata for a QR code by qrcode_id: destination URL, type, customizations, and creation date.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_qr_code_image
#
Get the QR code image as a base64 data URI in SVG (default) or PNG format. Note: most AI UIs cannot render raw image data. 4 params
Get the QR code image as a base64 data URI in SVG (default) or PNG format. Note: most AI UIs cannot render raw image data.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. format string optional Image format: 'svg' or 'png' (default: svg) response_format string optional 'text' (default) or 'json' bitlymcp_get_qr_scan_metrics
#
Get QR scan metrics as a time series for a specific QR code. Requires a paid Bitly plan. 6 params
Get QR scan metrics as a time series for a specific QR code. Requires a paid Bitly plan.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_qr_scan_summary
#
Get total scan count for a specific QR code over a time range. Requires a paid Bitly plan. 6 params
Get total scan count for a specific QR code over a time range. Requires a paid Bitly plan.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_qr_scans_by_browser
#
Get QR scan metrics for a specific QR code broken down by browser. Requires a paid Bitly plan. 7 params
Get QR scan metrics for a specific QR code broken down by browser. Requires a paid Bitly plan.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_qr_scans_by_city
#
Get QR scan metrics for a specific QR code broken down by city. Requires a paid Bitly plan. 7 params
Get QR scan metrics for a specific QR code broken down by city. Requires a paid Bitly plan.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_qr_scans_by_country
#
Get QR scan metrics for a specific QR code broken down by country. Requires a paid Bitly plan. 7 params
Get QR scan metrics for a specific QR code broken down by country. Requires a paid Bitly plan.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_qr_scans_by_device
#
Get QR scan metrics for a specific QR code broken down by device OS. Requires a paid Bitly plan. 7 params
Get QR scan metrics for a specific QR code broken down by device OS. Requires a paid Bitly plan.
qrcode_id string required The unique identifier of the QR code _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_get_short_link_details
#
Get full details for a short link: destination URL, title, tags, creation date, and archived status. 3 params
Get full details for a short link: destination URL, title, tags, creation date, and archived status.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_get_user
#
Get the authenticated user's profile including email addresses, 2FA status, and default group GUID. 2 params
Get the authenticated user's profile including email addresses, 2FA status, and default group GUID.
_meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' bitlymcp_link_cities
#
Get click metrics for a specific short link broken down by city. 7 params
Get click metrics for a specific short link broken down by city.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_clicks_summary
#
Get total click count for a specific short link over a time range. Returns aggregate clicks only, no time-series breakdown. 6 params
Get total click count for a specific short link over a time range. Returns aggregate clicks only, no time-series breakdown.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_countries
#
Get click metrics for a specific short link broken down by country. 7 params
Get click metrics for a specific short link broken down by country.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_devices
#
Get click metrics for a specific short link broken down by device type (mobile, desktop, tablet). 7 params
Get click metrics for a specific short link broken down by device type (mobile, desktop, tablet).
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_engagements
#
Get engagement metrics (clicks + QR scans) as a time series for a specific short link. 6 params
Get engagement metrics (clicks + QR scans) as a time series for a specific short link.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_engagements_summary
#
Get total engagement count (clicks + QR scans) for a specific short link. Returns aggregate only, no time-series breakdown. 6 params
Get total engagement count (clicks + QR scans) for a specific short link. Returns aggregate only, no time-series breakdown.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_metrics
#
Get click metrics and time-series data for a specific short link. Returns total clicks and per-period breakdown. 6 params
Get click metrics and time-series data for a specific short link. Returns total clicks and per-period breakdown.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_referrers
#
Get click metrics for a specific short link broken down by referrer source. 7 params
Get click metrics for a specific short link broken down by referrer source.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_link_referring_domains
#
Get click metrics for a specific short link broken down by referring domain. 7 params
Get click metrics for a specific short link broken down by referring domain.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. response_format string optional 'text' (default) or 'json' size string optional Maximum number of results to return (default varies) unit string optional Time granularity for metrics data: 'minute', 'hour', 'day', 'week', or 'month'. Determines how metrics are grouped by time. default: day unit_reference string optional ISO 8601 end timestamp for the time range. The range covers the last 'units' periods ending on this date. e.g. 2024-01-31T00:00:00+0000 units string optional Number of time periods to include (e.g., '7' with unit='day' returns 7 days of data). Defaults to 30 when not specified. bitlymcp_update_qr_code
#
Update a QR code's title, visual customizations, or archived status. 6 params
Update a QR code's title, visual customizations, or archived status.
qrcode_id string required The QR code ID to update _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. archived boolean optional Whether the QR code should be archived render_customizations object optional Visual customizations for the QR code as a JSON object. e.g. {"dot_pattern_color": "#EF8000", "dot_pattern_type": "rounded", "background_color": "#ffffff"}. Supports corner colors, gradient, and logo configuration. response_format string optional 'text' (default) or 'json' title string optional The new title for the QR code bitlymcp_update_short_link
#
Update a short link's title, tags, or archived status. Changing the destination URL requires a paid plan. 7 params
Update a short link's title, tags, or archived status. Changing the destination URL requires a paid plan.
bitlink_id string required The complete short link in 'domain/hash' format (e.g., 'bit.ly/ABC123' or 'custom-domain.com/keyword') _meta object optional Optional metadata about this request. Include user_prompt, caller_agent (e.g. claude), intent_classification, conversation_id. archived boolean optional Set to true to archive the short link, false to unarchive it. Archived links are hidden from most views but still work. long_url string optional New destination URL to redirect the short link to. Use this to change where the short link points. response_format string optional 'text' (default) or 'json' tags array optional Array of strings to replace the current tags. Pass empty array to remove all tags. Leave undefined to keep current tags. title string optional New title for the short link. Leave empty to keep current title unchanged.