BlueSuite Developers

Legacy embedded forms

Maintain existing v1 embed snippets and migrate new work to Client Forms

This API is retained for existing v1 embed snippets. Use Client Forms for new website forms and booking flows, or Leads for authenticated server-to-server inquiry capture.

Submit an existing embed form

POST /api/forms/embed-request

Send JSON to https://my.bluesuite.app/api/forms/embed-request. This endpoint reads the API key from apiKey in the body or api_key in the query, not from the Bearer header. Use a dedicated embed key with forms:write. Old-format keys also require workspaceId.

FieldRequiredMeaning
apiKeyUnless in queryEmbed API key
workspaceIdFor legacy key formatPositive workspace ID
formDataYesObject described below
formData fieldRequiredMeaning
firstName, lastNameYes1 to 50 characters each
emailYesValid email
phoneYesDigits, optional leading +, first digit 1 to 9
descriptionYes5 to 1,000 characters
companyNoUp to 100 characters
propertyNoObject with required street (1 to 100 characters); optional street2, city, state, zip
customFieldsNoValues keyed by configured custom-field keys
websiteNoHoneypot; leave empty
{
  "apiKey": "wk_example.your_embed_key",
  "formData": {
    "firstName": "Jamie",
    "lastName": "Rivera",
    "email": "jamie@example.com",
    "phone": "+15551234567",
    "description": "Please contact me about annual maintenance.",
    "website": ""
  }
}

The flow resolves/creates the contact, optionally creates a property, and creates a request. The requests module must be enabled. This legacy flow does not create a Client Form submission record.

Success is 201 with { "success": true, "data": { "requestId": 42, "requestNumber": 10, "contactId": 12, "propertyId": null } }.

Malformed input returns 400, bad credentials 401, a filled honeypot 422, and exceeding 100 submissions per hour per workspace returns 429. Other failures include unavailable workspaces or disabled requests. The endpoint supports browser CORS; use only a dedicated embed key in client-side code.

Country configuration

GET /api/forms/embed-config

Supply api_key in the query with forms:read; old keys also need workspace_id. Returns { "country": "US" } using the workspace country (US fallback). The response may be cached for one hour.

On this page