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
ownerroleVoller Zugriff. Kann Mitglieder und Abrechnung verwalten und das Team löschen.
adminroleKann Formulare erstellen, bearbeiten und löschen, Mitglieder verwalten und Antworten ansehen.
editorroleKann Formulare erstellen und bearbeiten sowie Antworten ansehen. Kann keine Mitglieder verwalten.
viewerroleKann Formulare und Antworten ansehen. Kann nichts erstellen oder bearbeiten.
/api/v1/teamsPOST/api/v1/teamsGET/api/v1/teams/:teamIdPUT/api/v1/teams/:teamIdDELETE/api/v1/teams/:teamIdGET/api/v1/teams/:teamId/membersPOST/api/v1/teams/:teamId/membersPUT/api/v1/teams/:teamId/members/:memberIdDELETE/api/v1/teams/:teamId/members/:memberIdGET/api/v1/teams/:teamId/invitationsPOST/api/v1/teams/:teamId/invitationsDELETE/api/v1/teams/:teamId/invitations/:invIdGET/api/v1/teams/:teamId/audit-logsGET/api/v1/teams/:teamId/brandingPUT/api/v1/teams/:teamId/brandingDELETE/api/v1/teams/:teamId/brandingGET/api/v1/teams/:teamId/subdomainPUT/api/v1/teams/:teamId/subdomainGET/api/v1/teams/:teamId/custom-domainPOST/api/v1/teams/:teamId/custom-domainDELETE/api/v1/teams/:teamId/custom-domainPOST/api/v1/teams/:teamId/custom-domain/verifyGET/api/v1/teams/:teamId/billingGET/api/v1/teams/:teamId/analyticsGET/api/v1/forms/:id/guestsPOST/api/v1/forms/:id/guestsDELETE/api/v1/forms/:id/guestsPOST/api/v1/forms/guests/acceptPUT/api/v1/teams/:teamId/members/:memberId/telephonyGET/api/voices?teamId=:teamIdPOST/api/voices/createTeams auflisten
/api/v1/teamsGibt alle Teams zurück, in denen der authentifizierte Nutzer Mitglied ist.
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/teams" \
-H "Authorization: Bearer YOUR_API_KEY"
Team erstellen
/api/v1/teamsErstellt ein neues Team. Der authentifizierte Nutzer wird zum Team-Eigentümer.
Request-Body
namestringTeamname
Request-Beispiel
{
"name": "Marketing"
}
Antwort
{
"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
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
/api/v1/teams/:teamIdRuft ein einzelnes Team per ID ab.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY"
Team aktualisieren
/api/v1/teams/:teamIdAktualisiert Team-Eigenschaften. Erfordert die Rolle owner oder admin.
Pfad-Parameter
teamIdstringDie Team-ID
Request-Body
namestringNeuer Teamname
Request-Beispiel
{
"name": "Marketing & Growth"
}
Antwort
Gibt das aktualisierte Team-Objekt zurück.
Codebeispiele
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
/api/v1/teams/:teamIdLö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
teamIdstringDie Team-ID
Antwort
{
"success": true
}
Codebeispiele
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
-H "Authorization: Bearer YOUR_API_KEY"
Mitglieder auflisten
/api/v1/teams/:teamId/membersGibt alle Mitglieder eines Teams zurück.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
-H "Authorization: Bearer YOUR_API_KEY"
Mitglied hinzufügen
/api/v1/teams/:teamId/membersFü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
teamIdstringDie Team-ID
Request-Body
user_idstringDie hinzuzufügende Nutzer-ID
rolestringZuzuweisende Rolle: "admin", "editor", "viewer" (Standard: "viewer")
Request-Beispiel
{
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"role": "editor"
}
Antwort
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"role": "editor",
"joined_at": "2026-02-28T12:00:00.000Z"
}
Codebeispiele
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
/api/v1/teams/:teamId/members/:memberIdAktualisiert die Rolle eines Teammitglieds. Erfordert die Rolle owner oder admin. Die Rolle des Eigentümers kann nicht geändert werden.
Pfad-Parameter
teamIdstringDie Team-ID
memberIdstringDie Teammitglieds-ID
Request-Body
rolestringNeue Rolle: "admin", "editor", "viewer"
Request-Beispiel
{
"role": "admin"
}
Antwort
{
"id": "66d2e3f4a5b6c7d8e9f0a1b2",
"user_id": "665a1b2c3d4e5f6a7b8c9d0e",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f",
"role": "admin",
"joined_at": "2026-01-15T14:30:00.000Z"
}
Codebeispiele
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
/api/v1/teams/:teamId/members/:memberIdEntfernt ein Mitglied aus einem Team. Erfordert die Rolle owner oder admin. Der Team-Eigentümer kann nicht entfernt werden.
Pfad-Parameter
teamIdstringDie Team-ID
memberIdstringDie Teammitglieds-ID
Antwort
{
"success": true
}
Codebeispiele
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
-H "Authorization: Bearer YOUR_API_KEY"
Einladungen auflisten
/api/v1/teams/:teamId/invitationsGibt alle ausstehenden Einladungen eines Teams zurück. Erfordert die Rolle owner oder admin.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
-H "Authorization: Bearer YOUR_API_KEY"
Einladung erstellen
/api/v1/teams/:teamId/invitationsSendet 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
teamIdstringDie Team-ID
Request-Body
emailstringEinzuladende E-Mail-Adresse
rolestringBei Annahme zuzuweisende Rolle: "admin", "editor", "viewer" (Standard: "editor")
Request-Beispiel
{
"email": "carol@example.com",
"role": "editor"
}
Antwort
{
"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
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
/api/v1/teams/:teamId/invitations/:invIdStorniert eine ausstehende Einladung. Erfordert die Rolle owner oder admin. Das Einladungstoken ist danach nicht mehr gültig.
Pfad-Parameter
teamIdstringDie Team-ID
invIdstringDie Einladungs-ID
Antwort
{
"success": true
}
Codebeispiele
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations/66e1f2a3b4c5d6e7f8a9b0c1" \
-H "Authorization: Bearer YOUR_API_KEY"
Audit-Logs
/api/v1/teams/:teamId/audit-logsGibt eine paginierte Liste der Audit-Log-Ereignisse des Teams zurück. Erfordert die Rolle owner oder admin. Nur im Enterprise-Plan.
Pfad-Parameter
teamIdstringDie Team-ID
Query-Parameter
actionstringFiltert nach Aktionstyp (z. B. "form.published", "member.removed")
user_idstringFiltert nach dem Nutzer, der die Aktion ausgeführt hat
sincestringISO-8601-Datum — nur Ereignisse ab diesem Datum
untilstringISO-8601-Datum — nur Ereignisse bis zu diesem Datum
pageintegerSeitennummer (Standard: 1)
per_pageintegerErgebnisse pro Seite (Standard: 50, max.: 100)
Antwort
{
"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
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
/api/v1/teams/:teamId/brandingGibt die Branding-Konfiguration des Teams zurück. Erfordert Teammitgliedschaft.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/branding" \
-H "Authorization: Bearer YOUR_API_KEY"
Team-Branding aktualisieren
/api/v1/teams/:teamId/brandingAktualisiert die Branding-Konfiguration des Teams. Erfordert die Rolle owner oder admin.
Pfad-Parameter
teamIdstringDie Team-ID
Request-Body
logo_urlstringURL des Team-Logos
primary_colorstringPrimäre Hex-Farbe (z. B. "#6366f1")
background_colorstringHex-Hintergrundfarbe
text_colorstringHex-Textfarbe
font_familystringName der Google-Fonts-Schriftfamilie
footer_textstringEigener Footer-Text
Request-Beispiel
{
"primary_color": "#8b5cf6",
"font_family": "Poppins",
"footer_text": "2026 Acme Corp. All rights reserved."
}
Antwort
Gibt das aktualisierte Branding-Objekt zurück.
Codebeispiele
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
/api/v1/teams/:teamId/brandingEntfernt alle Team-Branding-Einstellungen, wodurch Formulare auf die Standards des Eigentümers oder Systemstandards zurückfallen. Erfordert die Rolle owner oder admin.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"success": true
}
Codebeispiele
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/branding" \
-H "Authorization: Bearer YOUR_API_KEY"
Subdomain abrufen
/api/v1/teams/:teamId/subdomainGibt die Subdomain-Konfiguration des Teams zurück. Erfordert Teammitgliedschaft.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"subdomain": "acme-marketing",
"full_url": "https://acme-marketing.nueform.io"
}
Codebeispiele
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/subdomain" \
-H "Authorization: Bearer YOUR_API_KEY"
Subdomain setzen
/api/v1/teams/:teamId/subdomainSetzt oder aktualisiert die Subdomain des Teams. Erfordert die Rolle owner oder admin. Pro- oder Enterprise-Plan erforderlich.
Pfad-Parameter
teamIdstringDie Team-ID
Request-Body
subdomainstringGewünschte Subdomain (nur Kleinbuchstaben, Zahlen und Bindestriche)
Request-Beispiel
{
"subdomain": "acme-marketing"
}
Antwort
{
"subdomain": "acme-marketing",
"full_url": "https://acme-marketing.nueform.io"
}
Codebeispiele
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
/api/v1/teams/:teamId/custom-domainGibt die Konfiguration der eigenen Domain des Teams zurück. Erfordert Teammitgliedschaft. Nur im Enterprise-Plan.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"domain": "forms.acmecorp.com",
"status": "verified",
"ssl_status": "active",
"cname_target": "custom.nueform.io",
"verified_at": "2026-03-15T10:00:00.000Z"
}
Codebeispiele
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain" \
-H "Authorization: Bearer YOUR_API_KEY"
Eigene Domain hinzufügen
/api/v1/teams/:teamId/custom-domainFü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
teamIdstringDie Team-ID
Request-Body
domainstringDie eigene Domain (z. B. "forms.acmecorp.com")
Request-Beispiel
{
"domain": "forms.acmecorp.com"
}
Antwort
{
"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
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
/api/v1/teams/:teamId/custom-domainEntfernt die eigene Domain vom Team. Formulare kehren zur Standard-NueForm-URL zurück. Erfordert die Rolle owner oder admin.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"success": true
}
Codebeispiele
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain" \
-H "Authorization: Bearer YOUR_API_KEY"
Eigene Domain verifizieren
/api/v1/teams/:teamId/custom-domain/verifyVerifiziert, 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
teamIdstringDie Team-ID
Antwort (Erfolg)
{
"domain": "forms.acmecorp.com",
"status": "verified",
"ssl_status": "provisioning",
"verified_at": "2026-03-20T15:00:00.000Z"
}
Antwort (Fehlschlag)
{
"domain": "forms.acmecorp.com",
"status": "pending_verification",
"error": "CNAME record not found. Expected: forms.acmecorp.com -> custom.nueform.io"
}
Codebeispiele
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/custom-domain/verify" \
-H "Authorization: Bearer YOUR_API_KEY"
Abrechnung abrufen
/api/v1/teams/:teamId/billingGibt die Abrechnungsübersicht des Teams zurück, inklusive Plandetails, Sitzplatznutzung und Informationen zur nächsten Rechnung. Erfordert die Rolle owner oder admin.
Pfad-Parameter
teamIdstringDie Team-ID
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/billing" \
-H "Authorization: Bearer YOUR_API_KEY"
Team-Analytics abrufen
/api/v1/teams/:teamId/analyticsGibt aggregierte Analytics über alle Team-Formulare zurück. Erfordert Teammitgliedschaft.
Pfad-Parameter
teamIdstringDie Team-ID
Query-Parameter
sincestringISO-8601-Datum — nur Daten ab diesem Datum
untilstringISO-8601-Datum — nur Daten bis zu diesem Datum
Antwort
{
"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
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
/api/v1/forms/:id/guestsGibt alle zu einem bestimmten Formular eingeladenen Gäste zurück. Erfordert die Rolle owner oder admin im Team des Formulars.
Pfad-Parameter
idstringDie Formular-ID
Antwort
{
"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
curl -X GET "https://api.nueform.io/api/v1/forms/665f1a2b3c4d5e6f7a8b9c0d/guests" \
-H "Authorization: Bearer YOUR_API_KEY"
Gast einladen
/api/v1/forms/:id/guestsLä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
idstringDie Formular-ID
Request-Body
emailstringE-Mail-Adresse des Gastes
permissionstringBerechtigungsstufe: "view" oder "edit" (Standard: "view")
Request-Beispiel
{
"email": "contractor@external.com",
"permission": "edit"
}
Antwort
{
"id": "671a2b3c4d5e6f7a8b9c0d1e",
"email": "contractor@external.com",
"permission": "edit",
"status": "pending",
"invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
"created_at": "2026-03-20T12:00:00.000Z"
}
Codebeispiele
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
/api/v1/forms/:id/guestsEntzieht einem Gast den Zugriff auf ein bestimmtes Formular. Erfordert die Rolle owner oder admin im Team des Formulars.
Pfad-Parameter
idstringDie Formular-ID
Request-Body
guest_idstringDie ID des zu entfernenden Gastes
Request-Beispiel
{
"guest_id": "671a2b3c4d5e6f7a8b9c0d1e"
}
Antwort
{
"success": true
}
Codebeispiele
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
/api/v1/forms/guests/acceptNimmt 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
tokenstringDas Einladungstoken aus dem E-Mail-Link
Request-Beispiel
{
"token": "gt_abc123def456ghi789"
}
Antwort
{
"form_id": "665f1a2b3c4d5e6f7a8b9c0d",
"form_title": "Customer Survey",
"permission": "edit",
"team_name": "Marketing"
}
Codebeispiele
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 RequestFehlende Pflichtfelder, ungültige Rolle
401UnauthorizedFehlender oder ungültiger API-Schlüssel
403ForbiddenUnzureichende Rolle für die Aktion
404Not FoundTeam, Mitglied oder Einladung nicht gefunden
409ConflictNutzer ist bereits Mitglied, doppelte Einladung
500Server ErrorInterner Serverfehler
Fehlerbeispiel
{
"error": "Not authorized to manage team members"
}
Telefonie-Zugriff aktualisieren
/api/v1/teams/:teamId/members/:memberId/telephonyAktualisiert 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
| Stufe | Berechtigungen |
|---|---|
none | Kein Telefonie-Zugriff |
observer | Anrufprotokolle, Aufzeichnungen, Telefonnummern und Team-Stimmen ansehen |
operator | Ausgehende Anrufe tätigen, Nummern mit Formularen verknüpfen, Kampagnen starten |
manager | Nummern bereitstellen/freigeben, Kampagnen verwalten, Nummern pausieren/fortsetzen |
full | Vollständige Kontrolle, einschließlich Erstellen/Löschen von Team-Stimmen |
Request-Body
telephony_accessstringerforderlichDie zu setzende Telefonie-Zugriffsstufe. Eine von: none, observer, operator, manager, full.
Team-Stimmen auflisten
/api/voices?teamId=:teamIdListet 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
{
"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
/api/voices/createErstellt 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
namestringerforderlichAnzeigename der Stimme.
typestringerforderlichStimmtyp: clone oder design.
teamIdstringerforderlichDie Team-ID, der die Stimme zugewiesen wird.
sampleBlobUrlstringAudiosample-URL für Klon-Stimmen.
Request
{
"name": "Team Support Voice",
"type": "design",
"teamId": "team123",
"designGender": "female",
"designTone": "professional"
}
Antwort
{
"voice": {
"id": "qwen:clone:new123",
"dbId": "new123",
"name": "Team Support Voice",
"type": "design",
"category": "custom",
"createdAt": "2026-03-25T00:00:00.000Z"
}
}