Famulor AI Chatbot API

Chat-Konversationen für Web-Widget und Chatbot-Kanäle.

GitHub OpenAPI

Operations 3

POST /conversations Create conversation #
GET /conversations/{uuid} Get conversation #
POST /conversations/{uuid}/messages Send message #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/famulor-io:famulor-io-ai-chatbot-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

famulor-io-ai-chatbot-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Famulor AI Chatbot API
  summary: REST API für AI-Assistenten, Anrufe, Konversationen, Leads und omnichannel Kundenkommunikation.
  description: 'Die Famulor Produkt-API unter `https://app.famulor.de/api`. Damit steuerst du

    AI-Assistenten, startest und liest Anrufe, verwaltest Leads und Kampagnen,

    versendest SMS und WhatsApp-Nachrichten, pflegst Wissensdatenbanken und

    automatisierst Prozesse.


    ## Authentifizierung


    Alle Endpunkte erwarten einen API-Key als Bearer-Token:


    ```

    Authorization: Bearer YOUR_API_KEY

    ```


    Den Key erstellst du in deinem Account unter im

    Bereich API-Keys. Der Key wird nur einmal angezeigt.


    ## Webhooks


    Famulor sendet Ereignisse (Post-Call, Conversation Ended, Read Receipts) an

    deine URL. Die Payloads stehen im Abschnitt `webhooks` dieser Spec.


    Diese Datei wird aus der offiziellen Dokumentation generiert:'
  version: 1.0.0
  contact:
    name: Famulor Support
    email: sales@famulor.io
    url: https://www.famulor.io/support
  license:
    name: Proprietary
    url: https://www.famulor.io/terms
  termsOfService: https://www.famulor.io/terms
servers:
- url: https://app.famulor.de/api
  description: Production
security:
- BearerAuth: []
tags:
- name: AI Chatbot
  description: Chat-Konversationen für Web-Widget und Chatbot-Kanäle.
