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

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Reanalyze test run

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Writes a new report for a finished test run from the steps the run already recorded. The browser doesn't run again. The new report replaces the old one, and the run's `goal_accomplished` follows the new verdict.

It also finishes a run stuck in `analyzing` whose steps were saved, and that run then ends normally.

This makes an AI call and costs credits, which are recorded against the user who started the run. It runs while you wait, usually for under a minute, and returns the new report. If it fails, the old report stays. The call is refused when the workspace is out of credits.

This is limited to 20 requests per minute per caller for each app. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. Read-only keys and workspace API keys are refused.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/testing-agent/analysis/{execution_id}/reanalyze
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/testing-agent/analysis/{execution_id}/reanalyze:
    post:
      summary: Reanalyze test run
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Writes a new report for a finished test run from the steps the run
        already recorded. The browser doesn't run again. The new report replaces
        the old one, and the run's `goal_accomplished` follows the new verdict.


        It also finishes a run stuck in `analyzing` whose steps were saved, and
        that run then ends normally.


        This makes an AI call and costs credits, which are recorded against the
        user who started the run. It runs while you wait, usually for under a
        minute, and returns the new report. If it fails, the old report stays.
        The call is refused when the workspace is out of credits.


        This is limited to 20 requests per minute per caller for each app. Some
        workspaces have a different limit.


        <Note>This endpoint accepts a personal API key belonging to a user with
        editor access to the app. Read-only keys and workspace API keys are
        refused.</Note>
      operationId: >-
        reanalyze_execution_api_apps__app_id__testing_agent_analysis__execution_id__reanalyze_post
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        - name: execution_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the run to reanalyze.
            title: Execution Id
          description: ID of the run to reanalyze.
          example: 68a1c9b7f0b3d9001a7e5d04
      responses:
        '200':
          description: The new report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestRunReport'
        '400':
          description: The run recorded no steps, or the workspace is out of credits.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, the app is blocked, or
            your API key is read-only or a workspace API key.
        '404':
          description: App or run not found.
        '409':
          description: >-
            The run is still `pending`, `running` or `analyzing`, another
            reanalysis of it is already in progress, or your workspace requires
            an unlocked SSO session.
        '429':
          description: Rate limit exceeded.
components:
  schemas:
    TestRunReport:
      properties:
        id:
          type: string
          title: Id
          description: ID of the report.
          example: 68a1ca02f0b3d9001a7e5d11
        app_id:
          type: string
          title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        flow_id:
          type: string
          title: Flow Id
          description: ID of the test.
          example: 68a1c2e4f0b3d9001a7e5c21
        execution_id:
          type: string
          title: Execution Id
          description: ID of the run.
          example: 68a1c9b7f0b3d9001a7e5d04
        flow_goal:
          type: string
          title: Flow Goal
          description: The test's goal when the run started.
          example: >-
            Sign up, create a project called Launch, and check that it appears
            on the dashboard.
        status:
          type: string
          enum:
            - goal_accomplished
            - goal_not_accomplished
            - failed
            - timeout
          title: Status
          description: >-
            The verdict. `failed` and `timeout` mean the report couldn't reach
            one, and `summary` says what happened.
          example: goal_accomplished
        summary:
          type: string
          title: Summary
          description: Plain-language summary of the run.
          example: >-
            The project was created and listed on the dashboard, but only after
            a reload.
        issues:
          items:
            $ref: '#/components/schemas/TestRunIssue'
          type: array
          title: Issues
          description: Problems found during the run. Empty when there were none.
          example:
            - category: functionality
              related_step_number: 3
              severity: warning
              summary: >-
                After saving, the dashboard still shows no projects until the
                page is reloaded.
              title: Project doesn't appear after creation
        created_date:
          type: string
          title: Created Date
          description: When the report was written, as an ISO 8601 UTC timestamp.
          example: '2026-09-28T10:18:39+00:00'
        updated_date:
          type: string
          title: Updated Date
          description: When the report last changed, as an ISO 8601 UTC timestamp.
          example: '2026-09-28T10:18:39+00:00'
      type: object
      required:
        - id
        - app_id
        - flow_id
        - execution_id
        - flow_goal
        - status
        - summary
        - issues
        - created_date
        - updated_date
      title: TestRunReport
      description: The report for a finished run.
    TestRunIssue:
      properties:
        title:
          type: string
          title: Title
          description: Short name of the problem.
          example: Project doesn't appear after creation
        summary:
          type: string
          title: Summary
          description: What went wrong, as seen from the app's user.
          example: >-
            After saving, the dashboard still shows no projects until the page
            is reloaded.
        severity:
          type: string
          title: Severity
          description: How serious the problem is. Usually `critical`, `warning` or `info`.
          example: warning
        category:
          type: string
          title: Category
          description: >-
            Kind of problem. Usually `ui_interaction`, `form_validation`,
            `navigation`, `content`, `performance`, `accessibility` or
            `functionality`. Base44 also adds advisory issues with
            `seed_data_gap`, `auth_required` or `permission_gap` when the test
            data, sign-in, or the test's role got in the way. Those describe the
            test setup, not a bug in your app.
          example: functionality
        related_step_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Related Step Number
          description: >-
            Step in the run's `actions` where the problem showed, counting from
            1, or `null`.
          example: 3
      type: object
      required:
        - title
        - summary
        - severity
        - category
        - related_step_number
      title: TestRunIssue
      description: A problem the testing agent found during a run.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````

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