Zum Seiteninhalt springen
Docs
Make Agent Fast Dokumentation

API-Referenz

Alle öffentlichen Ressourcen, Methoden, erforderlichen Scopes, Paginierungsregeln und Mutationsverträge im Überblick.

Auf einen Blick

Alle öffentlichen Ressourcen, Methoden, erforderlichen Scopes, Paginierungsregeln und Mutationsverträge im Überblick.

API-AnfragepfadSchlüssel mit Bereich → versionierte Ressource → signierte Antwort
App / SDKBearer-Schlüsselmaf_live_…/api/v1/…RessourceJSON
v1123 OperationenJSON

Der maßgebliche maschinenlesbare Vertrag ist das OpenAPI JSON. Diese Seite ist der menschenlesbare Operationsindex und erklärt die Regeln, die für jeden Endpunkt gelten.

Basis-URL und Version#

https://makeagent.fast/api/v1

Die Hauptversion ist Teil des Pfads. Zusätzliche Felder können ohne Änderung der Hauptversion hinzukommen. Ignorieren Sie daher unbekannte Felder in Antworten. Alle Management-Anfragen verwenden HTTPS sowie einen Bearer-API-Schlüssel oder ein OAuth-Zugriffstoken.

Gemeinsame Header#

Authorization: Bearer maf_live_...
Accept: application/json
Content-Type: application/json
Idempotency-Key: your-stable-operation-key

Content-Type ist für JSON-Bodys bei POST und PATCH erforderlich, auch bei {}. Idempotency-Key ist optional, wird aber für jedes POST, PATCH und DELETE dringend empfohlen.

Konto und Websites#

MethodePfadScopeZweck
GET/meaccount:readKonto, Tarif, Berechtigungen und Wallet-Übersicht lesen
GET/sitessites:readEigene Websites auflisten
POST/sitessites:writeEine Website und ihren Standard-Agent erstellen
GET/sites/{site_id}sites:readEine eigene Website abrufen
PATCH/sites/{site_id}sites:writeUnkritische Website-Felder aktualisieren
DELETE/sites/{site_id}sites:writeDie Website und abhängige Ressourcen löschen
POST/sites/{site_id}/publishsites:writeMit { "published": boolean } veröffentlichen oder die Veröffentlichung aufheben
GET/sites/{site_id}/agentagents:readAgent-Einstellungen lesen
PATCH/sites/{site_id}/agentagents:writePersona-Modus, Zweck, Anzeigenamen, Anweisungen, Stimme, Sprachen, Modell, Erscheinungsbild, Einbettungsrahmen, Badge, Einbettungsstatus oder Origins aktualisieren
GET/sites/{site_id}/billingaccount:readTarif, Abrechnungszeitraum, Wallet, Add-ons und die Abrechnungslinks im Dashboard lesen
PATCH/sites/{site_id}/workspaceteam:writeDas Unternehmen umbenennen, dem der Agent gehört
PATCH/sites/{site_id}/retentionteam:writeFestlegen, wie lange Unterhaltungen aufbewahrt werden

Zum Erstellen einer Website sind title und content.headline erforderlich. Optionale Felder sind slug, type, template, zusätzliche Inhalte, persona_mode sowie ein bis vier Sprachen aus en, ko, uz und ru.

PATCH /agent führt model, appearance, embed_chrome und badge_hidden durch dieselben Tarifprüfungen wie das Dashboard; badge_hidden: true erfordert einen berechtigten Tarif oder das Badge-Add-on.

Installation und Website-Widget#

MethodePfadScopeZweck
GET/sites/{site_id}/installagents:readInstallationsziel, Einbettungsstatus, erlaubte Origins und Installationsnachweise lesen
PATCH/sites/{site_id}/installagents:writeDie Seite festlegen, auf der das Widget installiert werden soll
POST/sites/{site_id}/install/checkagents:writePrüfen, ob das Einbettungs-Snippet auf der Zielseite live ist

Wissen und FAQs#

