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

# Feedback zu einem Rechtstipp abgeben

> Speichert eine Rückmeldung. Für Rechtstipps: `content_type: "rechtstipp"`
und `target_id` = die **`id`** aus der Erstellen-Response setzen. Damit
verknüpft das Admin-Board das Feedback mit dem gespeicherten Tipp und
zeigt dessen Thema (LLM-Input) und Original-Text (LLM-Output) — du musst
also **nichts** vom Tipp mitsenden.

`session_id` ist optional und defaultet serverseitig auf `target_id` —
für Rechtstipps genügt also die `id`.

**Identität:** Reichst du das WP-Token des Anwalts als Bearer durch, wird
die Anwalts-Identität automatisch aufgelöst. Mit dem Service-Key gib die
Identität im Body an (`user_name`/`user_email`). Die Response signalisiert,
ob gespeichert wurde (kein stiller Verlust).




## OpenAPI

````yaml /openapi.yaml post /feedback
openapi: 3.1.0
info:
  title: LexGPT Partner API
  version: 2.0.0
  description: >
    Öffentliche API für Partner-Integrationen. Kern-Funktionen:


    - **Rechtstipp erstellen & verwalten** — Thema rein, recherchierter
      SEO-Artikel mit verlinkten Paragraphen raus. Jeder Tipp wird gespeichert
      und bekommt eine `id` (dient beim Feedback als `target_id`).
    - **Feedback** — Rückmeldung zu einem Rechtstipp, über seine `id` verknüpft.


    Diese Doku beschreibt nur die öffentliche Partner-Fläche. Interne Endpunkte

    (Recherche-Chat, Admin) sind bewusst nicht Teil des Vertrags.


    **Auth:** Der Tipp-Lebenszyklus (`/rechtstipps`) läuft pro eingeloggtem

    Anwalt und erfordert dessen **finditoo-WP-JWT** — ein reiner Service-Key
    wird

    hier mit `403` abgewiesen. `/feedback` und `/rechtstipp/options` akzeptieren

    zusätzlich einen Service-Key.


    Verfügbare Länder: **AT** und **CH**. `DE` ist auf der Roadmap

    (Anfragen liefern bis dahin `400`).
servers:
  - url: https://dashboard.lex-gpt.ai/api
    description: Produktion
security:
  - bearerAuth: []
tags:
  - name: Rechtstipp
    description: Erstellen & verwalten (pro Anwalt gespeichert)
  - name: Feedback
    description: Rückmeldungen
paths:
  /feedback:
    post:
      tags:
        - Feedback
      summary: Feedback zu einem Rechtstipp abgeben
      description: >
        Speichert eine Rückmeldung. Für Rechtstipps: `content_type:
        "rechtstipp"`

        und `target_id` = die **`id`** aus der Erstellen-Response setzen. Damit

        verknüpft das Admin-Board das Feedback mit dem gespeicherten Tipp und

        zeigt dessen Thema (LLM-Input) und Original-Text (LLM-Output) — du musst

        also **nichts** vom Tipp mitsenden.


        `session_id` ist optional und defaultet serverseitig auf `target_id` —

        für Rechtstipps genügt also die `id`.


        **Identität:** Reichst du das WP-Token des Anwalts als Bearer durch,
        wird

        die Anwalts-Identität automatisch aufgelöst. Mit dem Service-Key gib die

        Identität im Body an (`user_name`/`user_email`). Die Response
        signalisiert,

        ob gespeichert wurde (kein stiller Verlust).
      operationId: submitFeedback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedbackRequest'
            examples:
              rechtstipp_wpjwt:
                summary: Rechtstipp-Feedback (target_id = die id aus /rechtstipps)
                value:
                  content_type: rechtstipp
                  target_id: 3f1c2b4a-5d6e-7089-a1b2-c3d4e5f60718
                  feedback: red
                  comment: § 1120 ABGB fehlt
      responses:
        '200':
          description: Ergebnis (gespeichert oder übersprungen)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedbackResponse'
        '401':
          description: Fehlende/ungültige Authentifizierung
components:
  schemas:
    FeedbackRequest:
      type: object
      required:
        - feedback
      properties:
        target_id:
          type: string
          description: >
            Die **`id`** des bewerteten Rechtstipps (aus der
            Erstellen-Response).

            Verknüpft das Feedback eindeutig mit dem gespeicherten Tipp.
        content_type:
          type: string
          default: ask
          description: '`rechtstipp` (bzw. `blog`) setzen, sonst Default `ask`.'
        feedback:
          type: string
          enum:
            - green
            - yellow
            - red
            - positive
            - negative
          description: |
            Ampel `green`/`yellow`/`red` (kanonisch). `positive`/`negative`
            werden gemappt (positive→green, negative→red).
        session_id:
          type: string
          nullable: true
          description: |
            Optionale Gruppierungs-ID. Fehlt sie, defaultet der Server auf
            `target_id` — für Rechtstipps also nicht nötig.
        target_title:
          type: string
          nullable: true
          description: >-
            Optional; nur als Fallback-Anzeige, wenn kein `target_id`-Join
            greift.
        comment:
          type: string
          nullable: true
        user_name:
          type: string
          nullable: true
          description: Nur nötig ohne WP-JWT (mit WP-JWT automatisch aus dem Token).
        user_email:
          type: string
          nullable: true
    FeedbackResponse:
      type: object
      properties:
        stored:
          type: boolean
          description: true = gespeichert. Kein stiller Drop mehr.
        reason:
          type: string
          nullable: true
          description: Grund, falls übersprungen.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        `Authorization: Bearer <TOKEN>`. Für den Tipp-Lebenszyklus
        (`/rechtstipps`) ist `<TOKEN>` das **finditoo-WP-JWT des eingeloggten
        Anwalts** (ein Service-Key wird hier mit `403` abgewiesen). `/feedback`
        und `/rechtstipp/options` akzeptieren zusätzlich einen **Service-Key**
        (Maschine-zu-Maschine). Behandle Tokens als Secret; niemals in
        Chats/Slack teilen.

````