Deepnote Public API v2
Streamlit apps API
Streamlit apps served from project files.
Base URL
https://api.deepnote.com/v2List Streamlit apps
Lists the Streamlit apps a project serves, oldest first. The response is complete: a project serves at most one app per free port, so there is no pagination. Use this to find the app for a file before creating one, because `POST /streamlit-apps` rejects a file that is already served.
/streamlit-appsParameters
projectIdqueryrequiredstring:uuidProject whose Streamlit apps are listed.
Responses
▸200List of Streamlit apps in the project
ListStreamlitAppsResponsestreamlitAppsrequiredStreamlitApp[]▸400Validation error
ErrorResponsemessagerequiredstring▸401Unauthorized
ErrorResponsemessagerequiredstring▸403Insufficient permissions
ErrorResponsemessagerequiredstring▸404Project not found
ErrorResponsemessagerequiredstring▸409Project is suspended
ErrorResponsemessagerequiredstring▸429Rate limit exceeded
ErrorResponsemessagerequiredstring▸500Internal server error
ErrorResponsemessagerequiredstringCreate a Streamlit app
Serves an existing project file as a Streamlit app.
/streamlit-appsRequest body
CreateStreamlitAppBodyprojectIdrequiredstring:uuidProject that contains the entrypoint file.
entrypointrequiredstringProject-relative path of an existing file to serve, for example "apps/dashboard.py".
Responses
▸201Streamlit app created
CreateStreamlitAppResponsestreamlitApprequiredStreamlitApp▸400Validation error or entrypoint path is not a file
ErrorResponsemessagerequiredstring▸401Unauthorized
ErrorResponsemessagerequiredstring▸403Insufficient permissions
ErrorResponsemessagerequiredstring▸404Project or entrypoint file not found
ErrorResponsemessagerequiredstring▸409Project is suspended, the file is already served as an app, or the project has no free app ports
ErrorResponsemessagerequiredstring▸429Rate limit exceeded
ErrorResponsemessagerequiredstringGet a Streamlit app
Returns the app record. This does not check whether the app is currently being served; use `GET /streamlit-apps/{streamlitAppId}/status` for that.
/streamlit-apps/{streamlitAppId}Parameters
streamlitAppIdpathrequiredstring:uuidStreamlit app identifier.
Responses
▸200Streamlit app
GetStreamlitAppResponsestreamlitApprequiredStreamlitApp▸400Validation error
ErrorResponsemessagerequiredstring▸401Unauthorized
ErrorResponsemessagerequiredstring▸403Insufficient permissions
ErrorResponsemessagerequiredstring▸404Streamlit app not found
ErrorResponsemessagerequiredstring▸409Project is suspended
ErrorResponsemessagerequiredstring▸429Rate limit exceeded
ErrorResponsemessagerequiredstring▸500Internal server error
ErrorResponsemessagerequiredstringDelete a Streamlit app
Stops serving the file and frees its port. The project machine is restarted in the background to drop the running app, which takes a few minutes; until it comes back the app may still answer requests.
/streamlit-apps/{streamlitAppId}Parameters
streamlitAppIdpathrequiredstring:uuidStreamlit app identifier.
Responses
▸204Streamlit app deleted
▸400Validation error
ErrorResponsemessagerequiredstring▸401Unauthorized
ErrorResponsemessagerequiredstring▸403Insufficient permissions
ErrorResponsemessagerequiredstring▸404Streamlit app not found
ErrorResponsemessagerequiredstring▸409Project is suspended
ErrorResponsemessagerequiredstring▸429Rate limit exceeded
ErrorResponsemessagerequiredstring▸500Internal server error
ErrorResponsemessagerequiredstringGet the serving state of a Streamlit app
Reports whether the app is currently answering requests. After an app is created, the status may briefly report `unavailable` while the project machine stops, then `starting` while the machine and Streamlit boot. Poll this endpoint rather than the app URL itself, and apply a client-side timeout because `starting` does not distinguish slow startup from an app that failed to boot.
/streamlit-apps/{streamlitAppId}/statusParameters
streamlitAppIdpathrequiredstring:uuidStreamlit app identifier.
Responses
▸200Current serving state of the Streamlit app
GetStreamlitAppStatusResponsestatusrequiredStreamlitAppStatusServing status of the app. `running`: the app answered its health check. `starting`: the project machine is starting or running but the app has not answered yet. `unavailable`: the project machine is not running or its executor cannot be reached, so the app is not being served.
▸400Validation error
ErrorResponsemessagerequiredstring▸401Unauthorized
ErrorResponsemessagerequiredstring▸403Insufficient permissions
ErrorResponsemessagerequiredstring▸404Streamlit app not found
ErrorResponsemessagerequiredstring▸409Project is suspended
ErrorResponsemessagerequiredstring▸429Rate limit exceeded
ErrorResponsemessagerequiredstring▸500Internal server error
ErrorResponsemessagerequiredstring