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

# Report a problem

> Tell the Pomerado team about friction Pomerado caused, or something that worked notably well.

> [accordion] Details
>
> * Report each problem once, when it happens: something slow, an unexpected error, a confusing description or answer, a wrong result, or a design you had to work around. Not your own input mistakes, or website problems Pomerado explained.
>
> * To change one tool, such as adding a filter, input or output, use POST /v1/tools/\{id}/changes instead.
>
> * Never include passwords, codes, tokens, card numbers, personal details, page content or your users' data.
>
> * Pomerado attaches who sent the report and from where. It links the related job, tool and integration only when you can read them.
>
> * The same report from you within a day counts again (status merged). Your account can send 50 reports an hour and 200 a day, across its members and clients; past that it answers report\_limit\_reached, and you carry on without retrying.
>
> * Reports are kept 90 days and only help the Pomerado team improve Pomerado. They are not a support channel: if it is urgent, the user can email [founders@pomerado.ai](mailto:founders@pomerado.ai) (the receipt's message also gives the Discord invite). Ask the user before sending any email; never email on your own.
>
> * **Callers:** an API key, an integration's API key, an MCP OAuth token or a Dashboard session.
>
> * **Permission:** any signed-in member, for their own records.
>
> * **Effect:** Creates or changes something.
>
> * **Errors:** [`report_limit_reached`](https://docs.pomerado.ai/errors#report_limit_reached), [`sign_in_required`](https://docs.pomerado.ai/errors#sign_in_required), and the [errors any request can get](https://docs.pomerado.ai/errors.md).


## OpenAPI

````yaml /api-reference/openapi.json post /v1/issue-reports
openapi: 3.1.0
info:
  title: Pomerado API
  version: '1'
  description: >-
    Run and build website tools, follow their jobs, and manage logins, API keys
    and webhooks. Authenticate with a Pomerado API key (pom_…), an MCP OAuth
    token or a Dashboard session as a Bearer token.
servers:
  - url: https://api.pomerado.ai
security: []
tags:
  - name: account
    x-group: Account
  - name: api_keys
    x-group: API keys
  - name: connected_apps
    x-group: Connected apps
  - name: usage
    x-group: Usage
  - name: quota
    x-group: Quota
  - name: billing
    x-group: Billing
  - name: integrations
    x-group: Integrations
  - name: connect
    x-group: Connect
  - name: code
    x-group: Code
  - name: logins
    x-group: Saved logins
  - name: two_factor
    x-group: 2FA
  - name: login_access
    x-group: Login access
  - name: tools
    x-group: Tools
  - name: webhooks
    x-group: Webhooks
  - name: runs
    x-group: Runs
  - name: builds
    x-group: Builds
  - name: jobs
    x-group: Jobs
  - name: suggestions
    x-group: Suggestions
  - name: audit
    x-group: Audit
  - name: files
    x-group: Files
  - name: team
    x-group: Team
  - name: sso
    x-group: Single sign-on
  - name: issue_reports
    x-group: Problem reports
paths:
  /v1/issue-reports:
    post:
      tags:
        - issue_reports
      summary: Report a problem
      description: >-
        Tell the Pomerado team about friction Pomerado caused, or something that
        worked notably well.
      operationId: issue_reports.create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueReportCreateRequest'
      responses:
        '201':
          description: The stored report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueReportReceipt'
        '400':
          description: invalid_request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: sign_in_required, unauthorized, reauthentication_required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: moved_to_team
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: request_too_large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: report_limit_reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: internal_error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: temporarily_unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearer: []
components:
  schemas:
    IssueReportCreateRequest:
      type: object
      required:
        - summary
        - category
      properties:
        summary:
          type: string
          description: One sentence saying what happened, 10 to 200 characters.
          minLength: 10
          maxLength: 200
        category:
          type: string
          enum:
            - slow
            - error
            - confusing
            - workaround
            - wrong_result
            - missing_capability
            - worked_well
            - other
          description: >-
            slow: a tool or job took too long. error: an error you didn't
            expect, or one that didn't say how to fix it. confusing: a
            description, input or answer that was unclear. workaround: you had
            to work around a design, with extra calls, guessing or retrying.
            wrong_result: a result was wrong. missing_capability: Pomerado can't
            do something you needed. worked_well: something worked notably well.
            other: anything else.
        task_outcome:
          type: string
          enum:
            - completed
            - completed_with_workaround
            - partially_completed
            - blocked
          description: >-
            How your task ended: completed, completed_with_workaround,
            partially_completed or blocked.
        details:
          type: string
          description: >-
            What you tried and what happened, up to 4,000 characters, quoting
            exact tool names, error codes and parameter names.
          maxLength: 4000
        suggested_improvement:
          type: string
          description: The one change that would have helped, up to 1,000 characters.
          maxLength: 1000
        waited_seconds:
          $ref: '#/components/schemas/Int'
          description: 'For slow: about how many seconds it took, 0 to 86,400.'
          minimum: 0
          maximum: 86400
        related:
          type: object
          required: []
          properties:
            job_id:
              allOf:
                - $ref: '#/components/schemas/job_id'
              description: The job_id of the run or build the report is about.
            tool_id:
              allOf:
                - $ref: '#/components/schemas/tool_id'
              description: The tool_id of the website tool the report is about.
            integration_id:
              allOf:
                - $ref: '#/components/schemas/integration_id'
              description: The integration the report is about.
            tool:
              type: string
              description: >-
                The name of the Pomerado tool or API operation the report is
                about, such as get_job.
              pattern: ^[A-Za-z0-9_.:/-]{1,100}$
            request_id:
              type: string
              description: The request_id an error answered with, when it gave one.
              pattern: ^[A-Za-z0-9_.:-]{1,100}$
            page:
              type: string
              description: >-
                The page or screen the problem happened on, such as a Dashboard
                path.
              pattern: ^\/[\x20-\x7e]{0,299}$
          additionalProperties: false
          description: What the report is about. Pomerado links only the IDs you can read.
      additionalProperties: false
    IssueReportReceipt:
      type: object
      required:
        - report_id
        - status
        - severity
        - linked
        - message
      properties:
        report_id:
          type: string
          description: 'The report''s ID: rpt_ and 32 hex digits'
        status:
          type: string
          enum:
            - recorded
            - merged
          description: >-
            recorded: a new report. merged: you sent the same report within the
            last day, so it counted again
        severity:
          type: string
          enum:
            - high
            - medium
            - low
            - none
          description: >-
            Derived by Pomerado: high for a blocked task; medium for a partial
            one, a workaround or an error on a job that failed on Pomerado's
            side; none for worked_well; otherwise low
        linked:
          type: object
          required:
            - job_id
            - tool_id
            - integration_id
          properties:
            job_id:
              anyOf:
                - type: string
                - type: 'null'
              description: The related job, when you can read it
            tool_id:
              anyOf:
                - type: string
                - type: 'null'
              description: The related tool, when you can read it
            integration_id:
              anyOf:
                - type: string
                - type: 'null'
              description: The related integration, when you can read it
          additionalProperties: false
          description: The related IDs Pomerado kept; one you can't read is left out
        message:
          type: string
          description: What to do next
      additionalProperties: false
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - retryable
            - docs_url
          properties:
            code:
              type: string
            message:
              type: string
            retryable:
              type: boolean
            docs_url:
              type: string
            details:
              type: object
              required: []
              properties: {}
              additionalProperties:
                $id: /schemas/unknown
          additionalProperties: false
      additionalProperties: false
    Int:
      type: integer
      description: an integer
    job_id:
      type: string
      description: 'a job ID: job_ and 32 lowercase hex digits'
      examples:
        - job_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190
    tool_id:
      type: string
      description: 'a tool ID: tool_ and 32 lowercase hex digits'
      examples:
        - tool_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190
    integration_id:
      type: string
      description: 'an integration ID: int_ and 32 lowercase hex digits'
      examples:
        - int_0f8e2d1c4b3a49e8a7f6e5d4c3b2a190
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````

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