MethodePfadScopeZweck
GET/sites/{site_id}/knowledgeknowledge:readWissensquellen auflisten
POST/sites/{site_id}/knowledgeknowledge:writeEingefügten Text aufnehmen, eine Website crawlen oder eine YouTube-, Podcast- oder Feed-Quelle importieren
PATCH/sites/{site_id}/knowledge/{source_id}knowledge:writerefresh_hours oder den approval_status des Buyer-Packs festlegen
POST/sites/{site_id}/knowledge/{source_id}/recrawlknowledge:writeErneutes Einlesen einer abgerufenen Quelle in die Warteschlange stellen; gibt 202 zurück
DELETE/sites/{site_id}/knowledge/{source_id}knowledge:writeEine Quelle aus dem künftigen Abruf entfernen
GET/sites/{site_id}/faqsknowledge:readStrukturierte FAQs auflisten
POST/sites/{site_id}/faqsknowledge:write{ "question", "answer", "approved" } erstellen
POST/sites/{site_id}/faqs/generateknowledge:writeFAQs aus dem Wissen des Agents entwerfen
POST/sites/{site_id}/faqs/approve-allknowledge:writeJede FAQ im Entwurfsstatus freigeben und veröffentlichen
PATCH/sites/{site_id}/faqs/{faq_id}knowledge:writeFrage, Antwort oder Freigabestatus aktualisieren
DELETE/sites/{site_id}/faqs/{faq_id}knowledge:writeEine FAQ löschen
GET / PATCH/sites/{site_id}/fact-sheetknowledge:read / knowledge:writeDas extrahierte Faktenblatt des Unternehmens lesen oder Fakten korrigieren, die bei der Extraktion falsch erkannt wurden
POST/sites/{site_id}/fact-sheet/reextractknowledge:writeDie Website erneut einlesen und das Faktenblatt neu erstellen
POST/sites/{site_id}/qaknowledge:writeKuratierte Frage-Antwort-Paare veröffentlichen
POST/sites/{site_id}/answers/reviseknowledge:writeDem Agent die Antwort beibringen, die er hätte geben sollen
GET/sites/{site_id}/knowledge-connectionsknowledge:readWissensverbindungen zu Notion, Drive und MCP auflisten
GET/sites/{site_id}/knowledge-connections/connect-linksknowledge:readDie Dashboard-URLs abrufen, die eine Notion- oder Drive-Verbindung starten
PATCH / DELETE/sites/{site_id}/knowledge-connections/{connection_id}knowledge:writeSynchronisierungsintervall, ausgewählte Elemente oder Importwerkzeug festlegen; oder die Verbindung trennen und bereinigen
GET/sites/{site_id}/knowledge-connections/{connection_id}/itemsknowledge:readDie Seiten, Datenbanken oder Dateien auflisten, die eine Verbindung importieren kann
POST/sites/{site_id}/knowledge-connections/{connection_id}/syncknowledge:writeEine Synchronisierung einer Wissensverbindung in die Warteschlange stellen

POST /knowledge akzeptiert drei Bodys: { "name", "text" } mit 5 bis 200.000 Zeichen; { "url", "max_pages", "refresh_hours" }, um eine Website zu crawlen (max_pages 1–40, refresh_hours 1–8.760 oder null); sowie { "kind": "youtube" | "podcast" | "feed", "url", "refresh_hours" }. YouTube-, Podcast- und Feed-Quellen erfordern Operate oder Scale; bei Launch geben sie 409 conflict zurück. Der Datei-Upload bleibt ein Dashboard-Workflow.

Unterhaltungen, Leads, Analysen und Nutzung#