paths:
  /conversations:
    post:
      tags:
      - AI Chatbot
      summary: Create conversation
      operationId: createConversation
      description: 'Start a new conversation session with a Famulor AI chatbot via API. Initialise context, user metadata and channel for WhatsApp, web chat or voice chat.


        Docs'
      externalDocs:
        description: Create conversation
        url: https://docs.famulor.io/api-v1/ai-chatbot/create-conversation
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                assistant_id:
                  type: string
                  description: UUID of the assistant that should handle the conversation
                type:
                  type: string
                  description: 'Conversation type. Options: `widget` (paid) or `test` (free for development)'
                  default: widget
                variables:
                  type: object
                  description: Custom variables injected into the assistant context (accessible via `{{variable_name}}`)
                  properties:
                    customer_name:
                      type: string
                      description: Name for greeting or personalization
                    company:
                      type: string
                      description: Company name to reference in replies
                    source:
                      type: string
                      description: Traffic or page source (e.g., `pricing_page`)
              required:
              - assistant_id
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                success:
                  summary: Success
                  value:
                    status: true
                    conversation_id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
                    history:
                    - role: assistant
                      content: Hello John Smith! Welcome to Acme Corp support. How can I help you today?
                success-no-initial-message:
                  summary: Success (no initial message)
                  value:
                    status: true
                    conversation_id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
                    history: []
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                    description: Indicates whether the request succeeded
                  conversation_id:
                    type: string
                    description: UUID of the created conversation; use it for subsequent messages
                  history:
                    type: array
                    description: Initial conversation history. Empty if the assistant has no initial message.
                    items:
                      type: object
                      properties:
                        role:
                          type: string
                          description: Message role (`assistant` or `user`)
                        content:
                          type: string
                          description: Message text content
                      additionalProperties: true
                required:
                - status
                - conversation_id
                additionalProperties: true
        '400':
          description: Insufficient Balance
          content:
            application/json:
              example:
                status: false
                error: Insufficient balance. Please top up your account.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Assistant Not Found
          content:
            application/json:
              example:
                status: false
                error: Assistant not found
        '422':
          $ref: '#/components/responses/ValidationError'
  /conversations/{uuid}:
    get:
      tags:
      - AI Chatbot
      summary: Get conversation
      operationId: getConversation
      description: 'Retrieve full message history for an existing conversation


        Docs'
      externalDocs:
        description: Get conversation
        url: https://docs.famulor.io/api-v1/ai-chatbot/get-conversation
      security: []
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the conversation to retrieve
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                success:
                  summary: Success
                  value:
                    status: true
                    history:
                    - role: assistant
                      content: Hello! Welcome to our support. How can I help you today?
                    - role: user
                      content: I'd like to schedule a demo
                    - role: assistant
                      content: I'd be happy to help you schedule a demo! I have availability tomorrow at 2 PM or Thursday at 10 AM. Which works better for you?
                      function_calls:
                      - name: check_calendar_availability
                        arguments:
                          date_range: next_7_days
                        result:
                          available_slots:
                          - 2025-01-10 14:00
                          - 2025-01-12 10:00
                    - role: user
                      content: Thursday at 10 AM works for me
                    - role: assistant
                      content: I've scheduled your demo for Thursday, January 12th at 10 AM. You'll receive a calendar invitation shortly. Is there anything specific you'd like us to cover during the demo?
                      function_calls:
                      - name: book_appointment
                        arguments:
                          datetime: '2025-01-12T10:00:00'
                          title: Product Demo
                        result:
                          success: true
                          booking_id: abc123
                    variables:
                      user_name: Jane Smith
                      plan: premium
                api-conversation-with-external-id:
                  summary: API Conversation with External ID
                  value:
                    status: true
                    history:
                    - role: assistant
                      content: Hi! I'm following up on your recent inquiry. How can I help you today?
                    - role: user
                      content: I wanted to know more about your enterprise plan
                    variables:
                      lead_id: '12345'
                      source: website
                    external_identifier: crm-lead-12345
                whatsapp-conversation:
                  summary: WhatsApp Conversation
                  value:
                    status: true
                    history:
                    - role: user
                      content: Hi, I need help with my order
                    - role: assistant
                      content: Hello! I'd be happy to help you with your order. Could you please provide your order number?
                    variables: null
                    whatsapp_sender:
                      name: Acme Corp Support
                      phone: '+14155551234'
                    customer:
                      name: John Doe
                      phone: '+14155559876'
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                    description: Will be `false` when an error occurs
                  error:
                    type: string
                    description: 'Error message. Possible values:


                      * `Conversation not found` - The provided UUID does not match any conversation'
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Not Found
          content:
            application/json:
              example:
                status: false
                error: Conversation not found
        '422':
          $ref: '#/components/responses/ValidationError'
  /conversations/{uuid}/messages:
    post:
      tags:
      - AI Chatbot
      summary: Send message
      operationId: sendMessage
      description: 'Send a user message to an existing conversation and receive the assistant''s response


        Docs'
      externalDocs:
        description: Send message
        url: https://docs.famulor.io/api-v1/ai-chatbot/send-conversation
      security: []
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the existing conversation
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string
                  description: User message to send (max 2000 characters)
              required:
              - message
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                success:
                  summary: Success
                  value:
                    status: true
                    message: I'd be happy to help you schedule a demo! I have availability on Monday at 2 PM, Wednesday at 10 AM, or Friday at 3 PM. Which time works best for you?
                    function_calls: []
                success-with-function-calls:
                  summary: Success (with function calls)
                  value:
                    status: true
                    message: I found two slots. Which one do you prefer?
                    function_calls:
                    - name: check_calendar_availability
                      arguments:
                        date_range: next_week
                      result:
                        available_slots:
                        - 2025-01-10 14:00
                        - 2025-01-12 10:00
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                    description: Indicates whether the request succeeded
                  message:
                    type: string
                    description: Assistant's response text
                  function_calls:
                    type: array
                    description: Function calls executed during this message (empty if none)
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Function name
                        arguments:
                          type: object
                          description: Arguments passed to the function
                          additionalProperties: true
                        result:
                          type: object
                          description: Return value from the function
                          additionalProperties: true
                      additionalProperties: true
                required:
                - status
                - message
                additionalProperties: true
        '400':
          description: Bad Request
          content:
            application/json:
              examples:
                insufficient-balance:
                  summary: Insufficient Balance
                  value:
                    status: false
                    error: Insufficient balance. Please top up your account.
                processing-error:
                  summary: Processing Error
                  value:
                    status: false
                    error: 'Failed to process message: invalid tool output'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Not Found
          content:
            application/json:
              example:
                status: false
                error: Conversation not found
        '422':
          description: Validation Error
          content:
            application/json:
              example:
                status: false
                error: message is required
components:
  responses:
    ValidationError:
      description: Die Anfrage ist inhaltlich ungültig.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
          example:
            message: The given data was invalid.
            errors:
              phone_number:
              - The phone number field is required.
    Unauthorized:
      description: Fehlender oder ungültiger API-Key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Unauthenticated.
  schemas:
    ValidationError:
      type: object
      properties:
        message:
          type: string
        errors:
          type: object
          description: Feldname → Liste der Fehlermeldungen.
          additionalProperties:
            type: array
            items:
              type: string
    Error:
      type: object
      properties:
        message:
          type: string
          description: Menschenlesbare Fehlermeldung.
        error:
          type: string
          description: Fehlerkennung, sofern gesetzt.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'API-Key als Bearer-Token: `Authorization: Bearer YOUR_API_KEY`. Key erstellen unter https://app.famulor.de.'
externalDocs:
  description: Famulor API-Dokumentation
  url: https://docs.famulor.io/api-v1/introduction