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

# Submit Feedback

> Tell us when the API got something wrong. Costs no credits.

Use this endpoint when a result was wrong, incomplete, slow, failed, or did not match the documentation. It is meant to be called by agents as much as by people: when your pipeline detects a bad result, report it with the `id` of the object it came from and we can trace it back to the exact request.

Submitting feedback is free, and it works even when your team's credits are exhausted.

## What to send

| Field | Required | Notes |
| - | - | - |
| `category` | yes | One of `output_quality`, `reliability`, `performance`, `documentation`, `api_usability`, `feature_gap`, `other` |
| `note` | yes | What went wrong and what you expected instead, up to 4,000 characters |
| `issues` | no | Up to 20 `snake_case` symptom codes, such as `missing_content` or `timeout`. The documented codes are listed in the schema; any other code of the same shape is accepted |
| `affected_endpoint` | no | `METHOD /path`, for example `POST /v1/scrapes` |
| `related_object_id` | no | The `id` of the scrape, batch, crawl, answer, or other object the feedback is about, or the `error_…` id when the call failed |
| `url` | no | The page the feedback is about, such as the URL that was scraped |

## Example

```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": "The markdown drops the pricing comparison table; expected all 4 rows.",
    "affected_endpoint": "POST /v1/scrapes",
    "related_object_id": "scrape_abc1234567",
    "url": "https://example.com/pricing"
  }'
```

The response is the stored `feedback` object with its `id` and `created_at`. There is no list or get endpoint yet; feedback is read on our side.


## OpenAPI

````yaml openapi/feedbacks.json POST /v1/feedbacks
openapi: 3.0.3
info:
  title: Feedbacks API
  version: 1.0.0
  description: >-
    Report an issue with the Olostep API: wrong or incomplete output, a failure,
    a documentation mismatch, or a missing capability. Costs no credits.
servers:
  - url: https://api.olostep.com
security:
  - Authorization: []
paths:
  /v1/feedbacks:
    post:
      summary: Submit feedback
      description: >-
        Report an issue with the API. Include the id of the object the feedback
        is about when you have it. Costs no credits.
      operationId: createFeedback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedbackCreateRequest'
      responses:
        '200':
          description: The stored feedback.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Feedback'
        '400':
          description: The body is invalid.
        '401':
          description: The API key is missing or invalid.
components:
  schemas:
    FeedbackCreateRequest:
      type: object
      required:
        - category
        - note
      properties:
        category:
          type: string
          enum:
            - output_quality
            - reliability
            - performance
            - documentation
            - api_usability
            - feature_gap
            - other
          description: The broad reason for the feedback.
        note:
          type: string
          minLength: 1
          maxLength: 4000
          description: What went wrong and what you expected instead.
          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: >-
            Specific symptoms, as lowercase snake_case codes. Documented codes:
            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. Any other code of the same shape is accepted.
          example:
            - missing_content
            - broken_formatting
        affected_endpoint:
          type: string
          minLength: 1
          maxLength: 200
          description: >-
            The endpoint the feedback is about, as `METHOD /path` with the
            canonical plural path.
          example: POST /v1/scrapes
        related_object_id:
          type: string
          minLength: 1
          maxLength: 128
          description: >-
            The id of the object the API returned that the feedback is about: a
            scrape_…, batch_… or similar resource id, or the id of the error
            object (error_…) when the call failed.
          example: scrape_abc1234567
        url:
          type: string
          format: uri
          maxLength: 2048
          description: The page the feedback is about, such as the URL that was scraped.
          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: >-
        Bearer authentication header of the form Bearer <token>, where <token>
        is your auth token.

````

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