Documentation

Everything you can do with NyxForms

Install in one line, then customise as much or as little as you like. All endpoints are plain JSON over HTTPS.

πŸ‘‹ Kein Entwickler? Du brauchst nichts hiervon β€” registriere dich einfach und kopiere den fertigen Code. Diese Seite ist nur fΓΌr Leute, die tiefer einsteigen wollen.

Quick start

Create an account, copy your embed snippet from the dashboard, and paste it into your page:

<div id="nyxforms"></div>
<script src="https://nyxforms.heynyx.dev/embed/YOUR_FORM_ID.js" defer></script>

The script injects a fully styled form into #nyxforms. If that element does not exist, the form is inserted right where the script tag sits β€” so you can drop the snippet anywhere without an extra container.

Embed options

Every setting can be overridden with a data-* attribute on the script tag:

AttributeDescriptionDefault
data-themecosmic, dark, light or minimalcosmic
data-accent-colorAny hex color for buttons and focus rings#7c5cff
data-button-textSubmit button labelNachricht senden
data-titleHeading shown above the formform name
data-subtitleSmall line under the headingβ€”
data-success-messageText shown with the checkmark animationDanke! …
data-targetCSS selector of the mount element#nyxforms
data-hide-titletrue renders only the fieldsfalse
data-hide-brandingtrue hides the footer link (Pro)false
data-langUI language of the built-in labels: de or ende

The widget ships with German labels by default (Name, E-Mail, Nachricht, Nachricht senden) including all validation messages. Add data-lang="en" for English:

<script src="https://nyxforms.heynyx.dev/embed/YOUR_FORM_ID.js"
        data-lang="en" defer></script>
<script src="https://nyxforms.heynyx.dev/embed/YOUR_FORM_ID.js"
  data-theme="light"
  data-accent-color="#0ea5e9"
  data-button-text="Request a quote"
  data-target="#contact-box"
  defer></script>

REST API

Reading data requires your form's API key, passed either as a ?key= query parameter or an Authorization: Bearer header. Submitting is public β€” no key needed.

Submit a submission

POST /api/forms/:id/submit
Content-Type: application/json

{
  "name": "Jane Doe",
  "email": "jane@example.com",
  "message": "Hello there!",
  "fields": { "company": "Acme Inc" }
}

Returns 201 { "ok": true, "id": "…" }. Rate limited to 5 submissions per minute per IP. A non-empty website field is treated as a bot and silently dropped.

List submissions

GET /api/forms/:id/submissions?key=nyxf_…&q=search&unread=1&limit=200

Form settings

GET   /api/forms/:id?key=…            # read settings
PATCH /api/forms/:id?key=…            # update settings

{
  "name": "Contact",
  "email": "you@example.com",
  "theme": "dark",
  "accent_color": "#4d8dff",
  "button_text": "Send",
  "success_message": "Got it!",
  "webhook_url": "https://hooks.example.com/nyx",
  "notify_email": true,
  "custom_fields": [
    { "name": "company", "label": "Company", "type": "text", "required": false }
  ]
}

Other endpoints

Method & pathPurpose
GET /api/forms/:id/statsDaily counts for the last 30 days
GET /api/forms/:id/export.csvDownload all submissions as CSV
POST /api/forms/:id/submissions/:sid/readMark read / unread
DELETE /api/forms/:id/submissions/:sidDelete one submission
POST /api/forms/:id/rotate-keyIssue a new API key
DELETE /api/forms/:idDelete the form and its data
GET /api/forms/:id/configPublic embed config (no key)

Webhooks

Set a webhook URL in your form settings and every submission is POSTed as JSON:

{
  "event": "submission.created",
  "data": {
    "id": "…", "form_id": "…",
    "name": "Jane Doe", "email": "jane@example.com",
    "message": "Hello there!",
    "fields": { "company": "Acme Inc" },
    "created_at": "2026-08-12 21:30:00"
  }
}

Delivery is fire-and-forget with an 8-second timeout β€” a slow or failing webhook never blocks or rejects the visitor's submission.

Custom fields

Define extra fields in the dashboard under Settings β†’ Custom fields. Supported types: text, email, number, tel, url, textarea and select. They render automatically in the embed and appear in the dashboard, emails, webhooks and CSV exports.

Limits

FreePro (€5/mo)
Submissions per month50Unlimited
Forms3Unlimited
Email notificationsβœ“βœ“
Webhooksβ€”βœ“
Remove brandingβ€”βœ“
CSV export & APIβœ“βœ“

Ready to try it?

Your first form takes 30 seconds and costs nothing.

Create a free account β†’