Import an existing bio-link page
Bring links already built on Linktree, Stan, Carrd, or a similar page into draft TEASE buttons from one URL.
Instead of re-typing every link by hand, paste the URL of an existing bio-link page (Linktree, Stan, Bio.link, Carrd, or a generic page) and let the importer scan it into a reviewable list of buttons before anything is saved.
Scan the page
curl -X POST "https://app.tease.link/api/admin/import" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://linktr.ee/yourolddpage" }'The response is an ImportPreview — nothing is written yet: profile (name/bio/avatar/platform
guessed from the page), buttons[] (each with a text_value, url, guessed icon, and an
optional price_hint), headers[], and warnings[]. status is complete/partial when
buttons were found cleanly, redirect when the URL just bounces to a single destination, or
review when the page couldn't be parsed automatically and needs manual editing —
needs_review: true in that case.
A repeat scan of the exact same URL from the same account returns the cached result for about a minute instead of re-fetching, and both per-account and per-target-domain rates are limited so a runaway loop can't hammer the source site.
Commit the buttons you want
Review/edit the previewed buttons in the panel, then commit the ones you're keeping:
curl -X POST "https://app.tease.link/api/admin/import/commit" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "links.creator.com",
"buttons": [
{ "text_value": "My Instagram", "url": "https://instagram.com/you", "icon": "instagram.svg" }
],
"take_background": true,
"take_avatar": true,
"media": { "avatar_url": "https://...", "bg_image_url": "https://..." }
}'Buttons land as draft buttons on the target domain (segment T1 by default, or per-audience
if the source page had country-targeted variants and you pass placement: "per_segment" with the
scanned proposed_segments). apply_mode: "replace_draft" wipes the domain's current draft
buttons/segments first; omit it to append instead. take_background/take_avatar pull the old
page's background photo and avatar into the domain's own background/avatar slots.
Confirm it worked
The commit response's created_ids lists the new button ids — cross-check the count against how
many buttons you sent. Open the domain's draft in the panel: the imported buttons, and (if
requested) the background/avatar/profile text, should already be there, still unpublished until
you hit Publish.
A social profile isn't a bio page
Pasting a plain Instagram/TikTok/X/YouTube/Facebook/Snapchat profile URL returns
needs_review: true with a warning instead of buttons — paste the link to your actual
link-in-bio page instead.
What's next
- Style every button on the landing page to make imported buttons match your brand
- See Troubleshooting if an imported URL looks wrong
- Back to Landing-page builder