Skip to main content
POST
Add a block to a room

Authorizations

Authorization
string
header
required

API key authentication. Use "Bearer <api_key>" or "Api-Key <api_key>".

Path Parameters

uuid
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json

Create a content block. Rooms are composed of ordered blocks — each block is a distinct content unit (text, image, video, goals, action bar, etc.).

Create a content block. Rooms are composed of ordered blocks — each block is a distinct content unit (text, image, video, goals, action bar, etc.).

block_type
enum<string>
required

Block type. Determines how content is interpreted: text (TipTap JSON), image (use asset_uuid), video (use asset_uuid), document (use asset_uuid), embed (use content with url), introduction (TipTap JSON), action_bar (use block_settings.action_bar), banner (use block_settings.banner), lead_deal_analytics (no content), goals (content with goals array), link (content with links), advanced_search (use block_settings.advanced_search), files (content with files array), pricing_calculator (use block_settings.pricing_calculator), secure_files (no content; use block_settings.secure_files — the files themselves are managed through the room secure-files endpoints).

Available options:
text,
image,
video,
document,
embed,
introduction,
action_bar,
banner,
lead_deal_analytics,
goals,
link,
advanced_search,
files,
pricing_calculator,
partner_details,
secure_files
series
number
required

Display order (1-indexed). Blocks are rendered in ascending series order.

label
string | null
content
object

Block content. Shape depends on block_type: text/introduction -> TipTap JSON; goals -> {title, description, goals: [...], startDate?, targetDate?}, where each date is a 'YYYY-MM-DD' string, {mode: 'fixed', date: 'YYYY-MM-DD'} or {mode: 'relative', anchor: 'partnership_created' | 'room_exposed' | 'partner_enabled', offsetDays} (resolved per partnership; negative offsets are before the anchor), and targetDate may also be {mode: 'after_start', days}; link -> link collection; files -> {files: [...]}; embed -> {url}; image/video/document -> null (use asset_uuid); action_bar/banner/advanced_search/pricing_calculator/lead_deal_analytics/secure_files -> null (use block_settings).

block_settings
object

Block-type-specific settings. See apiRoomBlockSettingsSchema for details.

asset_uuid
string

Asset UUID for image, video, or document blocks.

markdown
string

Markdown content for text blocks. When provided, converts to TipTap JSON and overrides the content field.

Maximum string length: 100000
contact_tag_uuids
string[]

Contact tags allowed to see this block. With none, every contact who can see the room sees the block. With one or more, only contacts that carry at least one of these tags see it. Omit, or send [], to create a block every room viewer sees. Tag UUIDs must be this company's contact tags (association "contact"; find them with listTags and association=contact). An unknown UUID, a tag from another company or a tag with any other association rejects the whole request. At most 100.

Maximum array length: 100

Response

201 - application/json

Default Response

uuid
string
required
block_type
enum<string>
required
Available options:
text,
image,
video,
document,
embed,
introduction,
action_bar,
banner,
lead_deal_analytics,
goals,
link,
advanced_search,
files,
pricing_calculator,
partner_details,
form,
secure_files
label
string | null
required
series
number
required

Display order (1-indexed)

content
any
required

Block content — shape varies by block_type. See documentation.

block_settings
object
required

Block-type-specific settings, as returned by the API. Same shape as the request except action_bar button target uuids (resource_uuid/folder_uuid/certification_uuid/room_uuid) tolerate null when the stored target no longer resolves for the caller's company.

asset_uuid
string | null
required

Associated asset (image, video file, document, etc.)

contact_tag_uuids
string[]
required

Contact tags allowed to see this block. With none, every contact who can see the room sees the block. With one or more, only contacts that carry at least one of these tags see it. An empty list means the block has no tag restriction.

created_at
string
required
updated_at
string
required