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

# Request deploy approval

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

Asks the owners and admins of the app's workspace to publish the app for you, with the visibility you want. Use it when your workspace's publishing policy doesn't let you [deploy the app](/api-reference/deploy-an-app) yourself.

Every active owner, and every admin allowed to publish, except you, gets an in-app notification and an email naming the app, the visibility you asked for, and your `message`. Base44 also records the request as pending until the app is published. The call doesn't publish anything or check whether you could have published the app yourself.

Repeating the request within 60 seconds notifies no one and returns `deduped` set to `true`. After that, the same request notifies the approvers again.

Requests are made on main only, so naming a branch in `branch_id` returns a 409.

This is limited to 5 requests per minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/request-deploy
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}/request-deploy:
    post:
      summary: Request deploy approval
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Asks the owners and admins of the app's workspace to publish the app for
        you, with the visibility you want. Use it when your workspace's
        publishing policy doesn't let you [deploy the
        app](/api-reference/deploy-an-app) yourself.


        Every active owner, and every admin allowed to publish, except you, gets
        an in-app notification and an email naming the app, the visibility you
        asked for, and your `message`. Base44 also records the request as
        pending until the app is published. The call doesn't publish anything or
        check whether you could have published the app yourself.


        Repeating the request within 60 seconds notifies no one and returns
        `deduped` set to `true`. After that, the same request notifies the
        approvers again.


        Requests are made on main only, so naming a branch in `branch_id`
        returns a 409.


        This is limited to 5 requests per minute per app for each workspace's
        personal API keys, so every key in a workspace shares one allowance.
        Some workspaces have a different limit.


        <Note>This endpoint accepts a personal API key belonging to a user with
        editor access to the app. A read-only key is refused, and workspace API
        keys are not accepted.</Note>
      operationId: request_deploy_api_apps__app_id__request_deploy_post
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app you want published.
            title: App Id
          description: ID of the app you want published.
          example: 6820f3a4e7b91d003c45a1f2
        - name: branch_id
          in: query
          required: false
          schema:
            type: string
            description: >-
              ID of the branch to work on, as returned by [List
              branches](/api-reference/list-branches). Omit it to work on the
              app's main branch.
            title: Branch Id
          description: >-
            ID of the branch to work on, as returned by [List
            branches](/api-reference/list-branches). Omit it to work on the
            app's main branch.
          example: 68f1a2b3c4d5e6f708192a3b
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestDeployRequest'
      responses:
        '200':
          description: The approvers were notified, or the request was a repeat.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployApprovalRequested'
        '400':
          description: This kind of app can't be published yet.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, the app is blocked, your
            API key is read-only, or you used a workspace API key.
        '404':
          description: App not found, or no branch you can see has this `branch_id`.
        '409':
          description: >-
            No one else in the app's workspace can approve the request, for
            example because you're its only owner, or `branch_id` names a branch
            (`extra_data.reason` is `operation_blocked_on_branch`).
        '422':
          description: >-
            `requested_visibility` is missing or isn't one of the four values,
            or `message` is longer than 1000 characters.
        '429':
          description: >-
            Rate limit exceeded. The base limit is 5 requests per minute per
            app. Wait the number of seconds in the `Retry-After` header before
            you retry.
      security:
        - PersonalAccessTokenAuth:
            - full_access
components:
  schemas:
    RequestDeployRequest:
      properties:
        requested_visibility:
          type: string
          enum:
            - private_with_login
            - workspace_with_login
            - public_with_login
            - public_without_login
          title: Requested Visibility
          description: >-
            Who you're asking to be able to open the published app. The values
            are the ones `public_settings` takes in [Update
            app](/api-reference/update-app).
          example: public_with_login
        message:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Message
          description: >-
            A note to the approvers, up to 1000 characters. It's included in the
            notification and the email.
          example: Ready for the client demo on Friday.
      type: object
      required:
        - requested_visibility
      title: RequestDeployRequest
    DeployApprovalRequested:
      properties:
        recipients_notified:
          type: integer
          title: Recipients Notified
          description: >-
            Number of workspace owners and admins sent the request. `0` when
            `deduped` is `true`.
          example: 2
        deduped:
          type: boolean
          title: Deduped
          description: >-
            Whether the call was a repeat of your request from the last 60
            seconds, so no one was notified again.
          example: false
      type: object
      required:
        - recipients_notified
        - deduped
      title: DeployApprovalRequested
      description: The approvers Base44 notified.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

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