MethodePfadScopeZweck
GET/sites/{site_id}/conversationsconversations:readUnterhaltungsverläufe auflisten
GET/sites/{site_id}/conversations/{conversation_id}conversations:readEinen Verlauf und paginierte Nachrichten abrufen
POST/sites/{site_id}/conversations/{conversation_id}/replyconversations:writeEinem Besucher im Namen des Unternehmens antworten
POST/sites/{site_id}/conversations/{conversation_id}/pauseconversations:writeDen Agent in dieser Unterhaltung pausieren und sie übernehmen
POST/sites/{site_id}/conversations/{conversation_id}/resumeconversations:writeDie Unterhaltung an den Agent zurückgeben
GET/sites/{site_id}/leadsleads:readErfasste Leads auflisten
POST/sites/{site_id}/leadsleads:writeEinen kanonischen Lead mit ausdrücklicher Einwilligung und Kontaktpräferenzen erstellen
GET/sites/{site_id}/leads/{lead_id}leads:readEinen Lead abrufen
PATCH/sites/{site_id}/leads/{lead_id}leads:writeEinen Lead aktualisieren, qualifizieren oder seine Kontaktrichtlinie ändern
POST/sites/{site_id}/leads/{lead_id}/acceptleads:writeEinen Lead in die Opportunity-Pipeline übernehmen
POST/sites/{site_id}/leads/{lead_id}/followupleads:writeDie Folgenachricht an einen Lead senden
POST/sites/{site_id}/leads/{lead_id}/followup/draftleads:writeDie Folgenachricht neu entwerfen, ohne sie zu senden
GET/sites/{site_id}/analyticsanalytics:readAnalyseereignisse auflisten
GET/sites/{site_id}/reportanalytics:readDen aggregierten Analysebericht lesen
POST/sites/{site_id}/report/unanswered-faqknowledge:writeEine unbeantwortete Frage als neue FAQ beantworten
GET/sites/{site_id}/usageusage:readGemessene Nutzungsereignisse auflisten

Diese Ereignis- und Aktivitätssammlungen akzeptieren limit und cursor. Zurückgegebene Datensätze können personenbezogene Daten enthalten; speichern und exportieren Sie sie gemäß Ihren Datenschutzpflichten.

Antworten des Owners werden unterstützt: reply, pause und resume übernehmen einen Web-Verlauf oder einen Chat auf Telegram, WhatsApp, Messenger oder Instagram auf dieselbe Weise wie das Dashboard. Das Senden von Nachrichten als Besucher ist keine öffentliche API-Operation. Die Änderung von Leads wird unterstützt; setzen Sie consent_status: granted nur, wenn Ihr System über einen belastbaren Einwilligungsnachweis verfügt. Unbekannte Einwilligungen werden von Broadcasts ausgeschlossen.

Opportunity-Pipeline und CRM-Ergebnisse#

MethodePfadScopeZweck
GET / POST/sites/{site_id}/pipeline/stagespipeline:read / pipeline:writePhasen auflisten oder konfigurieren
GET / POST/sites/{site_id}/pipeline/accountspipeline:read / pipeline:writeGeschäftskonten auflisten oder erstellen
GET/sites/{site_id}/pipeline/accounts/{account_id}pipeline:readEin Geschäftskonto abrufen
GET / POST/sites/{site_id}/pipeline/opportunitiespipeline:read / pipeline:writeOpportunities auflisten oder erstellen
GET / PATCH/sites/{site_id}/pipeline/opportunities/{opportunity_id}pipeline:read / pipeline:writeAktivitäten lesen oder Zuweisung, Wert, Phase, nächste Aktion und menschliche Antwort aktualisieren
POST/sites/{site_id}/pipeline/outcomespipeline:writeEin aus dem CRM stammendes Ergebnis (gewonnen oder verloren) idempotent importieren
GET/sites/{site_id}/pipeline/sync-recordspipeline:readSynchronisierungsstatus, Versuche und Fehler auflisten
POST/sites/{site_id}/pipeline/sync-records/{sync_record_id}/retrypipeline:writeEin fehlgeschlagenes Ergebnis anhand seiner gespeicherten Nutzdaten erneut versuchen
GET / PATCH/sites/{site_id}/pipeline-workflowpipeline:read / pipeline:writeDie Vertriebsantwort-Richtlinie lesen oder aktualisieren
GET / POST/sites/{site_id}/pilotspipeline:read / pipeline:writeGeführte Pilotprojekte auflisten oder starten
GET/sites/{site_id}/pilots/{pilot_id}pipeline:readEin Pilotprojekt, seine Phase, Zählwerte und Arbeitsliste lesen
POST/sites/{site_id}/pilots/{pilot_id}/setup, /start, /stop, /review, /decision, /complete, /deletepipeline:writeEin Pilotprojekt durch Einrichtung, Messung, Review, Entscheidung und Abschluss führen oder es samt Nachweisen löschen (sieben Operationen)
POST/sites/{site_id}/pilots/{pilot_id}/outcomes, /bookingspipeline:writeEin Lead-Ergebnis oder ein Buchungsergebnis erfassen (zwei Operationen)
POST/sites/{site_id}/pilots/{pilot_id}/report/approve, /report/revokepipeline:writeDen teilbaren Pilotbericht freigeben oder die Freigabe widerrufen (zwei Operationen)
GET / POST/sites/{site_id}/buyer-packspipeline:read / pipeline:writeBuyer-Packs auflisten oder eines aus freigegebenen Quellen erstellen
PATCH/sites/{site_id}/buyer-packs/{pack_id}pipeline:writeTitel, Zielgruppe, Zusammenfassung, Quellen und Abschnitte eines Packs ersetzen
POST/sites/{site_id}/buyer-packs/{pack_id}/approve, /revokepipeline:writeDen Freigabelink des Packs aktivieren oder deaktivieren (zwei Operationen)

