NueForm

Teams-API

Teams, Mitglieder, Rollen und Einladungen für die kollaborative Formularerstellung verwalten.

Mit der Teams-API erstellst und verwaltest du Teams für die kollaborative Formularerstellung. Teams ermöglichen mehreren Nutzern, Formulare zu teilen — mit rollenbasierter Zugriffskontrolle, die regelt, wer Formulare und Antworten ansehen, bearbeiten und löschen darf.

Alle Request- und Antwort-Bodys verwenden Feldnamen in snake_case.

Teamrollen

ownerrole

Voller Zugriff. Kann Mitglieder und Abrechnung verwalten und das Team löschen.

adminrole

Kann Formulare erstellen, bearbeiten und löschen, Mitglieder verwalten und Antworten ansehen.

editorrole

Kann Formulare erstellen und bearbeiten sowie Antworten ansehen. Kann keine Mitglieder verwalten.

viewerrole

Kann Formulare und Antworten ansehen. Kann nichts erstellen oder bearbeiten.

Teams auflisten

GET/api/v1/teams

Gibt alle Teams zurück, in denen der authentifizierte Nutzer Mitglied ist.

Antwort

json
{
  "teams": [
    {
      "id": "665b2c3d4e5f6a7b8c9d0e1f",
      "name": "Marketing",
      "slug": "marketing",
      "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "created_at": "2026-01-10T09:00:00.000Z",
      "updated_at": "2026-02-15T11:30:00.000Z",
      "member_count": 5,
      "your_role": "admin"
    },
    {
      "id": "665c3d4e5f6a7b8c9d0e1f20",
      "name": "Product",
      "slug": "product",
      "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "created_at": "2026-02-01T14:00:00.000Z",
      "updated_at": "2026-02-20T16:45:00.000Z",
      "member_count": 3,
      "your_role": "owner"
    }
  ]
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams" \
  -H "Authorization: Bearer YOUR_API_KEY"

Team erstellen

POST/api/v1/teams

Erstellt ein neues Team. Der authentifizierte Nutzer wird zum Team-Eigentümer.

Request-Body

namestring

Teamname

Request-Beispiel

json
{
  "name": "Marketing"
}

Antwort

json
{
  "id": "665b2c3d4e5f6a7b8c9d0e1f",
  "name": "Marketing",
  "slug": "marketing",
  "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
  "created_at": "2026-02-28T12:00:00.000Z",
  "updated_at": "2026-02-28T12:00:00.000Z"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/teams" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Marketing" }'

Team abrufen

GET/api/v1/teams/:teamId

Ruft ein einzelnes Team per ID ab.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "id": "665b2c3d4e5f6a7b8c9d0e1f",
  "name": "Marketing",
  "slug": "marketing",
  "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
  "created_at": "2026-01-10T09:00:00.000Z",
  "updated_at": "2026-02-15T11:30:00.000Z",
  "member_count": 5
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY"

Team aktualisieren

PUT/api/v1/teams/:teamId

Aktualisiert Team-Eigenschaften. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Request-Body

namestring

Neuer Teamname

Request-Beispiel

json
{
  "name": "Marketing & Growth"
}

Antwort

Gibt das aktualisierte Team-Objekt zurück.

Codebeispiele

bash
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Marketing & Growth" }'

Team löschen

DELETE/api/v1/teams/:teamId

Löscht ein Team dauerhaft. Nur der Team-Eigentümer kann ein Team löschen.

Das Löschen eines Teams entfernt alle Teammitgliedschaften und Einladungen. Formulare des Teams werden nicht automatisch gelöscht, sind für ehemalige Teammitglieder aber nicht mehr zugänglich.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "success": true
}

Codebeispiele

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY"

Mitglieder auflisten

GET/api/v1/teams/:teamId/members

