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

# Send feedback

> Send Finta feedback: a bug, unclear docs, an error that did not say how to fix it, or a feature you needed. Set `operation` to the route it is about, or leave it out for general product feedback. Works with any API key or OAuth token, without Storage Mode or an active subscription. Limited to 20 reports an hour per user, separate from the API rate limits: feedback calls do not count toward them and are not blocked by them. Every error `message` ends with a pointer here and its `requestId`; send that `requestId` with the report.



## OpenAPI

````yaml /api/v2/openapi.json post /feedback
openapi: 3.0.3
info:
  title: Finta API v2
  version: 2.0.0
  description: >-
    DB-backed Finta API for users with storage mode enabled. Requires an API key
    or an OAuth access token, and an active subscription or free trial.


    ## Rate limits


    Rate limits are enforced per user based on subscription plan, separately
    from MCP. The free trial gets Standard limits, or Pro limits if you're
    trialing Pro:


    | Plan | Per minute | Per day |

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

    | Standard | 20 requests | 500 requests |

    | Pro | 60 requests | 2,000 requests |


    When a limit is exceeded, the API returns HTTP 429 with `error.code`
    `RATE_LIMITED` and a human-readable `message`. A `Retry-After` response
    header is included with the number of seconds until the window resets.
servers:
  - url: https://api.finta.io/v2
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Me
    description: Authenticated user
  - name: Feedback
    description: Bug reports, unclear docs, confusing errors and feature requests
  - name: Health
    description: Service health
  - name: Bank Connections
    description: Bank connection resources
  - name: Accounts
    description: Account and balance history resources
  - name: Investments
    description: Securities, holdings, and investment transaction resources
  - name: Transactions
    description: Transaction resources
  - name: Categories
    description: Transaction category resources
  - name: Category Groups
    description: Category group resources
  - name: Rules
    description: Transaction rule resources
  - name: Budgets
    description: Budget plans, budgets, and budget status
paths:
  /feedback:
    post:
      tags:
        - Feedback
      summary: Send feedback
      description: >-
        Send Finta feedback: a bug, unclear docs, an error that did not say how
        to fix it, or a feature you needed. Set `operation` to the route it is
        about, or leave it out for general product feedback. Works with any API
        key or OAuth token, without Storage Mode or an active subscription.
        Limited to 20 reports an hour per user, separate from the API rate
        limits: feedback calls do not count toward them and are not blocked by
        them. Every error `message` ends with a pointer here and its
        `requestId`; send that `requestId` with the report.
      operationId: createFeedbackV2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedbackCreateBody'
      responses:
        '201':
          description: Feedback received
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedbackReceipt'
        '400':
          description: Invalid request body. `message` lists each invalid field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
        '429':
          $ref: '#/components/responses/RateLimitedResponse'
components:
  schemas:
    FeedbackCreateBody:
      type: object
      required:
        - kind
        - attempted
        - actual
      properties:
        kind:
          type: string
          enum:
            - bug
            - docs_unclear
            - feature_request
            - confusing_error
            - other
        operation:
          type: string
          minLength: 1
          maxLength: 200
          description: >-
            The route the feedback is about, such as `POST /v2/transactions`.
            Leave it out for general product feedback.
          example: POST /v2/transactions
        attempted:
          type: string
          minLength: 1
          maxLength: 10000
          description: What you were trying to do
        actual:
          type: string
          minLength: 1
          maxLength: 10000
          description: What happened instead, including the error text
        expected:
          type: string
          minLength: 1
          maxLength: 10000
          description: What you expected to happen
        requestId:
          type: string
          minLength: 1
          maxLength: 200
          description: The `requestId` from the error response
        client:
          type: string
          minLength: 1
          maxLength: 200
          description: The agent or tool sending the report
          example: Claude Code
    FeedbackReceipt:
      type: object
      required:
        - id
        - status
        - createdAt
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - received
        createdAt:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: STORAGE_MODE_REQUIRED
            message:
              type: string
    UnauthorizedResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          example: Missing or invalid Authorization header
  responses:
    RateLimitedResponse:
      description: Rate limit exceeded
      headers:
        Retry-After:
          description: Seconds until the rate-limit window resets
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: RATE_LIMITED
              message: Per-minute rate limit exceeded (standard plan)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        A Finta API key from API settings, or an OAuth access token issued to an
        authorized app. Send either as `Authorization: Bearer <token>`.

````

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