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

# Ajouter ou modifier une note

> Assigns or updates a rating (1-10) with an optional review. **Requires a secret key** (`sk_...`).

## Utilisation

Crée ou met à jour la note d’un film, d’une série, d’une saison ou d’un épisode selon le contexte fourni.

L’authentification est requise via `x-api-key` ou `Authorization: Bearer`.

## Exemple

```bash theme={null}
curl -X POST -H "x-api-key: $DEJAVU_API_KEY" -H "Content-Type: application/json" "https://dejavu.plus/api/v1/ratings"
```

## Paramètres et réponse

Les paramètres, schémas de requête et réponses sont définis par la spécification OpenAPI affichée sur cette page. Utilisez les champs du schéma pour construire la requête.

## Erreurs

Consultez **Responses** pour les codes et formats d’erreur propres à l’opération. Une réponse `401` indique une authentification absente ou invalide.

## Notes

N’exposez jamais une clé API `sk_` dans du code client ou un dépôt public.


## OpenAPI

````yaml POST /ratings
openapi: 3.1.0
info:
  title: dejaVu API V1
  description: >-
    API publique dejaVu V1 pour intégrer la collection, l’historique, les
    favoris, les notes, la watchlist, le scrobble, les listes, les chaînes, les
    connecteurs et les fonctions d’intégration.
  version: 1.0.0
servers:
  - url: https://dejavu.plus/api/v1
    description: Production
security:
  - ApiKeyHeader: []
  - BearerAuth: []
tags:
  - name: Collection
    description: Gérez votre collection personnelle de films et séries vus ou possédés.
  - name: History
    description: Consultez et gérez votre historique de visionnage.
  - name: Favorites
    description: Ajoutez et retirez des films et séries de vos favoris.
  - name: Ratings
    description: Notez et rédigez des avis sur vos films, séries, saisons et épisodes.
  - name: Watchlist
    description: Gérez votre liste de contenus à regarder.
  - name: Scrobble
    description: Suivez la progression de lecture en temps réel.
  - name: Up Next
    description: Obtenez les prochains épisodes à regarder pour les séries que vous suivez.
  - name: Lists
    description: Créez et gérez des listes personnalisées de films et séries.
  - name: Dashboard
    description: Expose la configuration du tableau de bord et le contenu des widgets.
  - name: User
    description: Informations de compte et statistiques.
  - name: Auth
    description: Authentification des appareils et gestion des jetons.
  - name: Channels
    description: Chaînes et univers accessibles à l’utilisateur.
  - name: Connectors
    description: Connecteurs utilisés par l’extension navigateur.
  - name: Kodi
    description: Import de bibliothèques Kodi.
  - name: Media
    description: Résolution et statut de médias.
paths:
  /ratings:
    post:
      tags:
        - Ratings
      summary: Ajouter ou modifier une note
      description: >-
        Attribue ou met à jour une note (1-10) avec avis optionnel. **Requiert
        une clé secrète** (`sk_...`).
      operationId: upsertRating
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RatingInput'
            example:
              type: movie
              id: 550
              rating: 9
      responses:
        '200':
          description: Note enregistrée
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    default: true
        '400':
          $ref: '#/components/responses/UnprocessableEntity'
          description: 'Requête invalide : paramètre ou corps de requête incorrect.'
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: Authentification absente, invalide ou clé API non autorisée.
        '403':
          $ref: '#/components/responses/Forbidden'
          description: Clé API valide mais permissions insuffisantes pour cette opération.
      security:
        - ApiKeyHeader: []
        - BearerAuth: []
components:
  schemas:
    RatingInput:
      type: object
      required:
        - type
        - rating
      properties:
        type:
          type: string
          enum:
            - movie
            - tv
            - season
            - episode
        id:
          type: integer
          description: >-
            ID TMDB du média ou de l'épisode. Pour une saison/épisode, le
            contexte de série peut être nécessaire.
        rating:
          type: integer
          minimum: 1
          maximum: 10
          description: Note de 1 à 10
        review:
          type: string
          description: Avis textuel (optionnel)
        tvShowId:
          type: integer
          description: Requis pour les saisons et épisodes
          nullable: true
        seasonNumber:
          type: integer
          description: Requis pour les saisons
          nullable: true
        episodeNumber:
          type: integer
          minimum: 1
          description: Numéro d'épisode, requis lorsque l'épisode est résolu par contexte.
      description: >-
        Ajoute ou met à jour une note de 1 à 10. Les saisons et épisodes
        utilisent tvShowId et leur contexte S/E.
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: Code d'erreur machine-readable
        message:
          type: string
          description: Description lisible de l'erreur
  responses:
    UnprocessableEntity:
      description: Données de requête invalides.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: VALIDATION_ERROR
            message: The field 'rating' must be between 1 and 10.
    Unauthorized:
      description: >-
        Authentification requise. Utilisez le header x-api-key ou Authorization:
        Bearer <key>.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: UNAUTHORIZED
            message: API key is missing or invalid.
    Forbidden:
      description: Accès refusé. Cette opération nécessite une **clé secrète** (`sk_...`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: FORBIDDEN
            message: A secret key (sk_...) is required for write operations.
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: Clé API dejaVu. pk_* = lecture seule ; sk_* = lecture et écriture.
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Clé API dejaVu envoyée dans Authorization: Bearer <key>.'

````