Gibt alle Mitglieder eines Teams zurück.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "members": [
    {
      "id": "66d1e2f3a4b5c6d7e8f9a0b1",
      "user_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "email": "alice@example.com",
      "first_name": "Alice",
      "last_name": "Johnson",
      "role": "owner",
      "joined_at": "2026-01-10T09:00:00.000Z"
    },
    {
      "id": "66d2e3f4a5b6c7d8e9f0a1b2",
      "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
      "email": "bob@example.com",
      "first_name": "Bob",
      "last_name": "Smith",
      "role": "editor",
      "joined_at": "2026-01-15T14:30:00.000Z"
    }
  ]
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
  -H "Authorization: Bearer YOUR_API_KEY"

Mitglied hinzufügen

POST/api/v1/teams/:teamId/members

Fügt einen Nutzer per Nutzer-ID direkt zu einem Team hinzu. Erfordert die Rolle owner oder admin. Um einen Nutzer per E-Mail einzuladen, verwende stattdessen Einladung erstellen.

Pfad-Parameter

teamIdstring

Die Team-ID

Request-Body

user_idstring

Die hinzuzufügende Nutzer-ID

rolestring

Zuzuweisende Rolle: "admin", "editor", "viewer" (Standard: "viewer")

Request-Beispiel

json
{
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "role": "editor"
}

Antwort

json
{
  "id": "66d2e3f4a5b6c7d8e9f0a1b2",
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f",
  "role": "editor",
  "joined_at": "2026-02-28T12:00:00.000Z"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
    "role": "editor"
  }'

Mitgliederrolle aktualisieren

PUT/api/v1/teams/:teamId/members/:memberId

Aktualisiert die Rolle eines Teammitglieds. Erfordert die Rolle owner oder admin. Die Rolle des Eigentümers kann nicht geändert werden.

Pfad-Parameter

teamIdstring

Die Team-ID

memberIdstring

Die Teammitglieds-ID

Request-Body

rolestring

Neue Rolle: "admin", "editor", "viewer"

Request-Beispiel

json
{
  "role": "admin"
}

Antwort

json
{
  "id": "66d2e3f4a5b6c7d8e9f0a1b2",
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f",
  "role": "admin",
  "joined_at": "2026-01-15T14:30:00.000Z"
}

Codebeispiele

bash
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "role": "admin" }'

Mitglied entfernen

DELETE/api/v1/teams/:teamId/members/:memberId

Entfernt ein Mitglied aus einem Team. Erfordert die Rolle owner oder admin. Der Team-Eigentümer kann nicht entfernt werden.

Pfad-Parameter

teamIdstring

Die Team-ID

memberIdstring

Die Teammitglieds-ID

Antwort

json
{
  "success": true
}

Codebeispiele

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
  -H "Authorization: Bearer YOUR_API_KEY"

Einladungen auflisten

GET/api/v1/teams/:teamId/invitations

Gibt alle ausstehenden Einladungen eines Teams zurück. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "invitations": [
    {
      "id": "66e1f2a3b4c5d6e7f8a9b0c1",
      "email": "carol@example.com",
      "role": "editor",
      "invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
      "status": "pending",
      "expires_at": "2026-03-07T12:00:00.000Z",
      "created_at": "2026-02-28T12:00:00.000Z"
    }
  ]
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
  -H "Authorization: Bearer YOUR_API_KEY"

Einladung erstellen

POST/api/v1/teams/:teamId/invitations

Sendet eine E-Mail-Einladung zum Teambeitritt. Die Einladung enthält ein eindeutiges Token und läuft nach 7 Tagen ab. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Request-Body

emailstring

Einzuladende E-Mail-Adresse

rolestring

Bei Annahme zuzuweisende Rolle: "admin", "editor", "viewer" (Standard: "editor")

Request-Beispiel

json
{
  "email": "carol@example.com",
  "role": "editor"
}

Antwort

json
{
  "id": "66e1f2a3b4c5d6e7f8a9b0c1",
  "email": "carol@example.com",
  "role": "editor",
  "invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
  "status": "pending",
  "expires_at": "2026-03-07T12:00:00.000Z",
  "created_at": "2026-02-28T12:00:00.000Z"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "carol@example.com",
    "role": "editor"
  }'

Einladung stornieren

DELETE/api/v1/teams/:teamId/invitations/:invId

