---
title: "List backend functions"
method: GET
path: "/api/apps/{app_id}/backend-functions"
---

# List backend functions

`GET /api/apps/{app_id}/backend-functions`

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

Returns the app's deployed backend functions, each with its code and the automations that run it.

Use it to pull the functions' source, for example before you change one and send it back with [Redeploy a backend function](/api-reference/redeploy-a-backend-function). Every function comes back in one response, with no paging.

This is limited to 60 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 even though this endpoint only reads, and workspace API keys are not accepted.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app the functions belong to.

## Response `200`

The app's backend functions.

- BackendFunctions — The app's deployed backend functions.
  - `functions` BackendFunction[], required — The functions, with their code and automations. Empty when the app has none.
    - `name` string, required — Name of the function. Nested functions have slashes in their name.
    - `entry` string, required — Path of the file the function starts from, one of the `path` values in `files`.
    - `files` BackendFunctionFile[], required — The function's deployed code.
      - `path` string, required — Path of the file in the function's deployment.
      - `content` string, required — The file's source.
    - `automations` BackendFunctionAutomation[], required — Automations that run the function. Empty when it has none.
      - `name` string, required — Name of the automation.
      - `type` 'scheduled' | 'entity' | 'connector', required — What starts the automation. `scheduled` runs it on a schedule, `entity` when records of an entity change, and `connector` on an event from a connected service. Each automation also carries the settings for its type, such as its schedule or the entity it watches.
      - `description` string, nullable, required — What the automation is for, or `null` if none was given.
      - `function_args` object, nullable, required — Arguments the automation passes to the function, or `null` when it passes none.
      - `is_active` boolean, required — Whether the automation runs (`true`) or is paused (`false`).

## Other responses

- `401` — Missing or invalid credentials.
- `403` — 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` — App not found.
- `429` — Rate limit exceeded.

## Changes

- **2026-10-05** `8a09a50ea8c9` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/backend-functions/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/dddf17e0f9f0?raw)
