---
title: "List Applications"
method: GET
path: "/serverless/apps"
tags: ["Serverless", "Apps"]
---

# List Applications

`GET /serverless/apps`

Lists the serverless applications owned by the authenticated account, with
the configuration needed for follow-up calls.

Each application includes its canonical `endpoint_id` ('<owner>/<name>'),
which is the identifier accepted by the analytics, requests, logs, and
queue endpoints — use this endpoint to discover identifiers instead of
asking users to paste them.

Add `expand=endpoints` to also include each app's registered route-level
endpoint ids (e.g. '<owner>/<name>/turbo'). Multi-route apps record their
requests/analytics data under these route-level ids.

**Authentication:** Required via API key. Only applications owned by the
authenticated account are returned.

## Query parameters

- `environment` string — Environment to list apps from. Defaults to the main environment.
- `search` string — Case-insensitive substring match on the app name
- `expand` union — Fields to expand in the response. Use endpoints to include each app's registered route-level endpoint ids.
  - string
  - string[]

## Response `200`

Successfully retrieved the caller's applications

- object — The caller's serverless applications
  - `apps` object[], required — Serverless applications owned by the authenticated account
    - `endpoint_id` string, required — Canonical endpoint identifier ('<owner>/<name>') accepted by the analytics, requests, logs, and queue endpoints
    - `name` string, required — Application name (alias)
    - `owner` string, required — Nickname of the app owner
    - `environment` string, required — Environment the app is deployed in
    - `machine_type` string, required — Machine type the app runs on
    - `auth_mode` 'private' | 'public' | 'shared', required — Endpoint authentication mode
    - `keep_alive` number, required — Seconds a runner stays warm after its last request
    - `min_concurrency` number, required — Minimum number of runners kept alive
    - `max_concurrency` number, required — Maximum number of concurrent runners
    - `request_timeout` number, required — Request timeout in seconds
    - `startup_timeout` number, required — Runner startup timeout in seconds
    - `valid_regions` string[], required — Regions the app may run in
    - `updated_at` string, required — Last update timestamp (UTC ISO8601)
    - `endpoints` string[] — Registered route-level endpoint ids for this app (only present when expand=endpoints). Multi-route apps record traffic under these ids, not the bare endpoint_id.

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication required
- `403` — Access denied
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/fal/apis/platform-apis.md) · [All operations](https://skmtc.dev/fal/apis/platform-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fal/platform-apis/revisions/0c7dabf80b00/schema)
