FloatMessage API

The FloatMessage API lets you - and AI agents acting on your behalf - do everything the dashboard can do, programmatically. It comes in two shapes that share one authentication scheme:

  • A JSON REST API under https://floatmessage.com/api/v1.
  • A hosted MCP server at /api/mcp so AI agents can call FloatMessage as native tools.

It is a thin, additive layer over the same data your dashboard uses, so anything you create through the API appears instantly in the app and vice-versa. All plans, including Free, can use it.

What you can manage

MessagesFloating messages / popups - create, edit, target, schedule, archive.
Landing pagesCreate from templates, edit sections, publish/unpublish, read leads.
DomainsList, add, and remove the websites in your account.
Knowledge baseNotes and URLs that ground the AI chat replies.
SubmissionsRead form submissions and survey responses.
AnalyticsEngagement-event summaries (impressions, clicks, dismisses, chat).
Live chatList conversations, read history, send owner replies.

See the full per-endpoint list in REST Resources, or the machine-readable OpenAPI 3.1 spec.

Core concepts

  • Authentication - a personal API key sent as a Bearer token. Create one under Account → API Keys. See Authentication.
  • Domains - most resources belong to a domain. Requests default to your primary domain; target another with ?domain= (hostname or UUID) or the X-Domain header.
  • Envelopes - list endpoints return { "data": [...] }; single resources return the object; errors return { "error": { "code", "message" } }.
  • Limits - requests are rate limited per key and writes respect your plan. See Rate Limits & Errors.

A 30-second example

# 1. Confirm your key works
curl https://floatmessage.com/api/v1/me \
  -H "Authorization: Bearer fm_live_YOUR_KEY"

# 2. Create a floating message
curl -X POST https://floatmessage.com/api/v1/messages \
  -H "Authorization: Bearer fm_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Summer sale","template":"banner","htmlContent":"<div>20% off</div>"}'

Where to next