Der angegebene CRM-provider, die externe ID und der Idempotenzschlüssel bleiben im Audit-Trail erhalten. Ein Retry übernimmt nur einen fehlgeschlagenen Datensatz und macht aus einem laufenden externen Schreibvorgang niemals einen fälschlichen Erfolg.

Connectors#

MethodePfadScopeZweck
GET/sites/{site_id}/connectorsconnectors:readConnector-Status ohne Geheimnisse auflisten
POST/sites/{site_id}/connectorsconnectors:writeEinen Kanal verbinden: Zugangsdaten live validieren, den Webhook bereitstellen und die Einrichtungs-Checkliste zurückgeben
PATCH/sites/{site_id}/connectors/{connector_id}connectors:writestatus oder reply_with_voice festlegen
DELETE/sites/{site_id}/connectors/{connector_id}connectors:writeEinen Connector deprovisionieren und entfernen
POST/sites/{site_id}/conciergeconnectors:writeDie Plattform bitten, einen Messaging-Kanal für Sie zu verbinden
GET/sites/{site_id}/domainsdomains:readEntfernt – gibt 409 zurück. Eigene Domains werden nicht angeboten
POST/sites/{site_id}/domainsdomains:writeEntfernt – gibt 409 zurück
PATCH/sites/{site_id}/domains/{domain_id}domains:writeEntfernt – gibt 409 zurück
POST/sites/{site_id}/domains/{domain_id}/verifydomains:writeEntfernt – gibt 409 zurück
DELETE/sites/{site_id}/domains/{domain_id}domains:writeEntfernt – gibt 409 zurück

Die Erstellung eines Connectors verwendet einen nach Kanal unterschiedenen Body. Die Felder für Zugangsdaten unterscheiden sich bei telegram, whatsapp, messenger, instagram, discord und kakao; verwenden Sie die passende Connector-Anleitung, bevor Sie Geheimnisse senden.

Broadcasts, Benachrichtigungen und Monetarisierung#

MethodePfadScopeZweck
GET/sites/{site_id}/broadcastsbroadcasts:readBroadcasts auflisten
POST/sites/{site_id}/broadcastsbroadcasts:writeEinen Kakao-Broadcast-Entwurf erstellen
POST/sites/{site_id}/broadcasts/{broadcast_id}/sendbroadcasts:writeEinen vorhandenen Entwurf in die Warteschlange stellen; gibt 202 zurück
GET/sites/{site_id}/notificationsnotifications:readOwner-Benachrichtigungen auflisten
POST/sites/{site_id}/notifications/read-allnotifications:writeJede Owner-Benachrichtigung für diesen Agent als gelesen markieren
PATCH/sites/{site_id}/notifications/{notification_id}notifications:writeMit { "read": boolean } als gelesen oder ungelesen markieren
GET/sites/{site_id}/alertsnotifications:readDen Status des Alarmkanals des Owners und seinen Dashboard-Link lesen
GET/sites/{site_id}/monetization/productsmonetization:readWebsite-Produkte auflisten
POST/sites/{site_id}/monetization/productsmonetization:writeEin Produkt vom Typ access, consult, tip oder digital erstellen
PATCH/sites/{site_id}/monetization/products/{product_id}monetization:writeProduktfelder und aktiven Status aktualisieren
DELETE/sites/{site_id}/monetization/products/{product_id}monetization:writeEin Produkt löschen

