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

# EvoLink Moderation 1.0 - Vollständige API-Referenz

> - Synchroner Endpunkt: prüft den eingegebenen **Text** und/oder das eingegebene **Bild** in 13 Dimensionen auf schädliche Inhalte
- Die Antwort enthält im Feld `evolink_summary` eine einheitliche Zusammenfassung mit den fünf Werten `risk_level` / `flagged` / `violations` / `max_score` / `max_category`

**Kernfunktionen**:
- **Multimodale Moderation**: unterstützt reinen Text, reines Bild sowie kombinierte Text-+-Bild-Eingaben
- **13 Kategorien**: harassment, hate, sexual, violence, self-harm, illicit, sexual/minors usw.
- **Risikoabstufung**: jede Kategorie hat eigene Schwellenwerte für medium/high und wird je nach Sensibilität differenziert bewertet (die rote-Linie-Kategorie sexual/minors hat den strengsten Schwellenwert)
- **Erklärbar**: die Antwort liefert sowohl die kategorienweisen `category_scores` als auch die kompakte `evolink_summary` – die Anwendung kann frei wählen, welche sie nutzt

**Eingabebeschränkungen**:
- Maximal 1 Bild pro Anfrage (für mehrere Bilder bitte parallele Anfragen verwenden)
- Bilder werden ausschließlich als HTTPS-URL akzeptiert

**Typische Anwendung**: siehe die Beispiele unten – sie decken die drei typischen Szenarien reiner Text, Text+Bild sowie reines Bild ab.

<Note>
  **BaseURL**: Die Standard-BaseURL ist `https://direct.evolink.ai` und bietet bessere Unterstützung für Textmodelle sowie persistente Verbindungen. `https://api.evolink.ai` ist der primäre Endpunkt für multimodale Dienste und dient bei Textmodellen als Ausweichadresse.
</Note>


## OpenAPI

````yaml de/api-manual/language-series/evolink-moderation-1.0/evolink-moderation-1.0-api.json POST /v1/moderations
openapi: 3.1.0
info:
  title: EvoLink Moderation 1.0 – Vollständige API-Referenz
  description: >-
    EvoLink Inhaltsmoderations-API: Sie prüft Texte und Bilder auf schädliche
    Inhalte und liefert über das Feld `evolink_summary` eine einheitliche
    Risiko-Zusammenfassung, sodass auf Anwendungsseite das Risikolevel auf einen
    Blick erkennbar ist.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Produktion (empfohlen)
  - url: https://api.evolink.ai
    description: Ausweich-Endpunkt
security:
  - bearerAuth: []
tags:
  - name: Inhaltsmoderation
    description: EvoLink Inhaltsmoderations-API (Text + Bild)
