GET /api/apps
Get the list of available applications.Authentication
RequiredResponse
Array of application objects
Application name
Command to launch the application
Path to log output file (optional)
Full path to the application cover image (PNG file) (optional)
Whether to exclude global preparation commands
Whether to run the application with elevated privileges
Whether to automatically detach from the application process
Whether to wait for all child processes to exit
Timeout in seconds before force-closing the application
Array of detached commands to run alongside the application (optional)
Example Request
Example Response
POST /api/apps
Create a new application or update an existing one.Authentication
RequiredRequest Body
Application name
Command to launch the application
Application index. Use
-1 to create a new application, or provide the existing index to update an applicationPath to log output file
Full path to the application cover image (must be a PNG file)
Exclude global preparation commands
Run with elevated privileges
Automatically detach from the application process
Wait for all child processes to exit
Timeout in seconds before force-closing
Array of detached commands (strings) to run alongside the application
Response
Whether the operation was successful
Example Request
Example Response
Notes
- Applications are automatically sorted by name after creation or update
- Empty
prep-cmdanddetachedarrays are removed from the configuration - Use index
-1to create a new application; it will be added to the end of the list (before sorting)
POST /api/apps/close
Close the currently running application.Authentication
RequiredRequest Headers
Response
Whether the operation was successful
Example Request
Example Response
Notes
- This terminates the currently running application process
- The request body can be empty JSON
{}but the Content-Type header is required
DELETE /api/apps/
Delete an application by its index.Authentication
RequiredPath Parameters
The zero-based index of the application to delete
Response
Whether the operation was successful
Success message indicating which application was deleted
Example Request
Example Response
Error Responses
If the index is out of range:GET /api/covers/
Get the cover image for an application.Authentication
RequiredPath Parameters
The zero-based index of the application
Response
Returns the PNG image file withContent-Type: image/png header.
Example Request
Error Responses
If the application has no cover image:Notes
- Only PNG files are supported for cover images
- The image path is validated to ensure itβs a valid PNG file
- If no custom image is set, the default image path is used
POST /api/covers/upload
Upload or download a cover image for applications.Authentication
RequiredRequest Body
Unique identifier for the cover image (e.g.,
igdb_<game_id>)URL to download the image from (must be from
images.igdb.com). If provided, the image will be downloadedBase64-encoded image data. Used if
url is not providedResponse
Whether the upload was successful
File path where the cover image was saved
Example Request (URL)
Example Request (Base64)
Example Response
Error Responses
If the key is missing:Notes
- Images are stored in the
covers/subdirectory of the Sunshine config directory - The key is URL-escaped before being used as the filename
- Only
images.igdb.comis allowed as an external image source for security - You can use either
url(for downloading) ordata(for direct upload)