Die Erstellung von Broadcasts akzeptiert derzeit nur den Kanal kakao. Das Einreihen in die Warteschlange schlägt mit 409 conflict fehl, wenn es keine erreichbaren Empfänger gibt oder der Broadcast kein Entwurf mehr ist.

Aktionen, Tickets und Team#

MethodePfadScopeZweck
GET / PATCH/sites/{site_id}/actionsagents:read / agents:writeProzeduren, den öffentlichen Webhook, den Buchungslink und Support-Tickets lesen oder konfigurieren
GET/sites/{site_id}/ticketstickets:readSupport-Tickets auflisten
GET/sites/{site_id}/tickets/{ticket_id}tickets:readEin Ticket und seine Nachrichten lesen
PATCH/sites/{site_id}/tickets/{ticket_id}tickets:writeStatus, Priorität und optional die zuständige Person festlegen
POST/sites/{site_id}/tickets/{ticket_id}/messagestickets:writeEine interne Notiz hinzufügen oder mit internal: false dem Kunden per E-Mail antworten
GET/sites/{site_id}/teamteam:readMitglieder, Einladungen und zulässige Audit-Ereignisse lesen
POST/sites/{site_id}/team/invitationsteam:writeEinen Einladungslink erstellen, ohne eine E-Mail zu senden
DELETE/sites/{site_id}/team/invitations/{invitation_id}team:writeEine ausstehende Einladung widerrufen
PATCH / DELETE/sites/{site_id}/team/members/{membership_id}team:writeDie Rolle eines Mitglieds, das nicht Owner ist, ändern oder das Mitglied entfernen

Entwickler-Webhooks und Einrichtungswerkzeuge#

MethodePfadScopeZweck
GET/webhook-endpointswebhooks:readEndpunktstatus ohne Signaturgeheimnisse auflisten
POST/webhook-endpointswebhooks:writeEine öffentliche HTTPS-URL registrieren und ihr Signaturgeheimnis einmalig anzeigen
DELETE/webhook-endpoints/{endpoint_id}webhooks:writeEinen Endpunkt löschen und die künftige Zustellung stoppen
GET/setup/toolsBeliebige gültige ZugangsdatenEinrichtungswerkzeuge für API-, MCP- und GitHub-Integrationen ermitteln
POST/setup/tools/{tool_name}WerkzeugspezifischEin Einrichtungswerkzeug ausführen; Plattformanfragen benötigen die Scopes ihrer Endpunkte, die GitHub-Prüfung verwendet integrations:read, die PR-Vorbereitung integrations:write

Webhook-URLs müssen HTTPS verwenden, dürfen keine Zugangsdaten und keinen benutzerdefinierten Port enthalten und müssen ausschließlich auf öffentliche IP-Adressen auflösen.

Paginierung#

Paginierte Sammlungen akzeptieren limit von 1 bis 100; der Standardwert ist 50. Verwenden Sie den zurückgegebenen undurchsichtigen next_cursor nur mit derselben Sammlung und denselben Filtern.

{
  "data": [],
  "has_more": false,
  "next_cursor": null
}

Einige kleine Konfigurationssammlungen geben dieselbe Hülle mit has_more: false zurück und benötigen keinen Cursor.

Idempotenz#

