SnazzyMoDocs
HTTP API

HTTP API Overview

SnazzyMo public HTTP API overview — waitlist signup and service health endpoints, request and error shapes, rate limits, and RFC 9727 discovery.

SnazzyMo's public HTTP API is small, JSON-only, and served over HTTPS from https://snazzymo.com. It has two endpoints: waitlist signup and service health. The interactive video tools run entirely in your browser and do not use this API.

The full generated reference — every endpoint, parameter, schema, and example derived from the OpenAPI specification — lives at API reference.

Discovery

SnazzyMo publishes an API catalog at /.well-known/api-catalog per RFC 9727, so clients and agents can discover every published API, its specification, and its status endpoint automatically:

ResourceURLRelation / type
API cataloghttps://snazzymo.com/.well-known/api-catalogRFC 9727, application/linkset+json
OpenAPI specificationhttps://snazzymo.com/api/openapi.jsonservice-desc, application/json
API documentationhttps://snazzymo.com/docs/apiservice-doc, text/html
Service statushttps://snazzymo.com/api/healthstatus, application/json

Join the waitlist

POST /api/waitlist adds a contact to the SnazzyMo early-access waitlist. Submitting an email address that is already on the list succeeds without creating a duplicate. Requests are rate limited per client IP address.

Request

POST /api/waitlist HTTP/1.1
Host: snazzymo.com
Content-Type: application/json

{
  "name": "Ada Lovelace",
  "email": "ada@example.com"
}

The JSON body requires name (1–100 characters) and email (valid address, up to 255 characters). Both values are trimmed before validation.

Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "success": true,
  "message": "You're on the waitlist! We'll notify you as soon as early access opens.",
  "alreadyExisted": false,
  "automationTriggered": true
}

A successful signup also sets a waitlist membership cookie. contactId is included when the provider returns one; alreadyExisted is true when the address was already on the list (no duplicate is created, and no automation event fires).

Errors

Error responses use the same JSON envelope: { "error": "<message>" }.

StatusMeaning
400The body failed validation (missing name, invalid email). The message names the first problem found.
429Too many signup attempts from your IP address. Retry after the Retry-After response header (in seconds).
500The waitlist service is temporarily unavailable.
502The upstream waitlist provider could not be reached.

Describe the API

GET /api/waitlist returns a machine-readable self-description of the waitlist API and advertises service-desc, service-doc, and status RFC 8288 Link headers, so the endpoint can be understood on its own:

GET /api/waitlist HTTP/1.1
Host: snazzymo.com
HTTP/1.1 200 OK
Content-Type: application/json
Link: <https://snazzymo.com/api/openapi.json>; rel="service-desc"; type="application/json",
  <https://snazzymo.com/docs/api>; rel="service-doc"; type="text/html",
  <https://snazzymo.com/api/health>; rel="status"; type="application/json"

{
  "name": "SnazzyMo Waitlist API",
  "description": "Adds a visitor to the SnazzyMo early-access waitlist. ...",
  "methods": ["GET", "POST"],
  "service-desc": "https://snazzymo.com/api/openapi.json",
  "service-doc": "https://snazzymo.com/docs/api",
  "status": "https://snazzymo.com/api/health"
}

Service health

GET /api/health reports whether the site and API are serving traffic. It is linked as the status relation in the API catalog. The response is never cached (Cache-Control: no-store).

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "ok",
  "service": "snazzymo-landing",
  "description": "SnazzyMo website and public API health.",
  "time": "2026-10-15T09:00:00.000Z"
}

OpenAPI specification

A machine-readable OpenAPI 3.1 document describes every endpoint, request body, and response on this page. Load it into Swagger UI, Postman, or any OpenAPI-compatible client to get started — or read the generated API reference.