Create guestbook message
Creates Guestbook Message using the API key’s account.
POST
/api/v1/social/widgets/{widgetId}/guestbookguestbook: read_write1,000 requests/minute/key · all plansActive API keys: Free 1, Pro 5, Pro+ 5. The request rate is the same on every plan.
Parameters
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
widgetId | string (uuid) | Required | Identifier of the widget. |
Request body
application/json · required
| Name | Type | Required | Description |
|---|---|---|---|
body | string | Required | Body. Minimum length: 1. Maximum length: 500. |
postAnonymously | boolean | Optional | Post Anonymously. Default: false. |
parentMessageId | string (uuid) | Optional | Parent Message Id. |
Response schema
201
Created.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | Unique identifier. |
createdAt | number | Required | Creation time. |
ownerUserId | string | Required | Owner User Id. |
parentMessageId | null | string | Required | Parent Message Id. |
authorDisplayName | string | Required | Author Display Name. |
postedAnonymously | boolean | Required | Posted Anonymously. |
body | string | Required | Body. |
hiddenByOwner | boolean | Required | Hidden By Owner. |
authorUserId | null | string | Required | Author User Id. Owner can see the real author even when posted anonymously; visitors cannot. |
displayName | string | Required | Display name. Display name a visitor should see (anonymised when applicable). |
authorAvatarUrl | null | string | Required | Author Avatar Url. Author profile picture (null for anonymous viewers and missing avatars). |
authorStatus | null | object | Required | Author Status. Account-status flags rendered as badges next to the name (omitted for anonymous). |
authorStatus.isAdmin | boolean | Required | Is Admin. |
authorStatus.planKey | null | string | Required | Plan Key. |
authorStatus.donorSupporterUnlocked | boolean | Required | Donor Supporter Unlocked. |
authorStatus.closedBetaParticipantAt | null | number | Required | Closed Beta Participant At. |
authorStatus.bugBountyUnlockedAt | null | number | Required | Bug Bounty Unlocked At. |
authorProfileStyle | null | object | Required | Author Profile Style. Friend-account appearance (`app_profiles.friend_profile_style`) for name fonts + avatar ring chrome. Null when anonymised to the viewer or missing. |
authorProfileStyle.avatarRing | object | Optional | Avatar Ring. |
authorProfileStyle.avatarRing.show | boolean | Optional | Show. Allowed values: false, true. |
authorProfileStyle.avatarRing.colorHex | null | string | Optional | Color Hex. |
authorProfileStyle.avatarRing.shape | string | Optional | Shape. Allowed values: "moon", "circle", "square", "hexagon", "octagon", "star", "pentagon", "heart", "shield", "sakura", "neko", "butterfly", "sparkle", "crown". |
authorProfileStyle.avatarRing.gradient | null | object | Optional | Gradient. |
authorProfileStyle.avatarRing.animation | string | Optional | Animation. Allowed values: "none", "pulse", "rotate", "shimmer". |
authorProfileStyle.avatarRing.animationSpeed | number | Optional | Animation Speed. |
authorProfileStyle.avatarRing.strokeStyle | string | Optional | Stroke Style. Allowed values: "single", "double", "glow". |
authorProfileStyle.avatarRing.customMaskStorageId | string | Optional | Custom Mask Storage Id. |
authorProfileStyle.avatarRing.customMaskPathD | string | Optional | Custom Mask Path D. |
authorProfileStyle.bannerFrame | object | Optional | Banner Frame. |
authorProfileStyle.bannerFrame.colorHex | null | string | Optional | Color Hex. |
authorProfileStyle.bannerFrame.showBorder | boolean | Optional | Show Border. Allowed values: false, true. |
authorProfileStyle.bannerFrame.borderWidthPx | number | Optional | Border Width Px. |
authorProfileStyle.bannerFrame.borderStyle | string | Optional | Border Style. Allowed values: "none", "double", "solid", "dashed". |
authorProfileStyle.bannerFrame.cornerStyle | string | Optional | Corner Style. Allowed values: "default", "rounded", "sharp". |
authorProfileStyle.memberName | object | Optional | Member Name. |
authorProfileStyle.memberName.fontFamily | null | string | Optional | Font Family. |
authorProfileStyle.memberName.customFontId | null | string | Optional | Custom Font Id. |
authorProfileStyle.memberName.colorHex | null | string | Optional | Color Hex. |
authorProfileStyle.memberName.gradient | null | object | Optional | Gradient. |
authorProfileStyle.memberName.letterSpacing | string | Optional | Letter Spacing. Allowed values: "normal", "wide". |
authorProfileStyle.memberName.smallCaps | boolean | Optional | Small Caps. Allowed values: false, true. |
authorProfileStyle.memberName.textShadow | boolean | Optional | Text Shadow. Allowed values: false, true. |
authorProfileStyle.memberName.nameEffect | string | Optional | Name Effect. Allowed values: "none", "shimmer", "soft-glow". |
authorProfileStyle.bannerImage | object | Optional | Banner Image. |
authorProfileStyle.bannerImage.brightness | number | Optional | Brightness. |
authorProfileStyle.bannerImage.contrast | number | Optional | Contrast. |
authorProfileStyle.bannerImage.tintHex | null | string | Optional | Tint Hex. |
authorProfileStyle.bannerImage.tintOpacity | number | Optional | Tint Opacity. |
authorProfileStyle.avatarImage | object | Optional | Avatar Image. |
authorProfileStyle.avatarImage.brightness | number | Optional | Brightness. |
authorProfileStyle.avatarImage.contrast | number | Optional | Contrast. |
authorProfileStyle.avatarImage.tintHex | null | string | Optional | Tint Hex. |
authorProfileStyle.avatarImage.tintOpacity | number | Optional | Tint Opacity. |
authorProfileStyle.bannerOverlay | string | Optional | Banner Overlay. Allowed values: "none", "vignette", "soft-gradient", "film-grain", "glass-blur", "pattern-dots", "pattern-grid". |
authorProfileStyle.profileBackgroundPattern | string | Optional | Profile Background Pattern. Allowed values: "grid", "none", "dots", "noise". |
authorProfileStyle.heroLayout | string | Optional | Hero Layout. Allowed values: "shell-default", "avatar-centered", "avatar-left". |
authorProfileStyle.accentColorHex | null | string | Optional | Accent Color Hex. |
authorProfileStyle.profileBackgroundFill | object | Optional | Profile Background Fill. |
authorProfileStyle.profileBackgroundFill.mode | string | Optional | Mode. Allowed values: "default", "gradient", "solid". |
authorProfileStyle.profileBackgroundFill.gradient | null | object | Optional | Gradient. |
authorProfileStyle.profileBackgroundFill.solidHex | null | string | Optional | Solid Hex. |
authorProfileStyle.pageBackgroundFill | object | Optional | Page Background Fill. Friend-only: full Friends viewport backdrop (solid/gradient). |
authorProfileStyle.pageBackgroundFill.mode | string | Optional | Mode. Allowed values: "default", "gradient", "solid". |
authorProfileStyle.pageBackgroundFill.gradient | null | object | Optional | Gradient. |
authorProfileStyle.pageBackgroundFill.solidHex | null | string | Optional | Solid Hex. |
authorProfileStyle.panelBackgroundFill | object | Optional | Panel Background Fill. Friend-only: profile card panel fill (free: preset solids; Pro+: custom solid/gradient). |
authorProfileStyle.panelBackgroundFill.mode | string | Optional | Mode. Allowed values: "default", "gradient", "solid". |
authorProfileStyle.panelBackgroundFill.gradient | null | object | Optional | Gradient. |
authorProfileStyle.panelBackgroundFill.solidHex | null | string | Optional | Solid Hex. |
authorProfileStyle.panelFillAccentHex | null | string | Optional | Panel Fill Accent Hex. Friend-only: optional accent mixed into the profile panel backdrop (Pro+). |
authorProfileStyle.panelCardAccentHex | null | string | Optional | Panel Card Accent Hex. Friend-only: optional accent mixed into section cards (Pro+). |
Errors
400· JSON errorRequest failed (BAD_REQUEST).
401· JSON errorMissing or invalid API key. Use Authorization: Bearer <token>.
403· JSON errorRequires guestbook: read_write; ownership or feature restrictions may also deny access.
404· JSON errorRequest failed (NOT_FOUND).
409· JSON errorRequest failed (CONFLICT).
429· JSON errorAPI rate limit exceeded (1000 requests per minute). Retry shortly.
503· JSON errorPostgreSQL is not configured (DATABASE_URL).
Request example
Set FLORALITY_KEY in your environment. These examples use demo identifiers.
curl --request POST 'https://floralitys.com/api/v1/social/widgets/11111111-1111-4111-8111-111111111111/guestbook' \
--header "Authorization: Bearer $FLORALITY_KEY" \
--header "Content-Type: application/json" \
--data '{
"body": "demo"
}'Responses
Created.
{
"id": "11111111-1111-4111-8111-111111111111",
"createdAt": 1767225600000,
"ownerUserId": "11111111-1111-4111-8111-111111111111",
"parentMessageId": null,
"authorDisplayName": "River",
"postedAnonymously": false,
"body": "demo",
"hiddenByOwner": false,
"authorUserId": null,
"displayName": "River",
"authorAvatarUrl": null,
"authorStatus": null,
"authorProfileStyle": null
}Example values are illustrative demo data.
