> ## 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.

# Gemini Decisions - Vollständige Parameterreferenz

> - Bewerten Sie mit `gemini-decision-1` Texte, Bilder, Audio, Videos und PDFs anhand von Ja/Nein-Wahrscheinlichkeiten, Einzelauswahl und Bewertungen
- Alle Antworten werden synchron zurückgegeben; Streaming, Batch API und Kontext-Caching werden nicht unterstützt
- Nur Eingabe-Tokens werden berechnet; die Ausgabe ist kostenlos. Für jede Anfrage gilt ein Mindestbetrag. Siehe [Modellpreise](https://evolink.ai/pricing)
- Für Dialoge oder Textgenerierung verwenden Sie die [native Gemini API](/de/api-manual/language-series/gemini/native-api/native-api-reference)

> [!NOTE]
>
> **BaseURL**: Verwenden Sie standardmäßig `https://direct.evolink.ai`; `https://api.evolink.ai` dient als Ausweichadresse.


## OpenAPI

````yaml de/api-manual/language-series/gemini/decisions/decisions-reference.json POST /v1beta/decisions
openapi: 3.1.0
info:
  title: Gemini Decisions - Vollständige Parameterreferenz
  description: >-
    Mit der Gemini Decisions API beantwortet Gemini Decision 1 typisierte Fragen
    zu Text, Bildern, Audio, Video und PDF-Dokumenten:
    Ja/Nein-Wahrscheinlichkeiten, die Auswahl einer Option aus einer festen
    Liste oder Bewertungen anhand geordneter Stufen.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Produktionsumgebung (empfohlen)
  - url: https://api.evolink.ai
    description: Ausweichadresse
security:
  - bearerAuth: []
tags:
  - name: Decisions
    description: 'Strukturierte Entscheidungen: Klassifikation, Zuweisung und Bewertung'
paths:
  /v1beta/decisions:
    post:
      tags:
        - Decisions
      summary: Gemini Decision 1 (strukturierte Entscheidungen)
      description: >-
        - Bewerten Sie mit `gemini-decision-1` Texte, Bilder, Audio, Videos und
        PDFs anhand von Ja/Nein-Wahrscheinlichkeiten, Einzelauswahl und
        Bewertungen

        - Alle Antworten werden synchron zurückgegeben; Streaming, Batch API und
        Kontext-Caching werden nicht unterstützt

        - Nur Eingabe-Tokens werden berechnet; die Ausgabe ist kostenlos. Für
        jede Anfrage gilt ein Mindestbetrag. Siehe
        [Modellpreise](https://evolink.ai/pricing)

        - Für Dialoge oder Textgenerierung verwenden Sie die [native Gemini
        API](/de/api-manual/language-series/gemini/native-api/native-api-reference)
      operationId: createDecision
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DecisionRequest'
            examples:
              noul:
                summary: Ja/Nein-Frage
                value:
                  model: gemini-decision-1
                  input: >-
                    The blue mug I ordered on Monday arrived cracked on
                    Wednesday.
                  questions:
                    is_damaged:
                      type: noul
                      instructions: Did the item arrive damaged?
              choice:
                summary: Einzelauswahl (Zuweisung)
                value:
                  model: gemini-decision-1
                  input: I was charged twice for my order.
                  questions:
                    department:
                      type: choice
                      instructions: Which department should handle this request?
                      criteria:
                        billing: Payments, invoices, and refunds.
                        technical: Problems using the product.
                        shipping: Delivery and tracking.
                        other: Anything outside these categories.
              score:
                summary: Bewertung anhand geordneter Stufen
                value:
                  model: gemini-decision-1
                  input: Export fails in Safari but works in Chrome.
                  questions:
                    severity:
                      type: score
                      instructions: How severe is this issue for the user?
                      criteria:
                        - 'Cosmetic: appearance only, no lost functionality.'
                        - >-
                          Workaround available: a task fails, but another way
                          works.
                        - 'Fully blocked: a task fails with no workaround.'
              multiple:
                summary: Mehrere Fragen in einer Anfrage
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: >
                        {"order": {"id": "8821", "item": "headphones",
                        "price_usd": 240}, "tier": "Gold"}
                    - type: text
                      text: >-
                        {"message": "Audio cuts out on the left earcup. Fix it
                        today or I cancel my membership."}
                  questions:
                    is_defect:
                      type: noul
                      instructions: Does `message` describe a hardware defect?
                    next_action:
                      type: choice
                      instructions: What is the right resolution given `tier` and `order`?
                      criteria:
                        instant_refund: Refund without return. Low value or clear fault.
                        replacement_shipment: Ship a replacement. Customer returns the original.
                        troubleshooting_flow: The issue may be fixable by the customer.
                        human_escalation: ''
                    churn_risk:
                      type: score
                      instructions: >-
                        How likely is the customer to churn if the issue is not
                        resolved now?
                      criteria:
                        - No churn signal
                        - Mild frustration
                        - Mentions alternatives
                        - Threatens to cancel
              image_base64:
                summary: Eingebettetes Bild bewerten (base64)
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: Look at the image.
                    - type: image
                      data: >-
                        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKklEQVR42mM4ISdHU8QwasGoBaMWjFowasGoBaMWjFowasGoBaMWDBULACXLED1gHZEpAAAAAElFTkSuQmCC
                      mime_type: image/png
                      resolution: low
                  questions:
                    is_red:
                      type: noul
                      instructions: Is the image mostly red?
              image_url:
                summary: Bild über eine URL bewerten
                value:
                  model: gemini-decision-1
                  input:
                    - type: text
                      text: Product photo.
                    - type: image
                      uri: https://www.gstatic.com/webp/gallery/1.jpg
                      mime_type: image/jpeg
                      resolution: low
                  questions:
                    outdoor:
                      type: noul
                      instructions: Is this photo taken outdoors?
                    quality:
                      type: score
                      instructions: How sharp is the photo?
                      criteria:
                        - blurry
                        - ok
                        - sharp
              audio_url:
                summary: Audio über eine URL bewerten
                value:
                  model: gemini-decision-1
                  input:
                    - type: audio
                      uri: >-
                        https://storage.googleapis.com/generativeai-downloads/data/Apollo-11_Day-01-Highlights-10s.mp3
                      mime_type: audio/mp3
                  questions:
                    mentions_launch:
                      type: noul
                      instructions: >-
                        Is the speaker talking about spaceflight or a rocket
                        launch?
      responses:
        '200':
          description: >-
            Eine Antwort pro Frage, unter denselben Schlüsseln wie die Fragen in
            der Anfrage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecisionResponse'
              example:
                answers:
                  is_defect:
                    type: noul
                    noul: 0.94
                    confidence: 0.94
                  next_action:
                    type: choice
                    choice: human_escalation
                    probabilities:
                      human_escalation: 0.76
                      replacement_shipment: 0.18
                      troubleshooting_flow: 0.04
                      instant_refund: 0.02
                    confidence: 0.76
                  churn_risk:
                    type: score
                    score: 2.99
                    legend:
                      '0': No churn signal
                      '1': Mild frustration
                      '2': Mentions alternatives
                      '3': Threatens to cancel
                    probabilities:
                      '0': 0
                      '1': 0
                      '2': 0.01
                      '3': 0.99
                    confidence: 0.99
                usage:
                  total_input_tokens: 324
                  input_tokens_by_modality:
                    - modality: text
                      tokens: 324
                  total_output_tokens: 0
                  total_tokens: 324
        '400':
          description: >-
            Ungültige Anfrage. Bei fehlerhaftem Anfrageinhalt ist `code` gleich
            `invalid_request`, und `message` nennt das betroffene Feld und die
            verletzte Regel. Häufige Ursachen: ein nicht unterstützter Fragetyp
            in `type`, eine `choice`- oder `score`-Frage ohne `criteria`,
            weniger als 2 Optionen oder Stufen, ein ungültiger Frageschlüssel,
            eine leere `input`, ein unbekanntes Feld (etwa `stream`), ein
            `mime_type`, der nicht zum Inhalt passt, oder eine `gs://`-URI bzw.
            ein `files/...`-Name. Von Sicherheitsfiltern blockierte Eingaben
            liefern `safety`, `prohibited_content`, `blocklist`, `image_safety`
            oder `content_blocked`. Wird dieses Modell an einem anderen Endpunkt
            verwendet, lautet der Code `model_endpoint_mismatch`.
            HTTP-Fehlerantworten werden nicht berechnet.
            Sicherheitsrückmeldungen in einer HTTP-200-Antwort werden weiterhin
            berechnet; siehe `usage`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_question_type:
                  summary: Nicht unterstützter Fragetyp
                  value:
                    error:
                      message: >-
                        The value 'bool' is not supported for 'type' at
                        'questions.q'. Supported values: 'choice', 'noul',
                        'score'. (request id: 20261112194236591724000xVRbpAJk)
                      type: ''
                      param: ''
                      code: invalid_request
                safety_blocked:
                  summary: Eingabe von Sicherheitsfiltern blockiert
                  value:
                    error:
                      message: >-
                        Request blocked due to safety violations (harmful
                        content). Please modify your input and retry. (request
                        id: 20261112194253810462000pRk2HvTe)
                      type: ''
                      param: ''
                      code: safety
                model_endpoint_mismatch:
                  summary: Modell an den falschen Endpunkt gesendet
                  value:
                    error:
                      allowed_endpoints:
                        - /v1beta/decisions
                      code: model_endpoint_mismatch
                      expected_endpoint: /v1beta/decisions
                      message: >-
                        The model 'gemini-decision-1' cannot be used with
                        /v1/decisions. Allowed endpoints: /v1beta/decisions.
                        (request id: 20261112194245600264000oIU8uBcu)
                      param: null
                      retryable: false
                      type: invalid_request_error
        '401':
          description: 'Nicht autorisiert: API Key fehlt oder ist ungültig'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: >-
                    API key is required (request id:
                    202611121942512304710006r9sjD0r)
                  param: null
                  type: authentication_error
        '402':
          description: Unzureichendes Guthaben
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            Zugriff verweigert. `permission_denied`: `input` verweist auf eine
            Datei der Google Files API, auf die nur das Google-Projekt zugreifen
            kann, das sie hochgeladen hat; übergeben Sie das Medium stattdessen
            als öffentliche oder signierte HTTPS-URL oder eingebettet als
            base64. Dieser Status wird auch zurückgegeben, wenn der API Key eine
            Modell-Allowlist hat, die dieses Modell nicht enthält
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                permission_denied:
                  summary: URI der Google Files API verwendet
                  value:
                    error:
                      message: >-
                        You do not have permission to access the File abc123xyz
                        or it may not exist. (request id:
                        20261112194238873347000q1Tkqeid)
                      type: ''
                      param: ''
                      code: permission_denied
        '404':
          description: >-
            Nicht gefunden. `not_found`: Eine Medien-URL in `input` konnte nicht
            abgerufen werden; stellen Sie sicher, dass es sich um eine
            öffentlich erreichbare oder korrekt signierte HTTPS-URL handelt.
            `model_not_found`: Das Modell ist für die Decisions API nicht
            verfügbar; derzeit wird nur `gemini-decision-1` unterstützt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                url_not_found:
                  summary: Medien-URL nicht abrufbar
                  value:
                    error:
                      message: >-
                        Cannot fetch content from the provided URL. The URL
                        could not be found. Please double-check the URL for any
                        errors. (request id: 20261112194241224738000Vx0uduIQ)
                      type: ''
                      param: ''
                      code: not_found
                model_not_found:
                  summary: Modell für Decisions nicht verfügbar
                  value:
                    error:
                      code: model_not_found
                      message: >-
                        Model 'gemini-3.8-flash' is not available for the
                        Decisions API (POST /v1beta/decisions) with this API
                        key. This error is permanent — do not retry with the
                        same model id. Call GET /v1/models: Decisions models for
                        this endpoint are listed as gemini-decision-*. (request
                        id: 20261112194249376584000tUELY8LN)
                      param: null
                      retryable: false
                      type: invalid_request_error
        '429':
          description: Anfragelimit überschritten; versuchen Sie es später erneut
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Dienst vorübergehend nicht verfügbar; versuchen Sie es später erneut
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    DecisionRequest:
      type: object
      additionalProperties: false
      required:
        - model
        - input
        - questions
      properties:
        model:
          type: string
          description: >-
            Modell-ID. Verwenden Sie `gemini-decision-1`.


            Dieses Modell ist kein Chatmodell und funktioniert nur an diesem
            Endpunkt. Wird es etwa an den GPT-Decisions-Endpunkt `/v1/decisions`
            gesendet, wird `400 model_endpoint_mismatch` zurückgegeben.
          enum:
            - gemini-decision-1
          example: gemini-decision-1
        input:
          description: >-
            Gemeinsame Eingabe für alle Fragen: ein Textstring, ein einzelner
            Inhaltsblock oder ein Array von Inhaltsblöcken (Text, Bild, Audio,
            Video oder PDF-Dokument). Die Eingabe darf nicht leer sein.
            Aufeinanderfolgende Textblöcke werden ohne Trennzeichen in
            Reihenfolge verbunden; fügen Sie bei Bedarf selbst Leerzeichen oder
            Zeilenumbrüche ein. JSON-Daten serialisieren Sie zu einem String und
            übergeben sie als Text.
          oneOf:
            - type: string
              minLength: 1
              example: I was charged twice for my order.
            - $ref: '#/components/schemas/InputContent'
            - type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/InputContent'
        questions:
          type: object
          description: >-
            Zu bewertende Fragen als Map von Frageschlüssel zu Frage: 1 bis
            1.000 Fragen. Die Schlüssel legen Sie selbst fest (1 bis 64 Zeichen,
            passend zu `[A-Za-z0-9_-]+`); jede Antwort wird unter demselben
            Schlüssel zurückgegeben. Das Modell sieht die Schlüssel nicht,
            formulieren Sie die vollständige Frage daher in `instructions`.


            | Typ | Zweck | Wichtigstes Ergebnis |

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

            | `noul` | Prüfen, ob eine Aussage zutrifft | `noul`:
            Wahrscheinlichkeit für „Ja“ (0,01 bis 0,99) |

            | `choice` | Eine Option aus einer festen Liste wählen | `choice`:
            die wahrscheinlichste Options-ID |

            | `score` | Die Eingabe anhand geordneter Stufen bewerten | `score`:
            nach Wahrscheinlichkeiten gewichtete Stufenbewertung |


            Jede Frage wird unabhängig anhand derselben Eingabe bewertet und
            sieht die anderen Fragen nicht; Fragetypen können gemischt werden.
            Hängen Fragen voneinander ab, teilen Sie sie auf mehrere Anfragen
            auf. Eingabe und alle Fragen teilen sich ein Kontextfenster von
            262.144 Tokens.
          minProperties: 1
          maxProperties: 1000
          propertyNames:
            pattern: ^[A-Za-z0-9_-]{1,64}$
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/NoulQuestion'
              - $ref: '#/components/schemas/ChoiceQuestion'
              - $ref: '#/components/schemas/ScoreQuestion'
          example:
            is_damaged:
              type: noul
              instructions: Did the item arrive damaged?
      description: >-
        Der Anfragekörper akzeptiert nur `model`, `input` und `questions`. Jedes
        weitere Feld (etwa `stream`) führt zu `400 invalid_request`.
    DecisionResponse:
      type: object
      properties:
        answers:
          type: object
          description: >-
            Eine Antwort pro Frage unter denselben Schlüsseln wie die Fragen in
            der Anfrage; der `type` jeder Antwort entspricht ihrer Frage. Leer,
            wenn `prompt_feedback.block_reason` gesetzt ist
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/NoulAnswer'
              - $ref: '#/components/schemas/ChoiceAnswer'
              - $ref: '#/components/schemas/ScoreAnswer'
        usage:
          $ref: '#/components/schemas/DecisionUsage'
        prompt_feedback:
          $ref: '#/components/schemas/PromptFeedback'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: >-
                Fehlerbeschreibung mit `(request id: ...)` am Ende. Geben Sie
                diese ID bei der Fehlersuche an
            type:
              type:
                - string
                - 'null'
              description: Fehlertyp; kann leer sein
            param:
              type:
                - string
                - 'null'
              description: Betroffener Parameter; kann leer sein
            code:
              type:
                - string
                - 'null'
              description: >-
                Fehlercode, etwa `invalid_request`, `permission_denied`,
                `not_found`, `safety`, `model_not_found` oder
                `model_endpoint_mismatch`
    InputContent:
      description: Ein Inhaltsblock; `type` bestimmt die übrigen Felder
      oneOf:
        - $ref: '#/components/schemas/TextContent'
        - $ref: '#/components/schemas/ImageContent'
        - $ref: '#/components/schemas/AudioContent'
        - $ref: '#/components/schemas/VideoContent'
        - $ref: '#/components/schemas/DocumentContent'
    NoulQuestion:
      type: object
      description: Ja/Nein-Frage
      required:
        - type
        - instructions
      properties:
        type:
          type: string
          enum:
            - noul
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: object
          description: >-
            Optional. Legt fest, was „Ja“ und „Nein“ bedeuten, wenn die Frage
            allein mehrdeutig ist
          properties:
            true_description:
              type: string
              description: Wann die Antwort „Ja“ lautet
            false_description:
              type: string
              description: Wann die Antwort „Nein“ lautet
    ChoiceQuestion:
      type: object
      description: Einzelauswahlfrage
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - choice
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: object
          description: >-
            Optionen als Map von Options-ID zu einer Beschreibung, wann sie
            zutrifft (leerer String `""`, wenn die ID selbsterklärend ist). 2
            bis 255 Optionen. Options-IDs sind 1 bis 128 Zeichen lang (bis zu
            512 UTF-8-Bytes); ASCII-Leerzeichen im Inneren sind erlaubt,
            führende oder nachgestellte Leerzeichen und Steuerzeichen nicht. Vor
            der Bewertung werden die Options-IDs alphabetisch
            (UTF-8-Bytereihenfolge) sortiert, und bei exakt gleicher
            Wahrscheinlichkeit gewinnt die alphabetisch erste ID. Verwenden Sie
            für eine Auffangoption daher eine positionsunabhängige ID wie
            `other` statt `none_of_the_above`
          minProperties: 2
          maxProperties: 255
          additionalProperties:
            type: string
          example:
            billing: Payments, invoices, and refunds.
            technical: Problems using the product.
            shipping: Delivery and tracking.
            other: Anything outside these categories.
    ScoreQuestion:
      type: object
      description: Bewertungsfrage
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - score
        instructions:
          $ref: '#/components/schemas/QuestionInstructions'
        criteria:
          type: array
          description: >-
            Stufenbeschreibungen in aufsteigender Reihenfolge: 2 bis 255 nicht
            leere Strings (2 bis 10 empfohlen). Stufe `i` (ab 0) wird durch
            `criteria[i]` beschrieben. Da `score` die Stufenindizes mittelt,
            sollte die Skala linear sein und benachbarte Stufen sollten klar
            unterscheidbar sein
          minItems: 2
          maxItems: 255
          items:
            type: string
            minLength: 1
          example:
            - 'Cosmetic: appearance only, no lost functionality.'
            - 'Workaround available: a task fails, but another way works.'
            - 'Fully blocked: a task fails with no workaround.'
    NoulAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - noul
        noul:
          type: number
          minimum: 0.01
          maximum: 0.99
          description: >-
            Kalibrierte Wahrscheinlichkeit für „Ja“ von 0,01 bis 0,99; die
            Wahrscheinlichkeit für „Nein“ ist `1 - noul`. Legen Sie
            Schwellenwerte innerhalb dieses Bereichs anhand gelabelter Beispiele
            aus Ihrem eigenen Datenverkehr fest
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: >-
            Geschätzte Wahrscheinlichkeit, dass die wahrscheinlichste Antwort
            zutrifft, gleich `max(noul, 1 - noul)`
    ChoiceAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - choice
        choice:
          type: string
          description: Die Options-ID mit der höchsten Wahrscheinlichkeit
        probabilities:
          type: object
          description: >-
            Kalibrierte Wahrscheinlichkeit jeder Options-ID, Summe 1. Die
            Wahrscheinlichkeit verteilt sich immer auf Ihre Optionen, auch wenn
            keine passt
          additionalProperties:
            type: number
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: >-
            Wahrscheinlichkeit der gewählten Option, von 0 bis 1. Bei niedrigen
            Werten empfiehlt sich eine manuelle Prüfung oder eine zusätzliche
            Ja/Nein-Frage zum Geltungsbereich
    ScoreAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - score
        score:
          type: number
          description: >-
            Nach Wahrscheinlichkeiten gewichteter Mittelwert der Stufenindizes
            (`sum(k × probability_k)`), kann also zwischen zwei Stufen liegen.
            Teilen Sie den Wert durch den höchsten Stufenindex, um ihn auf 0–1
            zu normalisieren
        probabilities:
          type: object
          description: >-
            Kalibrierte Wahrscheinlichkeit jedes Stufenindex (`"0"`, `"1"`,
            ...), Summe 1. Für eine eindeutige Stufe nehmen Sie den Index mit
            der höchsten Wahrscheinlichkeit
          additionalProperties:
            type: number
        legend:
          type: object
          description: Beschreibung jedes Stufenindex aus `criteria`
          additionalProperties:
            type: string
        confidence:
          type: number
          minimum: 0
          maximum: 1
          description: Die höchste Wahrscheinlichkeit in `probabilities`, von 0 bis 1
    DecisionUsage:
      type: object
      description: >-
        Token-Verbrauch. Nur Eingabe-Tokens werden berechnet
        (`total_input_tokens`): Text-, Bild-, Audio-, Video- und PDF-Tokens
        kosten gleich viel, und die Ausgabe ist immer 0. Für jede Anfrage gilt
        ein Mindestbetrag. Aktuelle Preise finden Sie unter
        [Modellpreise](https://evolink.ai/pricing). Kontext-Caching wird nicht
        unterstützt; wiederholte Eingaben werden bei jeder Anfrage erneut
        berechnet. Enthält eine HTTP-200-Antwort `prompt_feedback.block_reason`,
        wird der Eingabeverbrauch weiterhin berechnet. Fehlen gültige
        Verbrauchsdaten, erfolgt die Abrechnung anhand einer Schätzung.
      properties:
        total_input_tokens:
          type: integer
          description: >-
            Berechnete Eingabe-Tokens für die gemeinsame Eingabe und alle
            Fragen. Die gemeinsame Eingabe zählt einmal pro Anfrage, unabhängig
            von der Anzahl der Fragen; jede Frage fügt nur ihre eigenen
            Anweisungen und Kriterien hinzu
          example: 324
        input_tokens_by_modality:
          type: array
          description: Eingabe-Tokens nach Modalität
          items:
            type: object
            properties:
              modality:
                type: string
                description: >-
                  Modalität: `text`, `image` oder `audio`. Videoframes und
                  PDF-Seitenbilder werden als `image` gezählt
              tokens:
                type: integer
                description: Anzahl der Tokens für diese Modalität
        total_output_tokens:
          type: integer
          description: Immer 0; dieses Modell erzeugt keinen Text
          example: 0
        total_tokens:
          type: integer
          description: Tokens insgesamt
          example: 324
    PromptFeedback:
      type: object
      description: >-
        Rückmeldung der Inhaltsfilter für die Eingabe. Ist `block_reason`
        gesetzt, wurde die Eingabe blockiert, keine Frage wurde bewertet und
        `answers` ist leer. Bei einer Rückgabe mit HTTP 200 wird die Anfrage
        weiterhin berechnet; siehe `usage`.
      properties:
        block_reason:
          type: string
          enum:
            - safety
            - other
            - blocklist
            - prohibited_content
            - image_safety
          description: Grund für die Blockierung der Eingabe
        block_reason_message:
          type: string
          description: Details zum Grund der Blockierung
    TextContent:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
          description: Textinhalt
    ImageContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - image
        data:
          type: string
          contentEncoding: base64
          description: >-
            Base64-codierte Dateibytes (eingebettete Daten insgesamt bis zu 100
            MB pro Anfrage). Geben Sie entweder `data` oder `uri` an
        uri:
          type: string
          format: uri
          description: >-
            Öffentliche oder signierte HTTPS-URL der Datei (bis zu 15 MB). URIs
            der Google Files API, `gs://`-URIs, `files/...`-Namen und
            YouTube-URLs werden nicht unterstützt. Geben Sie entweder `data`
            oder `uri` an
        mime_type:
          type: string
          enum:
            - image/png
            - image/jpeg
            - image/webp
            - image/heic
            - image/heif
            - image/gif
            - image/bmp
            - image/tiff
          description: >-
            MIME-Typ. Er muss dem tatsächlichen Dateiformat entsprechen;
            generische Typen wie `application/octet-stream` werden abgelehnt
        resolution:
          type: string
          enum:
            - low
            - medium
            - high
            - ultra_high
          description: Optional. Medienauflösung; steuert Token-Verbrauch und Detailgrad
    AudioContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - audio
        data:
          type: string
          contentEncoding: base64
          description: >-
            Base64-codierte Dateibytes (eingebettete Daten insgesamt bis zu 100
            MB pro Anfrage). Geben Sie entweder `data` oder `uri` an
        uri:
          type: string
          format: uri
          description: >-
            Öffentliche oder signierte HTTPS-URL der Datei (bis zu 15 MB). URIs
            der Google Files API, `gs://`-URIs, `files/...`-Namen und
            YouTube-URLs werden nicht unterstützt. Geben Sie entweder `data`
            oder `uri` an
        mime_type:
          type: string
          enum:
            - audio/wav
            - audio/mp3
            - audio/mpeg
            - audio/aiff
            - audio/aac
            - audio/ogg
            - audio/flac
            - audio/m4a
            - audio/opus
            - audio/webm
            - audio/l16
            - audio/alaw
            - audio/mulaw
          description: >-
            MIME-Typ. Er muss dem tatsächlichen Dateiformat entsprechen;
            generische Typen wie `application/octet-stream` werden abgelehnt
    VideoContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - video
        data:
          type: string
          contentEncoding: base64
          description: >-
            Base64-codierte Dateibytes (eingebettete Daten insgesamt bis zu 100
            MB pro Anfrage). Geben Sie entweder `data` oder `uri` an
        uri:
          type: string
          format: uri
          description: >-
            Öffentliche oder signierte HTTPS-URL der Datei (bis zu 15 MB). URIs
            der Google Files API, `gs://`-URIs, `files/...`-Namen und
            YouTube-URLs werden nicht unterstützt. Geben Sie entweder `data`
            oder `uri` an
        mime_type:
          type: string
          enum:
            - video/mp4
            - video/mpeg
            - video/mov
            - video/avi
            - video/webm
            - video/wmv
            - video/x-flv
            - video/3gpp
          description: >-
            MIME-Typ. Er muss dem tatsächlichen Dateiformat entsprechen;
            generische Typen wie `application/octet-stream` werden abgelehnt
        resolution:
          type: string
          enum:
            - low
            - medium
            - high
          description: >-
            Optional. Medienauflösung; steuert Token-Verbrauch und Detailgrad.
            `ultra_high` gilt nur für Bilder
    DocumentContent:
      type: object
      required:
        - type
        - mime_type
      properties:
        type:
          type: string
          enum:
            - document
        data:
          type: string
          contentEncoding: base64
          description: >-
            Base64-codierte PDF-Bytes (bis zu 50 MB). Geben Sie entweder `data`
            oder `uri` an
        uri:
          type: string
          format: uri
          description: >-
            Öffentliche oder signierte HTTPS-URL der Datei (bis zu 15 MB). URIs
            der Google Files API, `gs://`-URIs, `files/...`-Namen und
            YouTube-URLs werden nicht unterstützt. Geben Sie entweder `data`
            oder `uri` an
        mime_type:
          type: string
          enum:
            - application/pdf
          description: >-
            MIME-Typ. Er muss dem tatsächlichen Dateiformat entsprechen;
            generische Typen wie `application/octet-stream` werden abgelehnt
    QuestionInstructions:
      description: >-
        Die Frage, die anhand von `input` bewertet wird, vollständig
        ausformuliert. Nur Text: ein String, ein Textblock oder ein Array von
        Textblöcken
      oneOf:
        - type: string
          minLength: 1
        - $ref: '#/components/schemas/TextContent'
        - type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TextContent'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authentifizieren Sie sich mit Ihrem EvoLink API Key als Bearer-Token.


        **API Key erhalten:**


        Besuchen Sie die
        [API-Key-Verwaltung](https://evolink.ai/dashboard/keys).


        **Anfrageheader:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.