URL Shorteners — entry 002 of 14
Bitly
Bitly is one of the oldest and most widely used link-management platforms, shortening URLs to bit.ly links and tracking clicks, geography, referrers, and campaigns. Its v4 REST API authenticates with an OAuth 2.0 access token and covers link creation, custom back-halves, QR codes, and analytics, returning JSON. A limited free tier exists, with paid Core and Enterprise plans unlocking higher volumes, branded domains, and deeper metrics.
GreatAPIs Score
Auth quickstart
- Register an app / run the OAuth flow to obtain a bearer token.
- Send it as an Authorization header
Authorization: Bearer <token>
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Groups28
Groups are subdivisions within organizations. Every user will be in at least one group, and every shortened link will be in one group. Most actions on our API will be on behalf of a group. For example, when you shorten a link, it will be on behalf of a user and a group.
GET/groupsRetrieve Groups
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Groups |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}Retrieve a Group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Group |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/groups/{group_guid}Update a Group
application/json — GroupUpdate (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Group |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/citiesGet Click Metrics for a Group by City
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CityMetrics |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/clicksGet clicks by group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupClicks |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/codes/scans/citiesGet Scan Metrics for a Group by City
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CityMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/codes/scans/countriesGet Scan Metrics for a Group by Country
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/codes/scans/over_timeGet Scan Metrics for a Group Over Time
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupClicks |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/codes/scans/topGet Top Performing QR Codes for a Group
| Name | In | Required | Type |
|---|---|---|---|
decoupled | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | — |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/countriesGet Click Metrics for a Group by Country
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/devicesGet Click Metrics for a Group by Device Type
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | DeviceMetrics |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/engagements/over_timeGet Group Metrics Over Time
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupClicks |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/engagements/topGet Group Top Performing Links by Engagement
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | SortedLinks |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/groups/{group_guid}/exportsCreate an inline CSV export for a group
application/json — GroupExportRequestBody (required)
| Status | Description | Schema |
|---|---|---|
200 | OK | GroupExportResponse |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/feature_usageGet limit usage for a group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupFeatureUsage |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
GET/groups/{group_guid}/historical_usageGet historical usage for a group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupHistoricalUsage |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
GET/groups/{group_guid}/links/clicks/citiesGet Group Link Clicks by City
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CityMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/links/clicks/countriesGet Group Link Clicks by Country
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/links/clicks/devicesGet Group Link Clicks by Device
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | — |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/links/clicks/over_timeGet Group Link Clicks Over Time
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupClicks |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/links/clicks/referrersGet Group Link Clicks by Referrer
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/links/clicks/topGet Group Top Performing Links by Click
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | SortedLinks |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/preferencesRetrieve Group Preferences
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupPreferences |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/groups/{group_guid}/preferencesUpdate Group Preferences
application/json — GroupPreferences (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | GroupPreferences |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/referrersGet Click Metrics for a Group by Referrer
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/referring_networksGet Click Metrics for a Group by Referring Networks
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/shorten_countsRetrieve Group Shorten Counts
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Metrics |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/tagsRetrieve Tags by Group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Tags |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
Organizations5
Organizations are equivalent to a Bitly account. Every plan limit, group, and user is tied to an organization.
GET/organizationsRetrieve Organizations
| Name | In | Required | Type |
|---|---|---|---|
include_all | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Organizations |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/organizations/{organization_guid}Retrieve an Organization
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Organization |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/organizations/{organization_guid}/plan_limitsGet Plan Limits
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | PlanLimits |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/organizations/{organization_guid}/shorten_countsGet Shorten Counts for an Organization
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Metrics |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/organizations/{organization_guid}/shorten_counts_by_groupGet Shorten Counts for an Organization by Group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Metrics |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
User3
Some subscription plans allow multiple users. Only one user is used for authenticating a call, and these operations apply only to the authenticated user.
GET/userRetrieve a User
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | User |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/userUpdate a User
application/json — UserUpdate (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | User |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/user/platform_limitsGet Platform Limits
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | PlatformLimits |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
BSDs1
Branded short domains (BSDs) are the custom domains used to brand your links. A BSD can be added to a Bitly organization and may be assigned to one or more groups. They can contain up to 32 characters.
GET/bsdsGet BSDs
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BSDsResponse |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
Bitlinks21
Bitlinks are shortened links. They could begin with the bit.ly domain or your own custom branded short domain (BSD). **Related Operations:** - [POST /bitlinks](#createFullBitlink) - Create a new bitlink or add a custom keyword to an existing bitlink - [PATCH /bitlinks/{bitlink}](#updateBitlink) - Redirect an existing bitlink
POST/bitlinksCreate a Bitlink
application/json — FullShorten (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BitlinkBody |
201 | CREATED | BitlinkBody |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
417 | EXPECTATION_FAILED | ExpectationFailed |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}Retrieve a Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BitlinkBody |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/bitlinks/{bitlink}Update a Bitlink
application/json — BitlinkUpdateBody (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BitlinkBody |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
409 | CONFLICT | Conflict |
410 | GONE | Gone |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
DELETE/bitlinks/{bitlink}Delete a Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | LinkDeletionResponse |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/citiesGet Metrics for a Bitlink by City
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CityMetrics |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/clicksGet Clicks for a Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Clicks |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/clicks/summaryGet a Clicks Summary for a Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClicksSummary |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/countriesGet Metrics for a Bitlink by Country
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/devicesGet Metrics for a Bitlink by Device Type
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | DeviceMetrics |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/engagementsGet Engagement Counts for a Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | TotalEngagements |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/engagements/summaryGet an Engagement Count Summary for a Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | TotalEngagementsSummary |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/referrer_nameGet Metrics for a Bitlink by Referrer Name
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/referrersGet Metrics for a Bitlink by Referrers
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/referrers_by_domainsGet Metrics for a Bitlink by Referrers by Domain
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ReferrersByDomains |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/bitlinks/{bitlink}/referring_domainsGet Metrics for a Bitlink by Referring Domains
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/expandExpand a Bitlink
application/json — ExpandBitlink (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ExpandedBitlink |
400 | BAD_REQUEST | BadRequest |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/bitlinksRetrieve Bitlinks by Group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Bitlinks |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/groups/{group_guid}/bitlinksBulk update bitlinks
application/json — BulkUpdateRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BulkUpdate |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/bitlinks/{sort}Retrieve Sorted Bitlinks for Group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | SortedLinks |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/groups/{group_guid}/engagements/sorted/topRetrieve Top Links and Decoupled QR Codes by Engagements
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | TopLinksAndQRCodes |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/shortenShorten a Link
application/json — Shorten (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ShortenBitlinkBody |
201 | CREATED | ShortenBitlinkBody |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
417 | EXPECTATION_FAILED | ExpectationFailed |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
Custom Bitlinks5
These endpoints are for updating custom Bitlinks only. Custom Bitlinks have both a BSD and a customized back-half (e.g., yourcompany.com/yourcampaign). If a link begins with the bit.ly domain or ends with an auto-generated random string it is not a custom Bitlink.
POST/custom_bitlinksAdd Custom Bitlink
application/json — AddCustomBitlink (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CustomBitlink |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
409 | Conflict | Error |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/custom_bitlinks/{custom_bitlink}Retrieve Custom Bitlink
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CustomBitlink |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/custom_bitlinks/{custom_bitlink}Update Custom Bitlink
application/json — UpdateCustomBitlink (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CustomBitlink |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/custom_bitlinks/{custom_bitlink}/clicksGet Clicks for a Custom Bitlink's Entire History
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Clicks |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/custom_bitlinks/{custom_bitlink}/clicks_by_destinationGet Metrics for a Custom Bitlink by Destination
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ClickMetrics |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
Campaigns8
Bitly Campaigns are used to build and organize links and metrics for marketing campaigns.
GET/campaignsRetrieve Campaigns
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Campaigns |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
502 | BAD_GATEWAY | BadGateway |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/campaignsCreate Campaign
application/json — CampaignModify (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Campaign |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/campaigns/{campaign_guid}Retrieve a Campaign
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Campaign |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/campaigns/{campaign_guid}Update Campaign
application/json — CampaignModify (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Campaign |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/channelsRetrieve Channels
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Channels |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/channelsCreate Channel
application/json — ChannelModify (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Channel |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/channels/{channel_guid}Get a Channel
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Channel |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/channels/{channel_guid}Update a Channel
application/json — ChannelModify (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Channel |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
Webhooks6
Webhooks are a method of sending information from Bitly to an application outside of Bitly. It's a way to automate actions or updates between two different systems. These endpoints are for configuring your webhooks.
GET/organizations/{organization_guid}/webhooksGet Webhooks
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Webhooks |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/webhooksCreate Webhook
application/json — WebhookCreate (required)
| Status | Description | Schema |
|---|---|---|
201 | CREATED | Webhook |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/webhooks/{webhook_guid}Retrieve Webhook
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Webhook |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PATCH/webhooks/{webhook_guid}Update Webhook
application/json — WebhookUpdate (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Webhook |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
DELETE/webhooks/{webhook_guid}Delete Webhook
| Status | Description | Schema |
|---|---|---|
204 | SUCCESS | — |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/webhooks/{webhook_guid}/verifyVerify Webhook
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | Webhook |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
QR Codes16
QR codes can be created and customized with different dot patterns, corner shapes, colors, and more. They can contain bitlinks, links to microsites, or several kinds of static data.
GET/groups/{group_guid}/qr-codesRetrieve QR Codes by Group
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | QRCodesMinimal |
403 | FORBIDDEN | Forbidden |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
PATCH/groups/{group_guid}/qr-codesBulk update QR codes
application/json — QRCBulkUpdateRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | QRCBulkUpdate |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
POST/qr-codesCreate a QR Code
application/json — PublicCreateQRCodeRequest (required)
| Status | Description | Schema |
|---|---|---|
201 | CREATED | QRCodeMinimal |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
POST/qr-codes/staticGenerate a static QR Code image
| Name | In | Required | Type |
|---|---|---|---|
Accept | header | no | string |
format | query | no | string |
application/json — PublicCreateStaticQRCodeRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | PublicStaticQRCodeResponse |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
406 | NOT_ACCEPTABLE | BadRequest |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
GET/qr-codes/{qrcode_id}Retrieve a QR Code
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | QRCodeDetails |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
PATCH/qr-codes/{qrcode_id}Update a QR Code
| Name | In | Required | Type |
|---|---|---|---|
qrcode_id | path | yes | string |
application/json — PublicUpdateQRCodeRequest
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | QRCodeMinimal |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
DELETE/qr-codes/{qrcode_id}Delete a QR Code
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | PublicDeleteQRCodeResponse |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
GET/qr-codes/{qrcode_id}/imageRetrieve a QR Code image
| Name | In | Required | Type |
|---|---|---|---|
Accept | header | no | string |
format | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | PublicQRCodeImageResponse |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
PATCH/qr-codes/{qrcode_id}/redirectRedirect a QR Code
| Name | In | Required | Type |
|---|---|---|---|
qrcode_id | path | yes | string |
application/json — RedirectQRCodeRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | QRCodeMinimal |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
422 | UNPROCESSABLE_ENTITY | UnprocessableEntity |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
GET/qr-codes/{qrcode_id}/scansGet Scans for a QR Code
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BitlinkScans |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/qr-codes/{qrcode_id}/scans/browsersGet Scans for a QR Code by Browser
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ScanMetrics |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/qr-codes/{qrcode_id}/scans/citiesGet Metrics for a QR Code by City
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | CityScanMetrics |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/qr-codes/{qrcode_id}/scans/countriesGet Scans for a QR Code by Country
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ScanMetrics |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/qr-codes/{qrcode_id}/scans/device_osGet Scans for a QR Code by Device OS
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | ScanMetrics |
400 | BAD_REQUEST | BadRequest |
402 | UPGRADE_REQUIRED | UpgradeRequired |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
GET/qr-codes/{qrcode_id}/scans/summaryGet Scans Summary for a QR Code
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BitlinkScansSummary |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
410 | GONE | Gone |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
PUT/qr-codes/{qrcode_id}/to-bitlinkUpgrade a QR Code to a bitlink
| Name | In | Required | Type |
|---|---|---|---|
qrcode_id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | BitlinkBody |
400 | BAD_REQUEST | BadRequest |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
429 | MONTHLY_LIMIT_EXCEEDED | MonthlyLimitExceeded |
500 | INTERNAL_ERROR | InternalError |
apps1
GET/apps/{client_id}Retrieve OAuth App
| Status | Description | Schema |
|---|---|---|
200 | SUCCESS | OAuthApp |
403 | FORBIDDEN | Forbidden |
404 | NOT_FOUND | NotFound |
500 | INTERNAL_ERROR | InternalError |
503 | TEMPORARILY_UNAVAILABLE | TemporarilyUnavailable |
Try it
Developer reference
https://api-ssl.bitly.com/v4Per-hour and per-minute caps reset independently, with the minute cap set to one-tenth of the hourly figure; standard plans default to 1,000 requests/hour (100/min) per endpoint, Enterprise plans 10,000/hour, plus separate monthly transaction limits by plan and a 5-concurrent-connection cap per IP. Exceeding a cap returns HTTP 429 with a RATE_LIMIT_EXCEEDED or MONTHLY_LIMIT_EXCEEDED error.
- POST/shorten
- POST/expand
- GET/bitlinks/{bitlink}/clicks/summary