Streamlit Apps API
Manage Streamlit applications deployed on Community Cloud. Deploy, list, restart, and delete apps connected to GitHub repositories.
Manage Streamlit applications deployed on Community Cloud. Deploy, list, restart, and delete apps connected to GitHub repositories.
openapi: 3.1.0
info:
title: Streamlit Community Cloud Apps API
description: The Streamlit Community Cloud API provides programmatic access to manage Streamlit applications hosted on Community Cloud. Developers can use this API to deploy apps from GitHub repositories, manage app secrets, view deployment logs, restart apps, and manage workspace settings. Authentication uses Streamlit-issued API tokens.
version: 1.0.0
contact:
name: Streamlit Support
url: https://discuss.streamlit.io
termsOfService: https://streamlit.io/terms-of-use
servers:
- url: https://api.streamlit.io/v1
description: Streamlit Community Cloud API
security:
- streamlitBearerAuth: []
tags:
- name: Apps
description: Manage Streamlit applications deployed on Community Cloud. Deploy, list, restart, and delete apps connected to GitHub repositories.
paths:
/apps:
get:
operationId: listApps
summary: List Apps
description: Returns a list of all Streamlit applications deployed in the authenticated workspace.
tags:
- Apps
parameters:
- name: page
in: query
description: Page number for pagination
schema:
type: integer
default: 1
- name: per_page
in: query
description: Number of apps per page
schema:
type: integer
default: 25
responses:
'200':
description: A list of Streamlit apps
content:
application/json:
schema:
type: object
properties:
apps:
type: array
items:
$ref: '#/components/schemas/App'
pagination:
$ref: '#/components/schemas/Pagination'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: deployApp
summary: Deploy App
description: Deploys a new Streamlit application from a GitHub repository. The repository must be accessible to the authenticated workspace. The app will be built and deployed from the specified branch and file path.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppDeployRequest'
responses:
'201':
description: App deployment initiated
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/apps/{appId}:
get:
operationId: getApp
summary: Get App
description: Returns the details of a specific Streamlit application including its deployment status, GitHub connection, and URL.
tags:
- Apps
parameters:
- $ref: '#/components/parameters/AppId'
responses:
'200':
description: The app details
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteApp
summary: Delete App
description: Deletes a Streamlit application from Community Cloud. This action is irreversible and removes the deployment but does not affect the GitHub repository.
tags:
- Apps
parameters:
- $ref: '#/components/parameters/AppId'
responses:
'204':
description: App deleted successfully
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/restart:
post:
operationId: restartApp
summary: Restart App
description: Restarts a deployed Streamlit application. Useful for applying new secrets or recovering from an error state.
tags:
- Apps
parameters:
- $ref: '#/components/parameters/AppId'
responses:
'200':
description: App restart initiated
content:
application/json:
schema:
$ref: '#/components/schemas/App'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
Error:
type: object
properties:
error:
type: string
description: The error code
message:
type: string
description: A human-readable error message
AppDeployRequest:
type: object
required:
- repo
- branch
- mainFile
properties:
repo:
type: string
description: The GitHub repository to deploy from (org/repo format)
branch:
type: string
description: The branch to deploy from
mainFile:
type: string
description: The path to the main Python file (e.g., app.py)
appName:
type: string
description: Optional custom name for the app
Pagination:
type: object
properties:
page:
type: integer
perPage:
type: integer
total:
type: integer
App:
type: object
properties:
id:
type: string
description: The unique identifier of the app
name:
type: string
description: The display name of the app
url:
type: string
format: uri
description: The public URL of the deployed app
status:
type: string
enum:
- running
- sleeping
- error
- building
- deploying
description: The current status of the app
repo:
type: string
description: The GitHub repository (org/repo format)
branch:
type: string
description: The GitHub branch to deploy from
mainFile:
type: string
description: The path to the main app file (e.g., app.py, streamlit_app.py)
createdAt:
type: string
format: date-time
description: When the app was first deployed
updatedAt:
type: string
format: date-time
description: When the app was last updated or restarted
owner:
type: string
description: The GitHub username or org that owns the repository
responses:
Unauthorized:
description: Unauthorized — invalid or missing API token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request — invalid input
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Not found — the requested resource does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
AppId:
name: appId
in: path
required: true
description: The unique identifier of the Streamlit app
schema:
type: string
securitySchemes:
streamlitBearerAuth:
type: http
scheme: bearer
description: 'Bearer token issued from the Streamlit Community Cloud account settings. Include as Authorization: Bearer {token}.'
externalDocs:
description: Streamlit Community Cloud Documentation
url: https://docs.streamlit.io/deploy/streamlit-community-cloud