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

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

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.


        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
      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.
        '409':
          description: >-
            No one else in the app's workspace can approve the request, for
            example because you're its only owner.
        '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.
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>`.'

````

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