Storniert eine ausstehende Einladung. Erfordert die Rolle owner oder admin. Das Einladungstoken ist danach nicht mehr gültig.

Pfad-Parameter

teamIdstring

Die Team-ID

invIdstring

Die Einladungs-ID

Antwort

json
{
  "success": true
}

Codebeispiele

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations/66e1f2a3b4c5d6e7f8a9b0c1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Audit-Logs

GET/api/v1/teams/:teamId/audit-logs

Gibt eine paginierte Liste der Audit-Log-Ereignisse des Teams zurück. Erfordert die Rolle owner oder admin. Nur im Enterprise-Plan.

Pfad-Parameter

teamIdstring

Die Team-ID

Query-Parameter

actionstring

Filtert nach Aktionstyp (z. B. "form.published", "member.removed")

user_idstring

Filtert nach dem Nutzer, der die Aktion ausgeführt hat

sincestring

ISO-8601-Datum — nur Ereignisse ab diesem Datum

untilstring

ISO-8601-Datum — nur Ereignisse bis zu diesem Datum

pageinteger

Seitennummer (Standard: 1)

per_pageinteger

Ergebnisse pro Seite (Standard: 50, max.: 100)

Antwort

json
{
  "events": [
    {
      "id": "670a1b2c3d4e5f6a7b8c9d0e",
      "action": "form.published",
      "user_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "user_email": "alice@example.com",
      "details": {
        "form_id": "665f1a2b3c4d5e6f7a8b9c0d",
        "form_title": "Customer Survey"
      },
      "ip_address": "203.0.113.42",
      "timestamp": "2026-03-20T14:30:00.000Z"
    }
  ],
  "total": 1,
  "page": 1,
  "per_page": 50
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/audit-logs?action=form.published&per_page=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Team-Branding abrufen

GET/api/v1/teams/:teamId/branding

Gibt die Branding-Konfiguration des Teams zurück. Erfordert Teammitgliedschaft.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "logo_url": "https://cdn.nueform.io/teams/665b2c/logo.png",
  "primary_color": "#6366f1",
  "background_color": "#ffffff",
  "text_color": "#1a1a1a",
  "font_family": "Inter",
  "footer_text": "Powered by Acme Corp"
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/branding" \
  -H "Authorization: Bearer YOUR_API_KEY"

Team-Branding aktualisieren

PUT/api/v1/teams/:teamId/branding

Aktualisiert die Branding-Konfiguration des Teams. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Request-Body

logo_urlstring

URL des Team-Logos

primary_colorstring

Primäre Hex-Farbe (z. B. "#6366f1")

background_colorstring

Hex-Hintergrundfarbe

text_colorstring

Hex-Textfarbe

font_familystring

Name der Google-Fonts-Schriftfamilie

footer_textstring

Eigener Footer-Text

Request-Beispiel

json
{
  "primary_color": "#8b5cf6",
  "font_family": "Poppins",
  "footer_text": "2026 Acme Corp. All rights reserved."
}

Antwort

Gibt das aktualisierte Branding-Objekt zurück.

Codebeispiele

bash
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/branding" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "primary_color": "#8b5cf6", "font_family": "Poppins" }'

Team-Branding löschen

DELETE/api/v1/teams/:teamId/branding

Entfernt alle Team-Branding-Einstellungen, wodurch Formulare auf die Standards des Eigentümers oder Systemstandards zurückfallen. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "success": true
}

Codebeispiele

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/branding" \
  -H "Authorization: Bearer YOUR_API_KEY"

Subdomain abrufen

GET/api/v1/teams/:teamId/subdomain

Gibt die Subdomain-Konfiguration des Teams zurück. Erfordert Teammitgliedschaft.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "subdomain": "acme-marketing",
  "full_url": "https://acme-marketing.nueform.io"
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/subdomain" \
  -H "Authorization: Bearer YOUR_API_KEY"

Subdomain setzen

PUT/api/v1/teams/:teamId/subdomain

Setzt oder aktualisiert die Subdomain des Teams. Erfordert die Rolle owner oder admin. Pro- oder Enterprise-Plan erforderlich.

