> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sleak.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Start een conversatie

> Creëert een nieuwe chatconversatie met de opgegeven chatbot

Dit endpoint creëert een nieuwe conversatie met een specifieke chatbot. Je ontvangt een `conversation_id` terug die je kunt gebruiken om berichten te versturen.

## Voorbeeld

```bash theme={null}
curl -X POST https://api.v1.sleak.chat/api/conversation \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "chatbot_id": "chatbot_123",
    "visitor_id": "visitor_456"
  }'
```

## Response

```json theme={null}
{
  "conversation_id": "conv_abc123def456",
  "chatbot_id": "chatbot_123",
  "visitor_id": "visitor_456",
  "created_at": "2024-02-15T12:34:56Z"
}
```

<Note>
  **Visitor ID is optioneel**

  De `visitor_id` is optioneel maar aanbevolen voor het identificeren van terugkerende bezoekers en het behouden van gesprekshistorie.
</Note>


## OpenAPI

````yaml openapi.yaml POST /api/conversation
openapi: 3.0.3
info:
  title: Sleak Chat API
  description: >
    API voor het beheren van chatbot conversaties. Deze API maakt het mogelijk
    om veilig gesprekken te starten 

    en berichten uit te wisselen met AI-chatbots.


    ## Authenticatie

    Alle beveiligde endpoints vereisen een Bearer token in de Authorization
    header:

    ```

    Authorization: Bearer <jouw-api-sleutel>

    ```


    ## Rate Limiting

    API requests zijn beperkt per minuut. De limiet wordt gecommuniceerd via
    response headers:

    - `X-RateLimit-Limit`: Maximum aantal requests per minuut

    - `X-RateLimit-Remaining`: Aantal resterende requests

    - `X-RateLimit-Reset`: Timestamp wanneer de limiet reset


    ## Foutafhandeling

    De API gebruikt standaard HTTP statuscodes:

    - `200`: Succesvol verwerkt

    - `400`: Ongeldige aanvraag

    - `401`: Niet geautoriseerd

    - `403`: Geen toegang

    - `404`: Niet gevonden

    - `429`: Te veel aanvragen (rate limit overschreden)

    - `500`: Server fout
  version: 1.0.0
  contact:
    name: Sleak Support
    email: support@sleak.chat
  license:
    name: Proprietary
servers:
  - url: https://api.v1.sleak.chat
    description: Api server
security:
  - bearerAuth: []
tags:
  - name: Monitoring
    description: Endpoints voor het monitoren van de API status
  - name: Conversaties
    description: Beheer van chatbot conversaties
  - name: Berichten
    description: Berichten uitwisseling binnen conversaties
paths:
  /api/conversation:
    post:
      tags:
        - Conversaties
      summary: Start een nieuwe conversatie
      description: |
        Creëert een nieuwe chatconversatie met de opgegeven chatbot. 
      operationId: createConversation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversationRequest'
      responses:
        '200':
          description: Conversatie succesvol aangemaakt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationResponse'
          headers:
            X-Process-Time:
              description: Verwerkingstijd in milliseconden
              schema:
                type: string
            X-RateLimit-Limit:
              description: Maximum aantal requests per minuut
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Aantal resterende requests in huidige window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp wanneer de rate limit reset
              schema:
                type: integer
        '400':
          description: Ongeldige aanvraag
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Geen geldige API sleutel opgegeven
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: API sleutel heeft geen toegang tot deze chatbot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Chatbot niet gevonden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit overschreden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Interne server fout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ConversationRequest:
      type: object
      required:
        - chatbot_id
      properties:
        chatbot_id:
          type: string
          description: Unieke identifier van de chatbot
          example: 307e6946-bc23-4fb7-8458-d8121465f2aq
        visitor_id:
          type: string
          description: >
            Optionele identifier voor de bezoeker. Als deze niet wordt
            opgegeven, 

            wordt automatisch een unieke ID gegenereerd.
          example: c428c263-a1d3-4072-bf64-525cefbfb0b1
    ConversationResponse:
      type: object
      properties:
        conversation_id:
          type: string
          description: Unieke identifier van de aangemaakte conversatie
          example: 63907bf7-89f7-421a-9f13-b6f23411aabv
    ErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Gedetailleerde foutmelding
          example: API key not found or invalid
        error:
          type: string
          description: Korte foutcode
          example: invalid_api_key
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Gebruik je API sleutel als Bearer token. 

        Voorbeeld: `Authorization: Bearer
        28339789ad921d554cddc678e3e91bd3ff6676cb209741aa30b818135ef33060`

````