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

# Delete a backend function

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

Deletes one of the app's backend functions, along with the automations that run it.

The function is removed from the app's main line, but the published app keeps serving it until you deploy the app again with [Deploy an app](/api-reference/deploy-an-app). Its automations are deleted straight away, so they stop for the published app too. The function's file in the app's code is left alone. The delete is rejected while main is protected.

An app runs one deploy at a time, and a delete counts as one. If another deploy for the app is still running after a short wait, the call is rejected and is safe to retry. On some apps the remaining functions are redeployed as part of the delete, and the request waits for that to finish.

This is limited to 60 requests per minute per app for each workspace's API keys, so every personal and workspace API 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, or a workspace API key with the `apps:deploy` scope. A read-only key is refused.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json delete /api/apps/{app_id}/backend-functions/{function_name}
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}/backend-functions/{function_name}:
    delete:
      summary: Delete a backend function
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Deletes one of the app's backend functions, along with the automations
        that run it.


        The function is removed from the app's main line, but the published app
        keeps serving it until you deploy the app again with [Deploy an
        app](/api-reference/deploy-an-app). Its automations are deleted straight
        away, so they stop for the published app too. The function's file in the
        app's code is left alone. The delete is rejected while main is
        protected.


        An app runs one deploy at a time, and a delete counts as one. If another
        deploy for the app is still running after a short wait, the call is
        rejected and is safe to retry. On some apps the remaining functions are
        redeployed as part of the delete, and the request waits for that to
        finish.


        This is limited to 60 requests per minute per app for each workspace's
        API keys, so every personal and workspace API 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, or a workspace API key with the `apps:deploy`
        scope. A read-only key is refused.</Note>
      operationId: >-
        delete_function_api_api_apps__app_id__backend_functions__function_name__delete
      parameters:
        - name: function_name
          in: path
          required: true
          schema:
            type: string
            description: >-
              Name of the backend function, as `name` in [List backend
              functions](/api-reference/list-backend-functions). Nested
              functions have slashes in their name, and you send those as they
              are.
            title: Function Name
          description: >-
            Name of the backend function, as `name` in [List backend
            functions](/api-reference/list-backend-functions). Nested functions
            have slashes in their name, and you send those as they are.
          example: sendWelcomeEmail
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app the function belongs to.
            title: App Id
          description: ID of the app the function belongs to.
          example: 6820f3a4e7b91d003c45a1f2
      responses:
        '204':
          description: The function was deleted.
        '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 your workspace API key lacks the
            `apps:deploy` scope or doesn't cover this app.
        '404':
          description: App not found, or the app has no backend function with this name.
        '409':
          description: >-
            Another deploy for the app is running, or the app's main line is
            protected. With a workspace API key, it also means the app left the
            key's workspace or the key was revoked during the request. In that
            case the function can already be gone, and a retry then answers that
            it isn't found.
        '422':
          description: >-
            `function_name` is blank, contains `.`, `$` or a control character,
            is `__router__` or `__prod__`, or names an actor under
            `base44/actors/`, which this endpoint doesn't delete.
        '429':
          description: Rate limit exceeded.
components:
  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.