Pfad-Parameter

teamIdstring

Die Team-ID

Request-Body

subdomainstring

Gewünschte Subdomain (nur Kleinbuchstaben, Zahlen und Bindestriche)

Request-Beispiel

json
{
  "subdomain": "acme-marketing"
}

Antwort

json
{
  "subdomain": "acme-marketing",
  "full_url": "https://acme-marketing.nueform.io"
}

Codebeispiele

bash
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/subdomain" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "subdomain": "acme-marketing" }'

Eigene Domain abrufen

GET/api/v1/teams/:teamId/custom-domain

Gibt die Konfiguration der eigenen Domain des Teams zurück. Erfordert Teammitgliedschaft. Nur im Enterprise-Plan.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "domain": "forms.acmecorp.com",
  "status": "verified",
  "ssl_status": "active",
  "cname_target": "custom.nueform.io",
  "verified_at": "2026-03-15T10:00:00.000Z"
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain" \
  -H "Authorization: Bearer YOUR_API_KEY"

Eigene Domain hinzufügen

POST/api/v1/teams/:teamId/custom-domain

Fügt dem Team eine eigene Domain hinzu. Erfordert die Rolle owner oder admin. Nur im Enterprise-Plan. Bestätige nach dem Hinzufügen die DNS-Einrichtung über den Endpunkt Domain verifizieren.

Pfad-Parameter

teamIdstring

Die Team-ID

Request-Body

domainstring

Die eigene Domain (z. B. "forms.acmecorp.com")

Request-Beispiel

json
{
  "domain": "forms.acmecorp.com"
}

Antwort

json
{
  "domain": "forms.acmecorp.com",
  "status": "pending_verification",
  "cname_target": "custom.nueform.io",
  "instructions": "Add a CNAME record pointing forms.acmecorp.com to custom.nueform.io"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "forms.acmecorp.com" }'

Eigene Domain entfernen

DELETE/api/v1/teams/:teamId/custom-domain

Entfernt die eigene Domain vom Team. Formulare kehren zur Standard-NueForm-URL zurück. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "success": true
}

Codebeispiele

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain" \
  -H "Authorization: Bearer YOUR_API_KEY"

Eigene Domain verifizieren

POST/api/v1/teams/:teamId/custom-domain/verify

Verifiziert, dass die DNS-Einträge für die eigene Domain korrekt konfiguriert sind. SSL wird nach erfolgreicher Verifizierung automatisch bereitgestellt. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort (Erfolg)

json
{
  "domain": "forms.acmecorp.com",
  "status": "verified",
  "ssl_status": "provisioning",
  "verified_at": "2026-03-20T15:00:00.000Z"
}

Antwort (Fehlschlag)

