---
title: "List functions on the branch"
method: GET
path: "/projects/{project_id}/branches/{branch_id}/functions"
tags: ["Functions"]
---

# List functions on the branch

`GET /projects/{project_id}/branches/{branch_id}/functions`

Lists functions on the specified branch.

**Note**: This endpoint is currently in Private Beta.

## Query parameters

- `cursor` string
- `limit` integer

## Response `200`

The list of functions

- object
  - `functions` NeonFunction[], required
    - `id` string, required — Opaque, stable function identifier.
    - `slug` string, required — Branch-unique, lowercase DNS-label. Forms the invocation URL's host together with the branch id. Immutable.
    - `name` string, required — Free-form display name.
    - `invocation_url` string, required — URL at which the function is invoked. The host carries `<branch_id>-<slug>` as its first DNS label under a Neon-managed functions domain, and the URL ends with a trailing slash so paths concatenate onto it. Empty string when the function has no servable invoke host (e.g. a deployment without an invocation front-door).
    - `current_deployment` NeonFunctionDeployment
      - `id` integer, required — The deployment id, which is the platform version number (monotonic per function).
      - `status` 'pending' | 'building' | 'completed' | 'failed', required — Build lifecycle status of the deployment.
      - `memory_mib` integer, required
      - `runtime` string, required
      - `created_at` string, required
      - `environment` string[] — The NAMES of the deployment's environment variables, sorted. Values are encrypted at rest and are never returned — they are write-only. To change a value, deploy the variable with the new value; to remove a variable, deploy it with an empty value.
      - `error` string — Human-readable reason the deployment build failed. Present only when `status` is `failed`.
    - `active_deployment` NeonFunctionDeployment
      - `id` integer, required — The deployment id, which is the platform version number (monotonic per function).
      - `status` 'pending' | 'building' | 'completed' | 'failed', required — Build lifecycle status of the deployment.
      - `memory_mib` integer, required
      - `runtime` string, required
      - `created_at` string, required
      - `environment` string[] — The NAMES of the deployment's environment variables, sorted. Values are encrypted at rest and are never returned — they are write-only. To change a value, deploy the variable with the new value; to remove a variable, deploy it with an empty value.
      - `error` string — Human-readable reason the deployment build failed. Present only when `status` is `failed`.
    - `created_at` string, required
  - `pagination` CursorPagination — To paginate the response, issue an initial request with `limit` value. Then, add the value returned in the response `.pagination.next` attribute into the request under the `cursor` query parameter to the subsequent request to retrieve next page in pagination. The contents on cursor `next` are opaque, clients are not expected to make any assumptions on the format of the data inside the cursor.
    - `next` string
    - `sort_by` string
    - `sort_order` string

## Other responses

- `default` — General Error. The request may or may not be safe to retry, depending on the HTTP method, response status code, and whether a response was received. - If no response is returned from the API, a network error or timeout likely occurred. - In some cases, the request may have reached the server and been successfully processed, but the response failed to reach the client. As a result, retrying non-idempotent requests can lead to unintended results. The following HTTP methods are considered non-idempotent: `POST`, `PATCH`, `DELETE`, and `PUT`. Retrying these methods is generally **not safe**. The following methods are considered idempotent: `GET`, `HEAD`, and `OPTIONS`. Retrying these methods is **safe** in the event of a network error or timeout. Any request that returns a `503 Service Unavailable` response is always safe to retry. Any request that returns a `423 Locked` response is safe to retry. `423 Locked` indicates that the resource is temporarily locked, for example, due to another operation in progress.

---

[API](https://skmtc.net/neon/apis/neon-api.md) · [All operations](https://skmtc.net/neon/apis/neon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/neon/neon-api/revisions/cfde79a5c713/schema)
