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

# Update the guided setup of an app

> Changes the fields given and keeps the rest; an empty body changes nothing. Skipped steps are stored in step order. completed stamps completedAt once and keeps that time when completed again; any other status clears it. Answers 400 for an unknown status or step, a repeated step or market, a market that is not a lowercase two letter code, no market or more than 50, and 404 for a competitor or an unknown app.



## OpenAPI

````yaml /api-reference/openapi.json patch /apps/{id}/setup
openapi: 3.0.0
info:
  title: asobeast API
  description: >-
    Self hosted ASO toolkit API.


    A metered instance carries RateLimit-Limit, RateLimit-Remaining and
    RateLimit-Reset on every response, for the tightest limit the request
    touched. A self hosted instance has no request rate limits and sends no such
    header. Limits are per workspace, so minting more tokens does not buy more
    capacity, and they are sized per plan across three classes: read for stored
    data, write for configuration changes and store for the endpoints that reach
    the App Store or Google Play.


    A 429 carries Retry-After and a rateLimit object naming the window that
    closed, or an aiAllowance object when the workspace has spent the AI calls
    its plan includes this month. A 403 with a quota object means a plan
    capacity limit such as apps or tracked keyword markets, which is a different
    problem from a rate limit. A 402 with an entitlement object means the
    workspace needs a plan.


    Positions are 1-based and null means checked but not found within the
    captured depth, never zero. Daily granularity uses UTC dates.
  version: 1.10.0
  contact: {}
servers:
  - url: http://localhost:3000/api/backend
    description: Web origin proxy
  - url: http://localhost:4000
    description: Direct API
security:
  - personalApiToken: []
tags: []
paths:
  /apps/{id}/setup:
    patch:
      tags:
        - apps
      summary: Update the guided setup of an app
      description: >-
        Changes the fields given and keeps the rest; an empty body changes
        nothing. Skipped steps are stored in step order. completed stamps
        completedAt once and keeps that time when completed again; any other
        status clears it. Answers 400 for an unknown status or step, a repeated
        step or market, a market that is not a lowercase two letter code, no
        market or more than 50, and 404 for a competitor or an unknown app.
      operationId: AppSetupController_update
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAppSetupDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    UpdateAppSetupDto:
      type: object
      properties:
        status:
          enum:
            - not_started
            - in_progress
            - completed
            - dismissed
          type: string
          example: in_progress
        skipped:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
              - competitors
              - keywords
              - countries
          example:
            - competitors
        countriesReviewed:
          type: boolean
          example: true
        selectedMarkets:
          uniqueItems: true
          minItems: 1
          example:
            - us
            - de
          maxItems: 50
          type: array
          items:
            type: string
  securitySchemes:
    personalApiToken:
      scheme: bearer
      bearerFormat: asob
      type: http

````

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