Skip to main content
PUT

Request

Headers

string
required
Must be application/json

Path Parameters

string
required
Any of:
  • the link id returned by GET /v1/links (e.g., my-link or tapmy.social__my-link)
  • the slug (e.g., my-link), matched against your own links first and then, for an active team member, the team owner’s links
  • the short URL, URL-encoded (e.g., https%3A%2F%2Ftapmy.social%2Fmy-link)
Links owned by another account are never matched by slug. Team access requires an active, non-viewer membership of the link owner’s team.An exact link id or short URL always wins over a slug match. If a bare slug matches more than one of your links (for example tapmy.social/my-link and viewmy.link/my-link), the request is refused with 409 AMBIGUOUS_IDENTIFIER: send the link id or the short URL instead.

Body

string
New destination URL where the short link should redirect. Must be a valid HTTP or HTTPS URL. Links on bouncy.ai itself cannot point at a small set of blocked destinations (the same rule as the dashboard, also applied to geoRules and languageRules redirect URLs); use a system domain or your own domain for those.Example: https://example.com/new-page
string
Updated title for SEO and social media sharingExample: Updated Summer Sale 2026
string
Updated description for SEO and social media cardsExample: Now 60% off everything!
array
Updated array of tagsExample: ["marketing", "summer", "60-percent-off"]
object
Google Analytics tracking configuration
object
Meta Pixel tracking configuration
object
Full SEO metadata object override (ignored if title or description are also provided)
string
Redirect behavior. One of: conservative, aggressive, basic, non-meta, experimental, experimental2, reddit. Free plans are saved as conservative whatever is sent. GET /v1/account/limits lists the behaviors your plan can use.
array
Array of geographic filtering rules. Rules are evaluated in order and the first matching rule wins. Visitors who match no rule are redirected to the main destination.Each rule is an object with:
  • countries (array) - ISO 3166-1 alpha-2 codes (e.g., US, GB) or full country names
  • presetId (string) - ID of a saved geo preset, as returned by GET /v1/geo-presets. Use this in place of countries: the server fills the rule’s countries from the preset’s saved country list when the link is saved. An unknown presetId returns a 400 error
  • cities (array) - City names, matched as case-insensitive substrings. Can be combined with either countries or presetId
  • redirectUrl (string) - Destination URL for visitors matching this rule. Always required, including when the rule uses presetId
Preset countries are copied into the rule once, at save time. Editing the preset later does not change links it was already applied to.Example:
array
Array of language-based filtering rules
string
Traffic recovery URL for when the primary destination is unavailable
string
Move the link into one of the link owner’s groups (GET /v1/groups). null or an empty string removes it from its group. An unknown group returns 400 with code: "GROUP_NOT_FOUND".Example: grp_abc123
You cannot update the slug or domain after creation. Create a new link if you need a different slug.

Response

boolean
Whether the operation succeeded
string
Unique identifier for the link
string
Success message
array
List of fields that were updated