Link in bio
Get link bio page
get/v1/link-bio
Get the workspace's link-in-bio page as the builder sees it: the draft blocks, theme and SEO, plus whether it is public and whether the draft has unpublished changes. Needs links:view.
Response 200
The draft page
idstringrequiredhandlestringrequiredDraft handle. The public page uses publishedHandle.
titlestringrequiredbiostringrequirednullableavatarUrlstringrequirednullablepublishedbooleanrequiredWhether the public page is reachable at all.
publishedHandlestringrequirednullablepublishedAtstring (date-time)requirednullablehasUnpublishedChangesbooleanrequiredTrue when the draft differs from what the public page shows.
viewCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredblocksarray of object or object or object or object or object or object or object or object or object or object or object or objectrequiredOption 1
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
profileconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
avatarPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
avatarSizeintegerMin 72 · Max 180
avatarUrlstringbiostringMax length 300
coverHeightintegerMin 120 · Max 260
coverImageUrlstringcoverPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
displayHandlestringMax length 80
displayNamestringMax length 100
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
avataravatar_textcovercover_avatarDefault "avatar_text"
Option 2
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
featuredbooleanDefault false
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
modestringOne of
buttonlinkscheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
showTitlebooleanDefault true
thumbnailPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
Option 3
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
aboutconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageSidestringOne of
leftrightDefault "left"
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
textimageimage_textDefault "text"
Option 4
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
headerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 5
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
dividerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 6
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
textconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 7
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
imageconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
altstringMax length 300
hrefstringMax length 2048
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
Option 8
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
video_embedconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
embedUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
titlestringMax length 120
variantstringOne of
embedfeatureDefault "embed"
Option 9
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_iconsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 10
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
footerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "center"
attributionModestringOne of
made_with_postyget_postyiconDefault "made_with_posty"
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
linksarray of objectDefault [] · Max items 6
Child attributes
labelstringrequiredMax length 80
urlstringrequiredMax length 2048
Option 11
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_buttonsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 12
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
platformstringOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutube
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl "https://api.posty.social/v1/link-bio" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"id": "string",
"handle": "string",
"title": "string",
"bio": "string",
"avatarUrl": "string",
"theme": {
"backgroundColor": "string",
"backgroundGradient": "string",
"backgroundImageUrl": "string",
"buttonBorderRadius": "none",
"buttonColor": "string",
"buttonStyle": "filled",
"buttonTextColor": "string",
"fontFamily": "inter",
"surfaceBorderRadius": "none",
"textColor": "string"
},
"seo": {
"description": "string",
"noIndex": false,
"ogImageUrl": "string",
"title": "string"
},
"published": true,
"publishedHandle": "string",
"publishedAt": "2026-01-15T09:30:00.000Z",
"hasUnpublishedChanges": true,
"viewCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"blocks": [
{
"id": "string",
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"sortOrder": 1,
"visible": true,
"clickCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}
]
}Claim link bio handle
post/v1/link-bio
Create the workspace's link-in-bio page by claiming a handle. The page starts private with a profile and footer block. If the workspace already has a page it is returned unchanged. Needs links:create.
Request body
handlestringrequiredLowercase letters, numbers and hyphens, starting and ending with a letter or number.
Min length 3 · Max length 64
titlestringrequiredMin length 1 · Max length 100
Response 201
The workspace's page
idstringrequiredhandlestringrequiredDraft handle. The public page uses publishedHandle.
titlestringrequiredbiostringrequirednullableavatarUrlstringrequirednullablepublishedbooleanrequiredWhether the public page is reachable at all.
publishedHandlestringrequirednullablepublishedAtstring (date-time)requirednullablehasUnpublishedChangesbooleanrequiredTrue when the draft differs from what the public page shows.
viewCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredblocksarray of object or object or object or object or object or object or object or object or object or object or object or objectrequiredOption 1
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
profileconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
avatarPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
avatarSizeintegerMin 72 · Max 180
avatarUrlstringbiostringMax length 300
coverHeightintegerMin 120 · Max 260
coverImageUrlstringcoverPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
displayHandlestringMax length 80
displayNamestringMax length 100
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
avataravatar_textcovercover_avatarDefault "avatar_text"
Option 2
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
featuredbooleanDefault false
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
modestringOne of
buttonlinkscheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
showTitlebooleanDefault true
thumbnailPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
Option 3
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
aboutconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageSidestringOne of
leftrightDefault "left"
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
textimageimage_textDefault "text"
Option 4
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
headerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 5
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
dividerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 6
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
textconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 7
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
imageconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
altstringMax length 300
hrefstringMax length 2048
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
Option 8
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
video_embedconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
embedUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
titlestringMax length 120
variantstringOne of
embedfeatureDefault "embed"
Option 9
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_iconsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 10
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
footerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "center"
attributionModestringOne of
made_with_postyget_postyiconDefault "made_with_posty"
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
linksarray of objectDefault [] · Max items 6
Child attributes
labelstringrequiredMax length 80
urlstringrequiredMax length 2048
Option 11
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_buttonsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 12
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
platformstringOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutube
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
- 409
- Handle already taken
curl -X POST "https://api.posty.social/v1/link-bio" \
-H "Authorization: Bearer $POSTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"handle": "string",
"title": "string"
}'{
"id": "string",
"handle": "string",
"title": "string",
"bio": "string",
"avatarUrl": "string",
"theme": {
"backgroundColor": "string",
"backgroundGradient": "string",
"backgroundImageUrl": "string",
"buttonBorderRadius": "none",
"buttonColor": "string",
"buttonStyle": "filled",
"buttonTextColor": "string",
"fontFamily": "inter",
"surfaceBorderRadius": "none",
"textColor": "string"
},
"seo": {
"description": "string",
"noIndex": false,
"ogImageUrl": "string",
"title": "string"
},
"published": true,
"publishedHandle": "string",
"publishedAt": "2026-01-15T09:30:00.000Z",
"hasUnpublishedChanges": true,
"viewCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"blocks": [
{
"id": "string",
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"sortOrder": 1,
"visible": true,
"clickCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}
]
}Update link bio page
patch/v1/link-bio
Edit the draft page: handle, title, bio, avatar URL, theme or SEO. Send only the fields to change. Changes stay private until published in the app. Needs links:update.
Request body
handlestringMin length 3 · Max length 64
titlestringMin length 1 · Max length 100
biostringnullableMax length 300
avatarUrlstringnullableMax length 2048
themeanyChild attributes
backgroundColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
backgroundGradientstringMax length 280
backgroundImageUrlstringMax length 2048
buttonBorderRadiusstringOne of
nonesmmdlgfullbuttonColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
buttonStylestringOne of
filledoutlineshadowsoftbuttonTextColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
fontFamilystringOne of
interplus-jakartamonoserifinstrument-serifmanropeibm-plex-monocormorant-garamondspace-groteskfrauncesbricolage-grotesqueoutfitdm-serif-displayunboundedplayfair-displaylibre-baskervillebebas-neuearchivo-blacksynesurfaceBorderRadiusstringOne of
nonesmmdlgxltextColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
seoanyChild attributes
descriptionstringMax length 300
noIndexbooleanDefault false
ogImageUrlstringMax length 2048
titlestringMax length 120
Response 200
The updated draft page
idstringrequiredhandlestringrequiredDraft handle. The public page uses publishedHandle.
titlestringrequiredbiostringrequirednullableavatarUrlstringrequirednullablepublishedbooleanrequiredWhether the public page is reachable at all.
publishedHandlestringrequirednullablepublishedAtstring (date-time)requirednullablehasUnpublishedChangesbooleanrequiredTrue when the draft differs from what the public page shows.
viewCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredblocksarray of object or object or object or object or object or object or object or object or object or object or object or objectrequiredOption 1
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
profileconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
avatarPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
avatarSizeintegerMin 72 · Max 180
avatarUrlstringbiostringMax length 300
coverHeightintegerMin 120 · Max 260
coverImageUrlstringcoverPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
displayHandlestringMax length 80
displayNamestringMax length 100
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
avataravatar_textcovercover_avatarDefault "avatar_text"
Option 2
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
featuredbooleanDefault false
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
modestringOne of
buttonlinkscheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
showTitlebooleanDefault true
thumbnailPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
Option 3
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
aboutconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageSidestringOne of
leftrightDefault "left"
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
textimageimage_textDefault "text"
Option 4
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
headerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 5
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
dividerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 6
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
textconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 7
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
imageconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
altstringMax length 300
hrefstringMax length 2048
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
Option 8
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
video_embedconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
embedUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
titlestringMax length 120
variantstringOne of
embedfeatureDefault "embed"
Option 9
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_iconsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 10
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
footerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "center"
attributionModestringOne of
made_with_postyget_postyiconDefault "made_with_posty"
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
linksarray of objectDefault [] · Max items 6
Child attributes
labelstringrequiredMax length 80
urlstringrequiredMax length 2048
Option 11
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_buttonsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 12
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
platformstringOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutube
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
- 409
- Handle already taken
curl -X PATCH "https://api.posty.social/v1/link-bio" \
-H "Authorization: Bearer $POSTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"handle": "string",
"title": "string",
"bio": "string",
"avatarUrl": "string",
"theme": {
"backgroundColor": "string",
"backgroundGradient": "string",
"backgroundImageUrl": "string",
"buttonBorderRadius": "none",
"buttonColor": "string",
"buttonStyle": "filled",
"buttonTextColor": "string",
"fontFamily": "inter",
"surfaceBorderRadius": "none",
"textColor": "string"
},
"seo": {
"description": "string",
"noIndex": false,
"ogImageUrl": "string",
"title": "string"
}
}'{
"id": "string",
"handle": "string",
"title": "string",
"bio": "string",
"avatarUrl": "string",
"theme": {
"backgroundColor": "string",
"backgroundGradient": "string",
"backgroundImageUrl": "string",
"buttonBorderRadius": "none",
"buttonColor": "string",
"buttonStyle": "filled",
"buttonTextColor": "string",
"fontFamily": "inter",
"surfaceBorderRadius": "none",
"textColor": "string"
},
"seo": {
"description": "string",
"noIndex": false,
"ogImageUrl": "string",
"title": "string"
},
"published": true,
"publishedHandle": "string",
"publishedAt": "2026-01-15T09:30:00.000Z",
"hasUnpublishedChanges": true,
"viewCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"blocks": [
{
"id": "string",
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"sortOrder": 1,
"visible": true,
"clickCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}
]
}Get link bio analytics
get/v1/link-bio/analytics
Views, unique visitors, clicks per link, referrers and countries for the link-in-bio page over the last `days` days (default 30, UTC). Needs links:view.
Query parameters
daysintegerMin 1 · Max 365
Response 200
Page analytics
rangeDaysintegerrequiredfromstring (date-time)requiredtostring (date-time)requiredtotalsobjectrequiredChild attributes
allTimeViewsintegerrequiredviewsintegerrequireduniqueViewsintegerrequiredclicksintegerrequired
viewsByDayarray of objectrequiredChild attributes
datestringrequiredviewsintegerrequireduniquesintegerrequired
clicksByDayarray of objectrequiredChild attributes
datestringrequiredclicksintegerrequired
linksarray of objectrequiredChild attributes
blockIdstringrequirednullableblockTitlestringrequirednullableblockTypestringrequirednullableOne of
profileaboutsocial_buttonslinkheaderdividersocial_iconssocial_linktextimagevideo_embedfootertargetUrlstringrequirednullableclicksintegerrequired
referrersarray of objectrequiredChild attributes
referrerstringrequirednullableviewsintegerrequired
countriesarray of objectrequiredChild attributes
countrystringrequirednullableviewsintegerrequired
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl "https://api.posty.social/v1/link-bio/analytics" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"rangeDays": 1,
"from": "2026-01-15T09:30:00.000Z",
"to": "2026-01-15T09:30:00.000Z",
"totals": {
"allTimeViews": 1,
"views": 1,
"uniqueViews": 1,
"clicks": 1
},
"viewsByDay": [
{
"date": "string",
"views": 1,
"uniques": 1
}
],
"clicksByDay": [
{
"date": "string",
"clicks": 1
}
],
"links": [
{
"blockId": "string",
"blockTitle": "string",
"blockType": "profile",
"targetUrl": "string",
"clicks": 1
}
],
"referrers": [
{
"referrer": "string",
"views": 1
}
],
"countries": [
{
"country": "string",
"views": 1
}
]
}Check link bio handle
get/v1/link-bio/handle-availability
Check whether a link-in-bio handle (the name in posty.social/@handle) is valid and free. Handles are shared across every workspace.
Query parameters
handlestringrequiredMin length 1 · Max length 64
Response 200
Availability
handlestringrequiredavailablebooleanrequiredreasonstringrequirednullableWhy the handle cannot be used, when it is not available.
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl "https://api.posty.social/v1/link-bio/handle-availability?handle=$HANDLE" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"handle": "string",
"available": true,
"reason": "string"
}Add link bio block
post/v1/link-bio/blocks
Add a block to the draft link-in-bio page. Set type and supply title, description, url and thumbnailUrl as top-level body fields where applicable; config holds additional type-specific settings. Returns the new block. Changes become public only when published in the app. Requires links:update.
Response 201
The new block
blockobject or object or object or object or object or object or object or object or object or object or object or objectrequiredOption 1
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
profileconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
avatarPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
avatarSizeintegerMin 72 · Max 180
avatarUrlstringbiostringMax length 300
coverHeightintegerMin 120 · Max 260
coverImageUrlstringcoverPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
displayHandlestringMax length 80
displayNamestringMax length 100
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
avataravatar_textcovercover_avatarDefault "avatar_text"
Option 2
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
featuredbooleanDefault false
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
modestringOne of
buttonlinkscheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
showTitlebooleanDefault true
thumbnailPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
Option 3
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
aboutconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageSidestringOne of
leftrightDefault "left"
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
textimageimage_textDefault "text"
Option 4
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
headerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 5
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
dividerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 6
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
textconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 7
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
imageconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
altstringMax length 300
hrefstringMax length 2048
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
Option 8
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
video_embedconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
embedUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
titlestringMax length 120
variantstringOne of
embedfeatureDefault "embed"
Option 9
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_iconsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 10
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
footerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "center"
attributionModestringOne of
made_with_postyget_postyiconDefault "made_with_posty"
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
linksarray of objectDefault [] · Max items 6
Child attributes
labelstringrequiredMax length 80
urlstringrequiredMax length 2048
Option 11
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_buttonsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 12
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
platformstringOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutube
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl -X POST "https://api.posty.social/v1/link-bio/blocks" \
-H "Authorization: Bearer $POSTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"visible": true,
"insertIndex": 1,
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}'{
"block": {
"id": "string",
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"sortOrder": 1,
"visible": true,
"clickCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}
}Update link bio block
patch/v1/link-bio/blocks/{blockId}
Edit a draft block. `type` must match the block's current type. Send only the fields to change; `config` replaces the stored config, so send it in full. Needs links:update.
Path parameters
blockIdstringrequiredMin length 1
Response 200
The updated block
blockobject or object or object or object or object or object or object or object or object or object or object or objectrequiredOption 1
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
profileconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
avatarPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
avatarSizeintegerMin 72 · Max 180
avatarUrlstringbiostringMax length 300
coverHeightintegerMin 120 · Max 260
coverImageUrlstringcoverPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
displayHandlestringMax length 80
displayNamestringMax length 100
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
avataravatar_textcovercover_avatarDefault "avatar_text"
Option 2
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
featuredbooleanDefault false
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
modestringOne of
buttonlinkscheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
showTitlebooleanDefault true
thumbnailPositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
Option 3
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
aboutconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageSidestringOne of
leftrightDefault "left"
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
variantstringOne of
textimageimage_textDefault "text"
Option 4
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
headerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 5
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
dividerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 6
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
textconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 7
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
imageconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
altstringMax length 300
hrefstringMax length 2048
imagePositionobjectChild attributes
xintegerrequiredMin 0 · Max 100
yintegerrequiredMin 0 · Max 100
imageUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
Option 8
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
video_embedconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
embedUrlstringMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
scheduleobjectChild attributes
endAtstringMax length 64
modestringOne of
windowDefault "window"
startAtstringMax length 64
timezonestringMax length 100
titlestringMax length 120
variantstringOne of
embedfeatureDefault "embed"
Option 9
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_iconsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 10
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
footerconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "center"
attributionModestringOne of
made_with_postyget_postyiconDefault "made_with_posty"
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
linksarray of objectDefault [] · Max items 6
Child attributes
labelstringrequiredMax length 80
urlstringrequiredMax length 2048
Option 11
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_buttonsconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
alignmentstringOne of
leftcenterrightDefault "left"
headingstringMax length 60
itemsarray of objectDefault [] · Max items 12
Child attributes
platformstringrequiredOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutubetitlestringMax length 60
urlstringrequiredMax length 2048
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
Option 12
idstringrequiredtitlestringrequirednullabledescriptionstringrequirednullableurlstringrequirednullablethumbnailUrlstringrequirednullablesortOrderintegerrequiredvisiblebooleanrequiredclickCountintegerrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredtypestringrequiredOne of
social_linkconfigobjectrequirednullableType-specific settings. Null when the stored value cannot be read for this type.
Child attributes
layoutobjectChild attributes
sidestringOne of
leftrightwidthstringOne of
fullhalfDefault "full"
platformstringOne of
apple_podcastsdiscordemailfacebookgithubinstagramlinkedinpinterestsnapchatspotifythreadstiktoktwitchtwitterwhatsappwebsiteyoutube
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl -X PATCH "https://api.posty.social/v1/link-bio/blocks/$BLOCK_ID" \
-H "Authorization: Bearer $POSTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"visible": true,
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}'{
"block": {
"id": "string",
"title": "string",
"description": "string",
"url": "string",
"thumbnailUrl": "string",
"sortOrder": 1,
"visible": true,
"clickCount": 1,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"type": "profile",
"config": {
"alignment": "left",
"avatarPosition": {
"x": 1,
"y": 1
},
"avatarSize": 72,
"avatarUrl": "string",
"bio": "string",
"coverHeight": 120,
"coverImageUrl": "string",
"coverPosition": {
"x": 1,
"y": 1
},
"displayHandle": "string",
"displayName": "string",
"layout": {
"side": "left",
"width": "full"
},
"variant": "avatar_text"
}
}
}Delete link bio block
del/v1/link-bio/blocks/{blockId}
Remove a block from the draft page. The public page keeps it until changes are published. Needs links:update.
Path parameters
blockIdstringrequiredMin length 1
Response 204
Deleted
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl -X DELETE "https://api.posty.social/v1/link-bio/blocks/$BLOCK_ID" \
-H "Authorization: Bearer $POSTY_API_KEY"No contentReorder link bio blocks
put/v1/link-bio/block-order
Set the order of the draft page's blocks. `blockIds` must list every block on the page exactly once. Needs links:update.
Request body
blockIdsarray of stringrequiredEvery block id on the page, in the new order.
Min items 1 · Max items 200
Response 200
The new order
blockIdsarray of stringrequired
Errors
- 400
- Invalid request
- 403
- Missing permission
- 404
- No link-in-bio page or block
curl -X PUT "https://api.posty.social/v1/link-bio/block-order" \
-H "Authorization: Bearer $POSTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"blockIds": [
"string"
]
}'{
"blockIds": [
"string"
]
}Models
Objects referenced by the endpoints above.
LinkBioSeo
descriptionstringMax length 300
noIndexbooleanDefault false
ogImageUrlstringMax length 2048
titlestringMax length 120
LinkBioTheme
backgroundColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
backgroundGradientstringMax length 280
backgroundImageUrlstringMax length 2048
buttonBorderRadiusstringOne of
nonesmmdlgfullbuttonColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
buttonStylestringOne of
filledoutlineshadowsoftbuttonTextColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$
fontFamilystringOne of
interplus-jakartamonoserifinstrument-serifmanropeibm-plex-monocormorant-garamondspace-groteskfrauncesbricolage-grotesqueoutfitdm-serif-displayunboundedplayfair-displaylibre-baskervillebebas-neuearchivo-blacksynesurfaceBorderRadiusstringOne of
nonesmmdlgxltextColorstringHex colour such as #18181B.
Pattern ^#(?:[\dA-Fa-f]{3}|[\dA-Fa-f]{6})$