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

# Soumettre un retour d’information

> Indiquez-nous quand l’API a fait une erreur. Ne coûte aucun crédit.

Utilisez cet endpoint lorsqu'un résultat est incorrect, incomplet, lent, échoué, ou ne correspond pas à la documentation. Il est destiné à être appelé autant par des agents que par des personnes : lorsque votre pipeline détecte un mauvais résultat, signalez-le avec l'`id` de l'objet d'où il provient et nous pourrons le retracer jusqu'à la requête exacte.

Soumettre un retour d’information est gratuit, et cela fonctionne même lorsque les crédits de votre équipe sont épuisés.

## Que faut-il envoyer

| Champ | Requis | Remarques |
| - | - | - |
| `category` | oui | Un parmi `output_quality`, `reliability`, `performance`, `documentation`, `api_usability`, `feature_gap`, `other` |
| `note` | oui | Ce qui s'est mal passé et ce que vous attendiez à la place, jusqu'à 4 000 caractères |
| `issues` | non | Jusqu'à 20 codes de symptôme en `snake_case`, tels que `missing_content` ou `timeout`. Les codes documentés sont listés dans le schéma ; tout autre code de la même forme est accepté |
| `affected_endpoint` | non | `METHOD /path`, par exemple `POST /v1/scrapes` |
| `related_object_id` | non | L'`id` du scrape, batch, crawl, réponse, ou autre objet auquel le retour d’information se rapporte, ou l'`error_…` id lorsque l'appel a échoué |
| `url` | non | La page à laquelle le retour d’information se rapporte, comme l'URL qui a été scrappée |

## Exemple

```bash cURL theme={null}
curl -X POST https://api.olostep.com/v1/feedbacks \
  -H "Authorization: Bearer <your_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "output_quality",
    "issues": ["missing_content", "broken_formatting"],
    "note": "Le markdown omet le tableau de comparaison des prix ; attendu les 4 lignes.",
    "affected_endpoint": "POST /v1/scrapes",
    "related_object_id": "scrape_abc1234567",
    "url": "https://example.com/pricing"
  }'
```

La réponse est l'objet `feedback` stocké avec son `id` et `created_at`. Il n'y a pas encore d'endpoint pour lister ou obtenir ; le retour d’information est lu de notre côté.


## OpenAPI

````yaml fr/openapi/feedbacks.json POST /v1/feedbacks
openapi: 3.0.3
info:
  title: API de Feedbacks
  version: 1.0.0
  description: >-
    Signale un problème avec l'API Olostep : sortie incorrecte ou incomplète,
    une défaillance, une incohérence dans la documentation, ou une capacité
    manquante. Aucun crédit requis.
servers:
  - url: https://api.olostep.com
security:
  - Authorization: []
paths:
  /v1/feedbacks:
    post:
      summary: Soumettre un feedback
      description: >-
        Signale un problème avec l'API. Inclut l'id de l'objet concerné par le
        feedback lorsque tu l'as. Aucun crédit requis.
      operationId: createFeedback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedbackCreateRequest'
      responses:
        '200':
          description: Le feedback enregistré.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Feedback'
        '400':
          description: Le corps est invalide.
        '401':
          description: La clé API est manquante ou invalide.
components:
  schemas:
    FeedbackCreateRequest:
      type: object
      required:
        - category
        - note
      properties:
        category:
          type: string
          enum:
            - output_quality
            - reliability
            - performance
            - documentation
            - api_usability
            - feature_gap
            - other
          description: La raison principale du feedback.
        note:
          type: string
          minLength: 1
          maxLength: 4000
          description: Ce qui s'est mal passé et ce que tu attendais à la place.
          example: >-
            The markdown drops the pricing comparison table; expected all 4
            rows.
        issues:
          type: array
          maxItems: 20
          items:
            type: string
            pattern: ^[a-z0-9](?:[a-z0-9_]{0,78}[a-z0-9])?$
          description: >-
            Symptômes spécifiques, sous forme de codes en snake_case minuscules.
            Codes documentés : missing_content, incorrect_content,
            incomplete_content, broken_formatting, irrelevant_results,
            duplicate_results, stale_content, request_failed, timeout,
            slow_response, inconsistent_result, docs_mismatch, broken_example,
            confusing_schema, confusing_error, unsupported_website,
            unsupported_format. Tout autre code de la même forme est accepté.
          example:
            - missing_content
            - broken_formatting
        affected_endpoint:
          type: string
          minLength: 1
          maxLength: 200
          description: >-
            Le point de terminaison concerné par le feedback, sous la forme
            `METHOD /path` avec le chemin pluriel canonique.
          example: POST /v1/scrapes
        related_object_id:
          type: string
          minLength: 1
          maxLength: 128
          description: >-
            L'id de l'objet retourné par l'API auquel le feedback se réfère : un
            id de ressource scrape_…, batch_… ou similaire, ou l'id de l'objet
            d'erreur (error_…) lorsque l'appel a échoué.
          example: scrape_abc1234567
        url:
          type: string
          format: uri
          maxLength: 2048
          description: La page concernée par le feedback, comme l'URL qui a été scrappée.
          example: https://example.com/pricing
    Feedback:
      type: object
      required:
        - object
        - id
        - category
        - issues
        - note
        - created_at
      properties:
        object:
          type: string
          enum:
            - feedback
        id:
          type: string
          example: feedback_019e70f9-214a-74fc-a1ae-26fd3318be3e
        category:
          type: string
        issues:
          type: array
          items:
            type: string
        note:
          type: string
        affected_endpoint:
          type: string
        related_object_id:
          type: string
        url:
          type: string
        created_at:
          type: string
          format: date-time
          example: '2026-10-23T00:00:00.000Z'
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        En-tête d'authentification Bearer sous la forme Bearer <token>, où
        <token> est ton jeton d'authentification.

````

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