paths:
  /v1/moderations:
    post:
      tags:
        - Inhaltsmoderation
      summary: EvoLink Moderation – Inhaltsmoderations-Endpunkt
      description: >-
        - Synchroner Endpunkt: prüft den eingegebenen **Text** und/oder das
        eingegebene **Bild** in 13 Dimensionen auf schädliche Inhalte

        - Die Antwort enthält im Feld `evolink_summary` eine einheitliche
        Zusammenfassung mit den fünf Werten `risk_level` / `flagged` /
        `violations` / `max_score` / `max_category`


        **Kernfunktionen**:

        - **Multimodale Moderation**: unterstützt reinen Text, reines Bild sowie
        kombinierte Text-+-Bild-Eingaben

        - **13 Kategorien**: harassment, hate, sexual, violence, self-harm,
        illicit, sexual/minors usw.

        - **Risikoabstufung**: jede Kategorie hat eigene Schwellenwerte für
        medium/high und wird je nach Sensibilität differenziert bewertet (die
        rote-Linie-Kategorie sexual/minors hat den strengsten Schwellenwert)

        - **Erklärbar**: die Antwort liefert sowohl die kategorienweisen
        `category_scores` als auch die kompakte `evolink_summary` – die
        Anwendung kann frei wählen, welche sie nutzt


        **Eingabebeschränkungen**:

        - Maximal 1 Bild pro Anfrage (für mehrere Bilder bitte parallele
        Anfragen verwenden)

        - Bilder werden ausschließlich als HTTPS-URL akzeptiert


        **Typische Anwendung**: siehe die Beispiele unten – sie decken die drei
        typischen Szenarien reiner Text, Text+Bild sowie reines Bild ab.
      operationId: createModeration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModerationRequest'
            examples:
              moderate_text:
                summary: Reine Textmoderation
                value:
                  model: evolink-moderation-1.0
                  input:
                    - type: text
                      text: I want to kill them.
              moderate_image_url:
                summary: Reine Bildmoderation
                value:
                  model: evolink-moderation-1.0
                  input:
                    - type: image_url
                      image_url:
                        url: https://example.com/image.png
              moderate_text_and_image:
                summary: Kombinierte Text-+-Bild-Moderation (empfohlen)
                value:
                  model: evolink-moderation-1.0
                  input:
                    - type: text
                      text: Bitte beschreibe, was auf diesem Bild zu sehen ist.
                    - type: image_url
                      image_url:
                        url: https://example.com/image.png
      responses:
        '200':
          description: Moderation erfolgreich
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModerationResponse'
              example:
                evolink_summary:
                  risk_level: medium
                  flagged: false
                  violations: []
                  max_score: 0.597383272
                  max_category: sexual
                id: modr-0d9740456c391e43c445bf0f010940c7
                model: evolink-moderation-1.0
                results:
                  - flagged: false
                    categories:
                      harassment: false
                      harassment/threatening: false
                      hate: false
                      hate/threatening: false
                      illicit: false
                      illicit/violent: false
                      self-harm: false
                      self-harm/intent: false
                      self-harm/instructions: false
                      sexual: false
                      sexual/minors: false
                      violence: false
                      violence/graphic: false
                    category_scores:
                      harassment: 0.0006
                      harassment/threatening: 0.0007
                      hate: 0.00003
                      hate/threatening: 0.0000025
                      illicit: 0.000013
                      illicit/violent: 0.0000096
                      self-harm: 0.0000166
                      self-harm/intent: 0.000004
                      self-harm/instructions: 0.0000031
                      sexual: 0.597383272
                      sexual/minors: 0.000004
                      violence: 0.0231
                      violence/graphic: 0.0089
                    category_applied_input_types:
                      harassment:
                        - text
                      harassment/threatening:
                        - text
                      hate:
                        - text
                      hate/threatening:
                        - text
                      illicit:
                        - text
                      illicit/violent:
                        - text
                      self-harm:
                        - text
                      self-harm/intent:
                        - text
                      self-harm/instructions:
                        - text
                      sexual:
                        - text
                      sexual/minors:
                        - text
                      violence:
                        - text
                      violence/graphic:
                        - text
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 400
                  message: field input is required
                  type: invalid_request_error
                  param: input
        '401':
          description: Nicht authentifiziert, Token ungültig oder abgelaufen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 401
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Guthaben nicht ausreichend, bitte aufladen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Insufficient quota
                  type: insufficient_quota_error
                  fallback_suggestion: https://evolink.ai/dashboard/billing
        '403':
          description: Keine Berechtigung für dieses Modell
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 403
                  message: Access denied for this model
                  type: permission_error
                  param: model
        '404':
          description: Ressource nicht gefunden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 404
                  message: Specified model not found
                  type: not_found_error
                  param: model
                  fallback_suggestion: evolink-moderation-1.0
        '413':
          description: Anfragetext zu groß (Bilddatei überschreitet das Limit)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 413
                  message: Image file too large
                  type: request_too_large_error
                  param: input
                  fallback_suggestion: compress image to under 20MB
        '429':
          description: Anfragerate überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: Rate limit exceeded
                  type: rate_limit_error
                  fallback_suggestion: retry after 60 seconds
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Internal server error
                  type: internal_server_error
                  fallback_suggestion: try again later
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 502
                  message: Bad gateway
                  type: bad_gateway_error
                  fallback_suggestion: try again later
        '503':
          description: Dienst vorübergehend nicht verfügbar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 503
                  message: Service temporarily unavailable
                  type: service_unavailable_error
                  fallback_suggestion: retry after 30 seconds