Ein Idempotenzschlüssel muss 8 bis 200 Zeichen enthalten: Buchstaben, Ziffern sowie ., _, : und -. Ergebnisse werden 24 Stunden lang aufbewahrt und gelten für den Inhaber der Zugangsdaten.

  • Gleicher Schlüssel und gleiche Methode, gleicher Pfad, gleiche Query und gleicher Body: gibt die gespeicherte Antwort mit x-idempotent-replayed: true zurück.
  • Gleicher Schlüssel mit anderer Eingabe: gibt 409 conflict zurück.
  • Gleicher Schlüssel, während die erste Anfrage noch verarbeitet wird: gibt 409 conflict und Retry-After: 2 zurück.

Speichern Sie den Schlüssel, bevor Sie die Mutation senden, und verwenden Sie ihn nur für Wiederholungen derselben logischen Operation erneut.

Antworten und Fehler#

Erfolgreiche Antworten verpacken ihre Ressource in data. Erstellungsoperationen geben normalerweise 201 zurück; in die Warteschlange gestellte Broadcast-Sendungen geben 202 zurück; andere erfolgreiche Operationen geben 200 zurück. Jede Antwort enthält x-request-id und verwendet für API-Daten Cache-Control: no-store.

Die vollständige Tabelle der Fehlercodes finden Sie unter Scopes und Fehler, kopierbare Workflows unter API-Rezepte.

MCP-Clients#

Verbinden Sie einen Streamable-HTTP-MCP-Client mit https://makeagent.fast/api/mcp. Clients, die OAuth Discovery unterstützen, öffnen den Browser für Anmeldung und Einwilligung. Prüfen Sie vor der Freigabe die Identität des Clients, das Unternehmen und die angeforderten Scopes. Die erste Freigabe fragt die Scopes ab, die die Tools verwenden (sites:read, sites:write, agents:write, analytics:read, conversations:read, conversations:write, leads:read, leads:write, knowledge:write); bei Zugangsdaten, denen einer dieser Scopes fehlt, wird erneut um Autorisierung gebeten. Ein aktiver Tarif ist erforderlich.

Für Clients mit manuell konfigurierten Zugangsdaten erstellen Sie in den Entwicklereinstellungen einen API-Schlüssel mit begrenzten Scopes und übergeben ihn als Header Authorization: Bearer .... Halten Sie Zugangsdaten aus der Versionsverwaltung und aus Browsercode heraus. API-Schlüssel oder OAuth-Berechtigungen widerrufen Sie in den Entwicklereinstellungen.

Lese-Tools: list_agents, get_agent, get_report, list_unanswered_questions, list_conversations, get_conversation, list_leads. Schreib-Tools: create_agent_from_website, create_agent_from_notes, test_agent, add_knowledge, save_answer, reply_to_customer, update_lead, set_website_widget. Jedes Agent-Tool erwartet eine agent_id aus list_agents. test_agent verbraucht Credits wie eine normale Antwort; reply_to_customer sendet eine Nachricht an den Kunden und pausiert den Agent in dieser Unterhaltung; set_website_widget schaltet das Website-Chat-Widget ein oder aus; Messaging-Kanäle werden im Dashboard verwaltet. Clients mit aktivierten MCP Apps (standardmäßig die authentifizierte Claude-Verbindung) erhalten außerdem list_pending_approvals, list_action_runs und decide_approval, womit eine vom Kunden bestätigte Änderung genehmigt oder abgelehnt wird; andere Clients sehen nur die 15 oben genannten Tools. Für die Einrichtungs- und GitHub-Integrationstools verwenden Sie den In-App-Einrichtungsassistenten oder /api/v1/setup/tools.

Unterstützte Protokollrevisionen sind 2026-07-28, 2025-11-25 und 2025-06-18. Der Transport liefert JSON; ältere SSE-Varianten oder Server-Sitzungen werden nicht angeboten. MCP-OAuth-Tokens autorisieren nur /api/mcp, nicht direkte REST-Anfragen. OAuth-Zugriffstokens sind eine Stunde gültig; Refresh-Zugangsdaten werden rotiert und laufen nach 90 Tagen ab. Manuell erstellte API-Schlüssel verwenden ihr konfiguriertes Ablaufdatum.