You're viewing a demo portfolio

Join the waitlist
PRSM

block.add

Active

Tool of Create Web Page

declared in 0.1.0

Append a new content block to a link-in-bio page. The block must match one of the 13 allowed types (link, social_row, whatsapp, phone_call, email_contact, image, gallery, video_embed, text, map_embed, product_card, lead_form, reviews) with that type's strict props. The server generates the block id and returns it in the response. For already-published pages, this saves an unpublished latest revision only. Do not call page.publish in the same assistant turn after this edit. Stop and tell the user the draft/preview was updated, then wait for a separate user message that explicitly asks to update the live link, publish, or make the changes public before calling page.publish. Do NOT call page.unpublish either — the live page should stay public; only unpublish when the user explicitly asks to take it down. The response includes nextSteps: after adding a block, share these hints with the user so they know what else would make the page more complete.

Parameters schema

{
  "type": "object",
  "required": [
    "pageId",
    "block"
  ],
  "properties": {
    "block": {
      "type": "object",
      "oneOf": [
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "link"
              ],
              "type": "string",
              "description": "Use this variant only for a link block."
            },
            "props": {
              "type": "object",
              "required": [
                "label",
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "maxLength": 2048,
                  "description": "Destination URL using http, https, mailto, tel, or sms."
                },
                "icon": {
                  "type": "string",
                  "maxLength": 64
                },
                "label": {
                  "type": "string",
                  "maxLength": 120
                },
                "highlight": {
                  "type": "boolean"
                },
                "thumbnail": {
                  "type": "object",
                  "required": [
                    "src"
                  ],
                  "properties": {
                    "alt": {
                      "type": "string",
                      "description": "Alt text for accessibility."
                    },
                    "src": {
                      "type": "string",
                      "description": "Image URL or stored media URL."
                    },
                    "width": {
                      "type": "number"
                    },
                    "height": {
                      "type": "number"
                    },
                    "variants": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "mediaAssetId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          },
          "description": "A tappable button with a label and URL. Optional thumbnail and icon.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "social_row"
              ],
              "type": "string",
              "description": "Use this variant only for a social_row block."
            },
            "props": {
              "type": "object",
              "required": [
                "items"
              ],
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "platform",
                      "url"
                    ],
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "Public http(s) social/profile URL."
                      },
                      "label": {
                        "type": "string",
                        "maxLength": 64
                      },
                      "platform": {
                        "enum": [
                          "instagram",
                          "tiktok",
                          "youtube",
                          "x",
                          "facebook",
                          "linkedin",
                          "spotify",
                          "apple_music",
                          "soundcloud",
                          "github",
                          "pinterest",
                          "threads",
                          "twitch",
                          "discord",
                          "telegram",
                          "snapchat",
                          "vimeo",
                          "behance",
                          "dribbble",
                          "medium",
                          "substack",
                          "website",
                          "other"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 16
                }
              },
              "additionalProperties": false
            }
          },
          "description": "A compact row of social icons. Items are { platform, url }.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "whatsapp"
              ],
              "type": "string",
              "description": "Use this variant only for a whatsapp block."
            },
            "props": {
              "type": "object",
              "required": [
                "number"
              ],
              "properties": {
                "label": {
                  "type": "string",
                  "maxLength": 120
                },
                "number": {
                  "type": "string",
                  "maxLength": 32,
                  "description": "Public WhatsApp phone number."
                },
                "message": {
                  "type": "string",
                  "maxLength": 500,
                  "description": "Optional prefilled message."
                }
              },
              "additionalProperties": false
            }
          },
          "description": "WhatsApp CTA. Requires a WhatsApp number (digits only).",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "phone_call"
              ],
              "type": "string",
              "description": "Use this variant only for a phone_call block."
            },
            "props": {
              "type": "object",
              "required": [
                "number"
              ],
              "properties": {
                "label": {
                  "type": "string",
                  "maxLength": 120
                },
                "number": {
                  "type": "string",
                  "maxLength": 32,
                  "description": "Public phone number."
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Tel: button. Requires a phone number.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "email_contact"
              ],
              "type": "string",
              "description": "Use this variant only for a email_contact block."
            },
            "props": {
              "type": "object",
              "required": [
                "email"
              ],
              "properties": {
                "email": {
                  "type": "string",
                  "description": "Public business email address."
                },
                "label": {
                  "type": "string",
                  "maxLength": 120
                },
                "subject": {
                  "type": "string",
                  "maxLength": 160
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Mailto: button. Requires an email address.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "image"
              ],
              "type": "string",
              "description": "Use this variant only for a image block."
            },
            "props": {
              "type": "object",
              "required": [
                "image"
              ],
              "properties": {
                "image": {
                  "type": "object",
                  "required": [
                    "src"
                  ],
                  "properties": {
                    "alt": {
                      "type": "string",
                      "description": "Alt text for accessibility."
                    },
                    "src": {
                      "type": "string",
                      "description": "Image URL or stored media URL."
                    },
                    "width": {
                      "type": "number"
                    },
                    "height": {
                      "type": "number"
                    },
                    "variants": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "mediaAssetId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "additionalProperties": false
                },
                "layout": {
                  "enum": [
                    "classic",
                    "wide",
                    "background"
                  ],
                  "type": "string"
                },
                "caption": {
                  "type": "string",
                  "maxLength": 280
                },
                "link_url": {
                  "type": "string",
                  "maxLength": 2048
                }
              },
              "additionalProperties": false
            }
          },
          "description": "A single image with layout classic | wide | background.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "gallery"
              ],
              "type": "string",
              "description": "Use this variant only for a gallery block."
            },
            "props": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "src"
                    ],
                    "properties": {
                      "alt": {
                        "type": "string",
                        "description": "Alt text for accessibility."
                      },
                      "src": {
                        "type": "string",
                        "description": "Image URL or stored media URL."
                      },
                      "width": {
                        "type": "number"
                      },
                      "height": {
                        "type": "number"
                      },
                      "variants": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "mediaAssetId": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 24
                },
                "display": {
                  "enum": [
                    "grid",
                    "carousel"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Multiple images in a grid or carousel.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "video_embed"
              ],
              "type": "string",
              "description": "Use this variant only for a video_embed block."
            },
            "props": {
              "type": "object",
              "required": [
                "provider",
                "video_id"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "maxLength": 160
                },
                "provider": {
                  "enum": [
                    "youtube",
                    "vimeo",
                    "mp4"
                  ],
                  "type": "string"
                },
                "video_id": {
                  "type": "string",
                  "maxLength": 2048,
                  "description": "Video id or URL, depending on provider."
                },
                "thumbnail": {
                  "type": "object",
                  "required": [
                    "src"
                  ],
                  "properties": {
                    "alt": {
                      "type": "string",
                      "description": "Alt text for accessibility."
                    },
                    "src": {
                      "type": "string",
                      "description": "Image URL or stored media URL."
                    },
                    "width": {
                      "type": "number"
                    },
                    "height": {
                      "type": "number"
                    },
                    "variants": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "mediaAssetId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          },
          "description": "YouTube, Vimeo, or mp4. Use normalized provider + video_id.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "text"
              ],
              "type": "string",
              "description": "Use this variant only for a text block."
            },
            "props": {
              "type": "object",
              "properties": {
                "body": {
                  "type": "string",
                  "maxLength": 2000
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 280
                  },
                  "maxItems": 12
                },
                "heading": {
                  "type": "string",
                  "maxLength": 160
                },
                "alignment": {
                  "enum": [
                    "left",
                    "center"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "description": "A short final-audience heading, body, and/or list block.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "map_embed"
              ],
              "type": "string",
              "description": "Use this variant only for a map_embed block."
            },
            "props": {
              "type": "object",
              "properties": {
                "lat": {
                  "type": "number",
                  "maximum": 90,
                  "minimum": -90
                },
                "lng": {
                  "type": "number",
                  "maximum": 180,
                  "minimum": -180
                },
                "zoom": {
                  "type": "number",
                  "maximum": 20,
                  "minimum": 1
                },
                "label": {
                  "type": "string",
                  "maxLength": 160
                },
                "address": {
                  "type": "string",
                  "maxLength": 400,
                  "description": "Public business address or service-area text."
                },
                "place_id": {
                  "type": "string",
                  "maxLength": 160
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Google Maps embed by address, place_id, or lat/lng.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "product_card"
              ],
              "type": "string",
              "description": "Use this variant only for a product_card block."
            },
            "props": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "maxLength": 160
                },
                "image": {
                  "type": "object",
                  "required": [
                    "src"
                  ],
                  "properties": {
                    "alt": {
                      "type": "string",
                      "description": "Alt text for accessibility."
                    },
                    "src": {
                      "type": "string",
                      "description": "Image URL or stored media URL."
                    },
                    "width": {
                      "type": "number"
                    },
                    "height": {
                      "type": "number"
                    },
                    "variants": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "mediaAssetId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "additionalProperties": false
                },
                "buy_url": {
                  "type": "string",
                  "description": "Public http(s) purchase URL."
                },
                "cta_label": {
                  "type": "string",
                  "maxLength": 120
                },
                "price_text": {
                  "type": "string",
                  "maxLength": 40
                },
                "description": {
                  "type": "string",
                  "maxLength": 280
                }
              },
              "additionalProperties": false
            }
          },
          "description": "A link-out commerce card with name, image, price, and buy URL.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "lead_form"
              ],
              "type": "string",
              "description": "Use this variant only for a lead_form block."
            },
            "props": {
              "type": "object",
              "required": [
                "mode",
                "fields"
              ],
              "properties": {
                "mode": {
                  "enum": [
                    "contact",
                    "newsletter",
                    "booking_interest"
                  ],
                  "type": "string"
                },
                "title": {
                  "type": "string",
                  "maxLength": 160
                },
                "fields": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "name",
                      "email",
                      "phone",
                      "message",
                      "company"
                    ],
                    "type": "string"
                  },
                  "maxItems": 5,
                  "minItems": 1
                },
                "description": {
                  "type": "string",
                  "maxLength": 280
                },
                "consent_text": {
                  "type": "string",
                  "maxLength": 400
                },
                "field_labels": {
                  "type": "object",
                  "description": "Public labels/placeholders for form fields in the page's target language.",
                  "additionalProperties": {
                    "type": "string",
                    "maxLength": 120
                  }
                },
                "submit_label": {
                  "type": "string",
                  "maxLength": 120
                },
                "success_message": {
                  "type": "string",
                  "maxLength": 280
                },
                "destination_email": {
                  "type": "string",
                  "description": "Public/business lead recipient email."
                },
                "destination_webhook": {
                  "type": "string",
                  "description": "Public http(s) webhook URL."
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Capture form. mode: contact | newsletter | booking_interest. Supply field labels and submit text for localized public pages.",
          "additionalProperties": false
        },
        {
          "type": "object",
          "required": [
            "type",
            "props"
          ],
          "properties": {
            "type": {
              "enum": [
                "reviews"
              ],
              "type": "string",
              "description": "Use this variant only for a reviews block."
            },
            "props": {
              "type": "object",
              "required": [
                "items"
              ],
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "author",
                      "body"
                    ],
                    "properties": {
                      "body": {
                        "type": "string",
                        "maxLength": 280
                      },
                      "role": {
                        "type": "string",
                        "maxLength": 120
                      },
                      "author": {
                        "type": "string",
                        "maxLength": 64
                      },
                      "avatar": {
                        "type": "object",
                        "required": [
                          "src"
                        ],
                        "properties": {
                          "alt": {
                            "type": "string",
                            "description": "Alt text for accessibility."
                          },
                          "src": {
                            "type": "string",
                            "description": "Image URL or stored media URL."
                          },
                          "width": {
                            "type": "number"
                          },
                          "height": {
                            "type": "number"
                          },
                          "variants": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "mediaAssetId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "additionalProperties": false
                      },
                      "rating": {
                        "type": "number",
                        "maximum": 5,
                        "minimum": 1
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 12
                },
                "display": {
                  "enum": [
                    "carousel",
                    "stack"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Carousel or stack of testimonials.",
          "additionalProperties": false
        }
      ],
      "description": "The block to add. Must match one of the 13 allowed types with that type's strict props schema. The server generates the block id."
    },
    "pageId": {
      "type": "string",
      "format": "uuid"
    },
    "editToken": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

What this tool wraps· 1 endpoint

min confidence0.700.50

Parent server

Create Web Page

https://github.com/daniel-lopez-puig/landings

1/7 registries
View full server →