json
{
  "domain": "forms.acmecorp.com",
  "status": "pending_verification",
  "error": "CNAME record not found. Expected: forms.acmecorp.com -> custom.nueform.io"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain/verify" \
  -H "Authorization: Bearer YOUR_API_KEY"

Abrechnung abrufen

GET/api/v1/teams/:teamId/billing

Gibt die Abrechnungsübersicht des Teams zurück, inklusive Plandetails, Sitzplatznutzung und Informationen zur nächsten Rechnung. Erfordert die Rolle owner oder admin.

Pfad-Parameter

teamIdstring

Die Team-ID

Antwort

json
{
  "plan": "enterprise",
  "billing_cycle": "monthly",
  "price_per_month": 99,
  "included_seats": 20,
  "used_seats": 14,
  "extra_seats": 0,
  "extra_seat_cost": 1.00,
  "viewer_seats": 38,
  "next_invoice_date": "2026-04-01T00:00:00.000Z",
  "next_invoice_amount": 99.00
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/billing" \
  -H "Authorization: Bearer YOUR_API_KEY"

Team-Analytics abrufen

GET/api/v1/teams/:teamId/analytics

Gibt aggregierte Analytics über alle Team-Formulare zurück. Erfordert Teammitgliedschaft.

Pfad-Parameter

teamIdstring

Die Team-ID

Query-Parameter

sincestring

ISO-8601-Datum — nur Daten ab diesem Datum

untilstring

ISO-8601-Datum — nur Daten bis zu diesem Datum

Antwort

json
{
  "total_forms": 24,
  "total_responses": 12580,
  "avg_completion_rate": 0.73,
  "responses_by_day": [
    { "date": "2026-03-19", "count": 142 },
    { "date": "2026-03-20", "count": 167 }
  ],
  "top_forms": [
    {
      "form_id": "665f1a2b3c4d5e6f7a8b9c0d",
      "title": "Customer Survey",
      "responses": 4230,
      "completion_rate": 0.82
    }
  ]
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/analytics?since=2026-03-01" \
  -H "Authorization: Bearer YOUR_API_KEY"

Formular-Gäste auflisten

GET/api/v1/forms/:id/guests

Gibt alle zu einem bestimmten Formular eingeladenen Gäste zurück. Erfordert die Rolle owner oder admin im Team des Formulars.

Pfad-Parameter

idstring

Die Formular-ID

Antwort

json
{
  "guests": [
    {
      "id": "671a2b3c4d5e6f7a8b9c0d1e",
      "email": "contractor@external.com",
      "first_name": "Dana",
      "last_name": "Lee",
      "permission": "edit",
      "invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
      "accepted_at": "2026-03-18T10:00:00.000Z"
    }
  ]
}

Codebeispiele

bash
curl -X GET "https://api.nueform.io/api/v1/forms/665f1a2b3c4d5e6f7a8b9c0d/guests" \
  -H "Authorization: Bearer YOUR_API_KEY"

Gast einladen

POST/api/v1/forms/:id/guests

Lädt einen externen Mitwirkenden zu einem bestimmten Formular ein. Erfordert die Rolle owner oder admin im Team des Formulars. Der Gast erhält eine E-Mail-Einladung.

Pfad-Parameter

idstring

Die Formular-ID

Request-Body

emailstring

E-Mail-Adresse des Gastes

permissionstring

Berechtigungsstufe: "view" oder "edit" (Standard: "view")

Request-Beispiel

json
{
  "email": "contractor@external.com",
  "permission": "edit"
}

Antwort

json
{
  "id": "671a2b3c4d5e6f7a8b9c0d1e",
  "email": "contractor@external.com",
  "permission": "edit",
  "status": "pending",
  "invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
  "created_at": "2026-03-20T12:00:00.000Z"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/forms/665f1a2b3c4d5e6f7a8b9c0d/guests" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "contractor@external.com",
    "permission": "edit"
  }'

Gast entfernen

DELETE/api/v1/forms/:id/guests

Entzieht einem Gast den Zugriff auf ein bestimmtes Formular. Erfordert die Rolle owner oder admin im Team des Formulars.

Pfad-Parameter

idstring

Die Formular-ID

Request-Body

guest_idstring

Die ID des zu entfernenden Gastes

Request-Beispiel

json
{
  "guest_id": "671a2b3c4d5e6f7a8b9c0d1e"
}

Antwort

json
{
  "success": true
}

Codebeispiele

bash
curl -X DELETE "https://api.nueform.io/api/v1/forms/665f1a2b3c4d5e6f7a8b9c0d/guests" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "guest_id": "671a2b3c4d5e6f7a8b9c0d1e" }'

Gast-Einladung annehmen

POST/api/v1/forms/guests/accept

Nimmt eine Gast-Einladung mit dem Token aus der Einladungs-E-Mail an. Der authentifizierte Nutzer erhält Zugriff auf das Formular mit der angegebenen Berechtigungsstufe.

Request-Body

tokenstring

Das Einladungstoken aus dem E-Mail-Link

Request-Beispiel

json
{
  "token": "gt_abc123def456ghi789"
}

Antwort

json
{
  "form_id": "665f1a2b3c4d5e6f7a8b9c0d",
  "form_title": "Customer Survey",
  "permission": "edit",
  "team_name": "Marketing"
}

Codebeispiele

bash
curl -X POST "https://api.nueform.io/api/v1/forms/guests/accept" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "token": "gt_abc123def456ghi789" }'

Fehlerantworten

Standard-Fehlerantworten, die die Teams-API-Endpunkte zurückgeben.

Fehlercodes

400Bad Request

Fehlende Pflichtfelder, ungültige Rolle

401Unauthorized

Fehlender oder ungültiger API-Schlüssel

403Forbidden

Unzureichende Rolle für die Aktion

404Not Found

Team, Mitglied oder Einladung nicht gefunden

409Conflict

Nutzer ist bereits Mitglied, doppelte Einladung

500Server Error

Interner Serverfehler

Fehlerbeispiel

json
{
  "error": "Not authorized to manage team members"
}

Telefonie-Zugriff aktualisieren

PUT/api/v1/teams/:teamId/members/:memberId/telephony

Aktualisiert die Telefonie-Zugriffsstufe eines Mitglieds. Erfordert die Rolle Admin oder Eigentümer. Der Telefonie-Zugriff steuert unabhängig von der Teamrolle, welche telefonbezogenen Aktionen ein Mitglied ausführen darf.

Telefonie-Zugriffsstufen

StufeBerechtigungen
noneKein Telefonie-Zugriff
observerAnrufprotokolle, Aufzeichnungen, Telefonnummern und Team-Stimmen ansehen
operatorAusgehende Anrufe tätigen, Nummern mit Formularen verknüpfen, Kampagnen starten
managerNummern bereitstellen/freigeben, Kampagnen verwalten, Nummern pausieren/fortsetzen
fullVollständige Kontrolle, einschließlich Erstellen/Löschen von Team-Stimmen

Request-Body

telephony_accessstringerforderlich

Die zu setzende Telefonie-Zugriffsstufe. Eine von: none, observer, operator, manager, full.

Request

json
{
  "telephony_access": "operator"
}

Antwort

json
{
  "message": "Telephony access updated",
  "telephony_access": "operator"
}

Team-Stimmen auflisten

GET/api/voices?teamId=:teamId

Listet alle für den Nutzer verfügbaren Stimmen auf, inklusive der Team-Stimmen des angegebenen Teams. Team-Stimmen werden mit allen Teammitgliedern geteilt, die mindestens Beobachter-Telefonie-Zugriff haben.

Die Antwort enthält die Felder source und teamName, um zwischen persönlichen und Team-Stimmen zu unterscheiden.

Antwort

json
{
  "voices": [
    {
      "id": "qwen:preset:Ryan",
      "name": "Ryan",
      "category": "preset",
      "source": "system"
    },
    {
      "id": "qwen:clone:abc123",
      "name": "My Voice",
      "category": "custom",
      "type": "clone",
      "source": "personal"
    },
    {
      "id": "qwen:clone:def456",
      "name": "Team Voice",
      "category": "custom",
      "type": "design",
      "source": "team",
      "teamName": "Marketing Team",
      "teamId": "team123"
    }
  ]
}

Team-Stimme erstellen

POST/api/voices/create

Erstellt eine eigene Stimme und weist sie einem Team zu. Erfordert die Telefonie-Berechtigung Vollzugriff im Ziel-Team. Die Gebühr von 5 $ für die Stimmerstellung wird dem Konto des Erstellers berechnet.

Request-Body

namestringerforderlich

Anzeigename der Stimme.

typestringerforderlich

Stimmtyp: clone oder design.

teamIdstringerforderlich

Die Team-ID, der die Stimme zugewiesen wird.

sampleBlobUrlstring

Audiosample-URL für Klon-Stimmen.

Request

json
{
  "name": "Team Support Voice",
  "type": "design",
  "teamId": "team123",
  "designGender": "female",
  "designTone": "professional"
}

Antwort

json
{
  "voice": {
    "id": "qwen:clone:new123",
    "dbId": "new123",
    "name": "Team Support Voice",
    "type": "design",
    "category": "custom",
    "createdAt": "2026-03-25T00:00:00.000Z"
  }
}
Zuletzt aktualisiert: 20. Juli 2026