components:
  schemas:
    ModerationRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: >-
            Name des Moderationsmodells, fest auf `evolink-moderation-1.0`
            gesetzt
          enum:
            - evolink-moderation-1.0
          example: evolink-moderation-1.0
        input:
          type: array
          description: >-
            Der zu moderierende Inhalt, einheitlich als Array von Objekten.
            Jedes Element ist entweder ein `text`- oder ein `image_url`-Objekt.


            ```json

            "input": [
              {"type": "text", "text": "Zu prüfender Text"},
              {"type": "image_url", "image_url": {"url": "https://..."}}
            ]

            ```


            **Beschränkungen**:

            - Innerhalb des Arrays ist **maximal 1** Objekt mit `type=image_url`
            erlaubt; bei mehreren Bildern bitte parallele Anfragen senden

            - Die Anzahl der `type=text`-Objekte ist nicht beschränkt
          items:
            $ref: '#/components/schemas/ModerationContentItem'
    ModerationResponse:
      type: object
      description: >-
        Moderationsantwort. Auf der obersten Ebene ist `evolink_summary` die für
        die Anwendungsseite empfohlene einheitliche Risiko-Zusammenfassung;
        `results` enthält die detaillierten Scores pro Kategorie.
      properties:
        evolink_summary:
          $ref: '#/components/schemas/EvolinkSummary'
        id:
          type: string
          description: Eindeutige Kennung dieser Moderationsanfrage
          example: modr-0d9740456c391e43c445bf0f010940c7
        model:
          type: string
          description: >-
            Name des tatsächlich verwendeten Modells, fest auf
            `evolink-moderation-1.0` gesetzt
          example: evolink-moderation-1.0
        results:
          type: array
          description: >-
            Liste der Moderationsergebnisse. Es wird stets **1** Ergebnis
            zurückgegeben (Eingaben in Array-Form werden zu einer einzelnen
            Bewertung zusammengeführt).


            ## Multimodaler Bewertungsumfang


            Von den 13 Kategorien werden einige **nur am Text** ausgewertet,
            nicht am Bild:


            | Kategorie | Bewertungsumfang |

            |------|----------|

            | `harassment` / `harassment/threatening` | Nur Text |

            | `hate` / `hate/threatening` | Nur Text |

            | `illicit` / `illicit/violent` | Nur Text |

            | `sexual/minors` | **Nur Text (rote Linie — besondere Vorsicht)** |

            | `self-harm` / `self-harm/intent` / `self-harm/instructions` | Text
            + Bild |

            | `sexual` | Text + Bild |

            | `violence` / `violence/graphic` | Text + Bild |


            **Wichtige Fakten**:

            - Wird ausschließlich ein Bild übergeben, sind die Scores der oben
            genannten 7 reinen Text-Kategorien stets `0` und
            `category_applied_input_types` ist ein leeres Array – **das bedeutet
            nicht, dass der Inhalt sicher ist, sondern lediglich, dass er nicht
            bewertet wurde**

            - Befasst sich die Anwendung mit Risiken für Minderjährige
            (rote-Linie-Kategorie `sexual/minors`), **muss zwingend zusammen mit
            dem Textkontext geprüft werden** – sich nur auf den Bild-Score zu
            verlassen, ist nicht zulässig
          items:
            $ref: '#/components/schemas/ModerationResult'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP-Statusfehlercode
            message:
              type: string
              description: Beschreibung des Fehlers
            type:
              type: string
              description: Fehlertyp
            param:
              type: string
              description: Name des betroffenen Parameters
            fallback_suggestion:
              type: string
              description: Empfehlung im Fehlerfall
    ModerationContentItem:
      oneOf:
        - $ref: '#/components/schemas/TextInputItem'
        - $ref: '#/components/schemas/ImageInputItem'
    EvolinkSummary:
      type: object
      description: >-
        **EvoLink Risiko-Zusammenfassung**: eine einheitliche Zusammenfassung,
        die auf Basis der `category_scores` der 13 Kategorien anhand
        sensibilitätsabhängig differenzierter Schwellenwerte berechnet wird. Die
        Anwendung kann darauf direkt Freigabe/Ablehnung/Manuelle Prüfung
        stützen.


        ## Tabelle der Risiko-Schwellenwerte


        | Kategorie | medium-Schwelle | high-Schwelle | Hinweise |

        |------|-----------|----------|------|

        | `sexual/minors` | 0,05 | 0,20 | **Rote-Linie-Kategorie**, strengster
        Schwellenwert |

        | `self-harm` / `self-harm/intent` / `self-harm/instructions` | 0,30 |
        0,60 | Lebensgefahr betroffen, streng |

        | `violence/graphic` | 0,40 | 0,70 | Drastische Gewalt |

        | `illicit/violent` | 0,40 | 0,70 | Gewaltsame illegale Inhalte |

        | `sexual` | 0,50 | 0,80 | Allgemeine sexuelle Inhalte |

        | `violence` | 0,50 | 0,80 | Allgemeine Gewalt |

        | `harassment/threatening` | 0,50 | 0,80 | Bedrohliche Belästigung |

        | `hate/threatening` | 0,50 | 0,80 | Bedrohlicher Hass |

        | `harassment` | 0,60 | 0,85 | Allgemeine Belästigung |

        | `hate` | 0,60 | 0,85 | Allgemeiner Hass |

        | `illicit` | 0,60 | 0,85 | Allgemeine Anleitung zu illegalen Handlungen
        |


        ## Bewertungsregeln


        ```

        Irgendeine Kategorie score >= high-Schwelle dieser Kategorie   →
        risk_level = "high",   flagged = true,  Aufnahme in violations

        Irgendeine Kategorie score >= medium-Schwelle dieser Kategorie →
        risk_level = "medium", flagged = false

        Andernfalls                                                    →
        risk_level = "low",    flagged = false

        ```


        ## Empfehlungen für die Anwendungsseite


        ```python

        summary = response["evolink_summary"]


        if summary["flagged"]:                         # high → direkt ablehnen
            reject(reason=summary["violations"])
        elif summary["risk_level"] == "medium":        # Graubereich
            log_for_review(summary)                    # protokollieren, manuelle Stichprobe
            proceed()
        else:                                          # low → freigeben
            proceed()
        ```
      properties:
        risk_level:
          type: string
          description: >-
            Risikolevel


            - `low`: alle Kategorien liegen unter der medium-Schwelle

            - `medium`: mindestens eine Kategorie überschreitet die
            medium-Schwelle, aber keine die high-Schwelle

            - `high`: mindestens eine Kategorie überschreitet die high-Schwelle
            (rote Linie)
          enum:
            - low
            - medium
            - high
          example: medium
        flagged:
          type: boolean
          description: >-
            Gibt an, ob eine Ablehnungs-Empfehlung ausgelöst wird.


            Äquivalent zu `risk_level == "high"`. **Anwendungsseitig wird
            empfohlen, Freigabe/Ablehnung direkt anhand dieses Werts zu
            entscheiden**.


            Hinweis: Dieses Feld unterscheidet sich von `results[].flagged` –
            `results[].flagged` ist ein globaler Boolean, der bei Überschreiten
            irgendeiner Kategorieschwelle auslöst, während dieses Feld auf den
            abgestuften EvoLink-Schwellenwerten basiert und entsprechend der
            Sensibilität differenziert bewertet, somit besser steuerbar ist.
          example: false
        violations:
          type: array
          description: >-
            **Liste der Kategorien, welche die high-Schwelle ausgelöst haben**.


            - Bei `risk_level == "high"` enthält dieses Array alle
            Kategorienamen, deren Score die high-Schwelle überschritten hat (z.
            B. `["sexual/minors", "violence"]`)

            - Bei `risk_level == "medium"` oder `"low"` ist dieses Array leer
            (`[]`)
          items:
            type: string
          example:
            - sexual/minors
        max_score:
          type: number
          description: >-
            Höchster Score-Wert unter den 13 Kategorien (0–1). Geeignet für
            Anwendungs-Monitoring und Schwellenwert-Tuning.
          minimum: 0
          maximum: 1
          example: 0.597383272
        max_category:
          type: string
          description: >-
            Name der Kategorie, der der höchste Score zugeordnet ist (eine der
            13 Kategorien)
          example: sexual
    ModerationResult:
      type: object
      description: Moderationsergebnis einer einzelnen Eingabe
      properties:
        flagged:
          type: boolean
          description: >-
            Globaler Verstoß-Flag: ist `true`, sobald irgendeine Kategorie in
            `categories` `true` ist.


            **Anwendungsseitig wird empfohlen, bevorzugt
            `evolink_summary.flagged` zu verwenden** – dieser Wert basiert auf
            den abgestuften Schwellenwerten der EvoLink-Plattform, ist feiner
            und besser steuerbar; das vorliegende Feld eignet sich eher als
            Rückfallreferenz.
          example: false
        categories:
          $ref: '#/components/schemas/ModerationCategories'
        category_scores:
          $ref: '#/components/schemas/ModerationCategoryScores'
        category_applied_input_types:
          $ref: '#/components/schemas/ModerationCategoryAppliedInputTypes'
    TextInputItem:
      title: Texteingabe-Element
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - text
          description: Inhaltstyp, fest auf `text` gesetzt
        text:
          type: string
          description: Der zu prüfende Text
          example: Bitte beschreibe, was auf diesem Bild zu sehen ist.
    ImageInputItem:
      title: Bildeingabe-Element
      type: object
      required:
        - type
        - image_url
      properties:
        type:
          type: string
          enum:
            - image_url
          description: Inhaltstyp, fest auf `image_url` gesetzt
        image_url:
          type: object
          required:
            - url
          properties:
            url:
              type: string
              format: uri
              description: >-
                HTTPS-URL des Bildes, z. B. `https://example.com/image.png`


                **Unterstützte Formate**: `.jpeg` / `.jpg` / `.png` / `.webp`


                **Größenbeschränkung**: Empfohlen sind ≤ 20 MB pro Bild (zu
                große Dateien können einen 413-Fehler auslösen)


                **Hinweis**: Pro Anfrage ist maximal 1 Bild zulässig; bei
                mehreren Bildern bitte parallele Anfragen verwenden
              example: https://example.com/image.png
    ModerationCategories:
      type: object
      description: Boolesche Verstoßmarkierungen für die 13 Kategorien
      properties:
        harassment:
          type: boolean
          description: >-
            Belästigung: belästigende Sprache, die sich gegen ein beliebiges
            Ziel richtet, ausdrückt, anstachelt oder begünstigt
        harassment/threatening:
          type: boolean
          description: >-
            Bedrohliche Belästigung: belästigende Inhalte, die zusätzlich Gewalt
            oder schwere Schädigung enthalten
        hate:
          type: boolean
          description: >-
            Hass: Hassinhalte aufgrund von Rasse, Geschlecht, Ethnie, Religion,
            Nationalität, sexueller Orientierung, Behinderung oder Kaste
        hate/threatening:
          type: boolean
          description: >-
            Bedrohlicher Hass: Hassinhalte verbunden mit Gewalt oder schwerer
            Schädigung gegen die anvisierte Gruppe
        illicit:
          type: boolean
          description: >-
            Illegale Handlungen: Anleitungen oder Ratschläge zu illegalen
            Handlungen (z. B. „wie man stiehlt“)
        illicit/violent:
          type: boolean
          description: >-
            Gewaltsame illegale Inhalte: illegale Inhalte, die zusätzlich Gewalt
            oder den Erwerb von Waffen propagieren
        self-harm:
          type: boolean
          description: >-
            Selbstverletzung: Werbung, Förderung oder Darstellung von
            Selbstverletzungshandlungen (Suizid, Schnittverletzungen,
            Essstörungen usw.)
        self-harm/instructions:
          type: boolean
          description: >-
            Anleitung zur Selbstverletzung: Inhalte, die zur Selbstverletzung
            ermutigen oder anleiten
        self-harm/intent:
          type: boolean
          description: >-
            Selbstverletzungsabsicht: Inhalte, in denen ausgedrückt wird, dass
            man sich selbst verletzt oder dies beabsichtigt
        sexual:
          type: boolean
          description: >-
            Sexuell: Inhalte zur sexuellen Erregung (Sexualaufklärung und
            Gesundheit ausgenommen)
        sexual/minors:
          type: boolean
          description: >-
            Sexuelle Inhalte mit Minderjährigen (**rote-Linie-Kategorie**):
            sexuelle Inhalte, die Personen unter 18 Jahren betreffen
        violence:
          type: boolean
          description: 'Gewalt: Darstellung von Tod, Gewalt oder Körperverletzung'
        violence/graphic:
          type: boolean
          description: >-
            Drastische Gewalt: bildhaft-detaillierte Darstellung von Tod, Gewalt
            oder Körperverletzung
    ModerationCategoryScores:
      type: object
      description: >-
        Konfidenz-Scores für die 13 Kategorien (0–1, je höher, desto stärker der
        Verstoß)
      properties:
        harassment:
          type: number
          description: Konfidenz für harassment
          example: 0.0006
        harassment/threatening:
          type: number
          description: Konfidenz für harassment/threatening
          example: 0.0007
        hate:
          type: number
          description: Konfidenz für hate
          example: 0.00003
        hate/threatening:
          type: number
          description: Konfidenz für hate/threatening
          example: 0.0000025
        illicit:
          type: number
          description: Konfidenz für illicit
          example: 0.000013
        illicit/violent:
          type: number
          description: Konfidenz für illicit/violent
          example: 0.0000096
        self-harm:
          type: number
          description: Konfidenz für self-harm
          example: 0.0000166
        self-harm/instructions:
          type: number
          description: Konfidenz für self-harm/instructions
          example: 0.0000031
        self-harm/intent:
          type: number
          description: Konfidenz für self-harm/intent
          example: 0.000004
        sexual:
          type: number
          description: Konfidenz für sexual
          example: 0.5973
        sexual/minors:
          type: number
          description: Konfidenz für sexual/minors
          example: 0.000004
        violence:
          type: number
          description: Konfidenz für violence
          example: 0.0231
        violence/graphic:
          type: number
          description: Konfidenz für violence/graphic
          example: 0.0089
    ModerationCategoryAppliedInputTypes:
      type: object
      description: >-
        Gibt für jede Kategorie an, **welche Eingabetypen tatsächlich bewertet
        wurden**. Der Wert ist ein Array, dessen Elemente `text` oder `image`
        sind.


        Der Bewertungsumfang der einzelnen Kategorien (nur Text / Text + Bild)
        ist in der Tabelle in der Beschreibung des Felds `results`
        zusammengefasst; das hier vorliegende Array gibt die in der aktuellen
        Anfrage **tatsächlich getroffenen** Eingabetypen wieder.
      properties:
        harassment:
          type: array
          description: Bewerteter Eingabetyp für harassment (nur text)
          items:
            type: string
            enum:
              - text
        harassment/threatening:
          type: array
          items:
            type: string
            enum:
              - text
        hate:
          type: array
          items:
            type: string
            enum:
              - text
        hate/threatening:
          type: array
          items:
            type: string
            enum:
              - text
        illicit:
          type: array
          items:
            type: string
            enum:
              - text
        illicit/violent:
          type: array
          items:
            type: string
            enum:
              - text
        self-harm:
          type: array
          items:
            type: string
            enum:
              - text
              - image
        self-harm/instructions:
          type: array
          items:
            type: string
            enum:
              - text
              - image
        self-harm/intent:
          type: array
          items:
            type: string
            enum:
              - text
              - image
        sexual:
          type: array
          items:
            type: string
            enum:
              - text
              - image
        sexual/minors:
          type: array
          description: sexual/minors unterstützt nur text
          items:
            type: string
            enum:
              - text
        violence:
          type: array
          items:
            type: string
            enum:
              - text
              - image
        violence/graphic:
          type: array
          items:
            type: string
            enum:
              - text
              - image
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle Endpunkte erfordern eine Bearer-Token-Authentifizierung##


        **API-Key abrufen:**


        Besuche die
        [API-Key-Verwaltungsseite](https://evolink.ai/dashboard/keys), um deinen
        API-Key zu erhalten.


        **Im Request-Header verwenden:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````