# Sutro ## Docs - [Welcome to Sutro](https://docs.withsutro.com/docs/getting-started/welcome.md): An introduction to Sutro and its use cases - [Quickstart](https://docs.withsutro.com/docs/getting-started/slang-quickstart.md): Get started with Sutro by creating your first backend using Studio or the CLI. - [Sutro CLI quickstart](https://docs.withsutro.com/docs/getting-started/cli-quickstart.md): Create, preview, validate, and publish a SLang backend with the Sutro CLI. - [Sutro Studio](https://docs.withsutro.com/docs/getting-started/studio.md): Use Sutro Studio to create and edit your backend in minutes - [Sutro Console](https://docs.withsutro.com/docs/getting-started/sutro-console.md): Access and manage your Sutro projects, applications, and resources through the web console - [CLI command reference](https://docs.withsutro.com/docs/cli/command-reference.md): Commands, flags, and output modes for the Sutro CLI. - [Project configuration](https://docs.withsutro.com/docs/cli/project-config.md): How sutro.config.json links a local SLang project to a Sutro Application. - [Introduction to SLang](https://docs.withsutro.com/docs/SLang/introduction.md): The programming language for defining Sutro backends. - [Syntax Basics](https://docs.withsutro.com/docs/SLang/syntax.md): Basic SLang source syntax, including comments. - [Data Modeling](https://docs.withsutro.com/docs/SLang/data-modeling.md): Define persisted entities, reusable schemas, enums, fields, and relations in SLang. - [Logic & Actions](https://docs.withsutro.com/docs/SLang/logic.md): Write typed backend logic with actions, queries, mutations, control flow, and assertions. - [Security & Auth](https://docs.withsutro.com/docs/SLang/security.md): Define subjects, identities, groups, roles, permissions, and authenticated user updates. - [Files & Document Storage](https://docs.withsutro.com/docs/SLang/files-and-storage.md): Accept uploads, persist files, store file metadata, and pass documents to AI. - [Modules, AI, and HTTP](https://docs.withsutro.com/docs/SLang/modules.md): Import SLang modules and call built-in AI and HTTP capabilities. - [API & Triggers](https://docs.withsutro.com/docs/SLang/triggers.md): Expose SLang actions through HTTP, queues, cron schedules, and events. - [Generated App Security](https://docs.withsutro.com/docs/SLang/sutro-generated-app-security.md): How Sutro generated apps resolve authenticated subjects and evaluate SLang auth rules. - [Introduction to the API](https://docs.withsutro.com/docs/getting-started/api.md): Learn about the Sutro API, authentication, requests, responses, and errors - [Prompt to backend overview](https://docs.withsutro.com/docs/backend/overview.md): Generate, host and edit production-ready backends - [How-to: Prompt to backend](https://docs.withsutro.com/docs/backend/prompt-to-backend.md): Generate a backend API server using an LLM prompt - [Prompt to frontend overview](https://docs.withsutro.com/docs/frontend/overview.md): Generate, customize and publish production-ready web frontends - [How-to: Prompt to frontend](https://docs.withsutro.com/docs/frontend/prompt-to-frontend.md): Use prompts to modify and iterate on your frontend using natural language - [Prompt to full-stack overview](https://docs.withsutro.com/docs/getting-started/prompt-to-full-stack-overview.md): Generate and publish complete full-stack applications from a single prompt - [How-to: Prompt to full-stack](https://docs.withsutro.com/docs/getting-started/building-full-stack-apps.md): How to generate and publish a full-stack app from a prompt. - [Figma to code overview](https://docs.withsutro.com/docs/planning/figma-to-code-overview.md): Convert Figma designs into static HTML and CSS bundles - [How-to: Figma to code](https://docs.withsutro.com/docs/planning/figma-to-code.md): How to turn Figma files into static HTML and CSS bundles. - [Authentication overview](https://docs.withsutro.com/docs/getting-started/auth/overview.md): Understand how Sutro authenticates Members and Builders using JWTs and mTLS, and learn how API requests are validated - [Managing organization members](https://docs.withsutro.com/docs/getting-started/auth/members.md): How to invite, approve, and manage members in your Sutro organization. - [Builders](https://docs.withsutro.com/docs/getting-started/auth/builders.md): Configuring the system for Builders - [JSON Web Tokens (JWTs)](https://docs.withsutro.com/docs/getting-started/auth/jwts.md): Understanding how JWTs work in Sutro's authentication system - [Mutual TLS (mTLS)](https://docs.withsutro.com/docs/getting-started/auth/mutual-tls.md): Understanding how mTLS works in Sutro's authentication system - [How to secure connections](https://docs.withsutro.com/docs/getting-started/auth/how-to-secure-connections.md): Authenticate as an organization member, initialize signing keys, create a Builder, and generate a Builder JWT to call the Frontend API. - [Requests, responses & errors](https://docs.withsutro.com/docs/getting-started/requests-responses-errors.md): Request format, response handling, and error codes for the Sutro API. - [Get a list of projects](https://docs.withsutro.com/api-reference/projects/get-a-list-of-projects.md) - [Create a new project](https://docs.withsutro.com/api-reference/projects/create-a-new-project.md) - [Get a list of projects with member counts](https://docs.withsutro.com/api-reference/projects/get-a-list-of-projects-with-member-counts.md) - [Get details about a specific project](https://docs.withsutro.com/api-reference/projects/get-details-about-a-specific-project.md) - [Delete a project](https://docs.withsutro.com/api-reference/projects/delete-a-project.md) - [Update a project's name](https://docs.withsutro.com/api-reference/projects/update-a-projects-name.md) - [Get members of a project](https://docs.withsutro.com/api-reference/projects/get-members-of-a-project.md) - [Add a member to a project](https://docs.withsutro.com/api-reference/projects/add-a-member-to-a-project.md) - [Remove a member from a project](https://docs.withsutro.com/api-reference/projects/remove-a-member-from-a-project.md) - [List applications for a project](https://docs.withsutro.com/api-reference/applications/list-applications-for-a-project.md) - [Create a new application](https://docs.withsutro.com/api-reference/applications/create-a-new-application.md) - [List applications for the authenticated customer](https://docs.withsutro.com/api-reference/applications/list-applications-for-the-authenticated-customer.md) - [Get an application by ID](https://docs.withsutro.com/api-reference/applications/get-an-application-by-id.md) - [Delete an application](https://docs.withsutro.com/api-reference/applications/delete-an-application.md) - [Publish an application](https://docs.withsutro.com/api-reference/applications/publish-an-application.md) - [Unpublish an application](https://docs.withsutro.com/api-reference/applications/unpublish-an-application.md) - [Edit an application using natural language](https://docs.withsutro.com/api-reference/applications/edit-an-application-using-natural-language.md) - [Update an application's SCode](https://docs.withsutro.com/api-reference/applications/update-an-applications-scode.md): Accepts a JSON SCode object only. - [Update an application through SLang](https://docs.withsutro.com/api-reference/applications/update-an-application-through-slang.md): Compiles SLang into SCode and updates the application. - [Get the OpenAPI spec for an application](https://docs.withsutro.com/api-reference/applications/get-the-openapi-spec-for-an-application.md) - [Generate Application](https://docs.withsutro.com/api-reference/applications/generate-application.md): Generates the application code for the specified application. The components generated (frontend, backend, or both) are determined by the project's components configuration set at project creation. This cannot be overridden. The application must already exist before calling this endpoint. - [Gets the current status of the Application](https://docs.withsutro.com/api-reference/applications/gets-the-current-status-of-the-application.md) - [Get CORS configuration](https://docs.withsutro.com/api-reference/applications/get-cors-configuration.md): Returns the current CORS configuration for the application's backend API. - [Update CORS configuration](https://docs.withsutro.com/api-reference/applications/update-cors-configuration.md): Updates the CORS configuration for the application's backend API. This is required when self-hosting the frontend to allow cross-origin requests. - [List application versions](https://docs.withsutro.com/api-reference/applications/list-application-versions.md) - [Create a new version of this Application.](https://docs.withsutro.com/api-reference/applications/create-a-new-version-of-this-application.md): This approach generates a new version based on the previous version - [Get information about a specific version of an application](https://docs.withsutro.com/api-reference/applications/get-information-about-a-specific-version-of-an-application.md) - [Attach an uploaded file to a project](https://docs.withsutro.com/api-reference/attachments/attach-an-uploaded-file-to-a-project.md) - [List project attachments](https://docs.withsutro.com/api-reference/attachments/list-project-attachments.md) - [Create a project attachment](https://docs.withsutro.com/api-reference/attachments/create-a-project-attachment.md) - [List Application's Attachments](https://docs.withsutro.com/api-reference/attachments/list-applications-attachments.md) - [Attach a file](https://docs.withsutro.com/api-reference/attachments/attach-a-file.md) - [Get an attachment by ID](https://docs.withsutro.com/api-reference/attachments/get-an-attachment-by-id.md) - [Remove an attachment from a Project](https://docs.withsutro.com/api-reference/attachments/remove-an-attachment-from-a-project.md) - [Get all messages for a project](https://docs.withsutro.com/api-reference/ai-assistant/get-all-messages-for-a-project.md) - [Send a message to the assistant](https://docs.withsutro.com/api-reference/ai-assistant/send-a-message-to-the-assistant.md): Sends a user message to the assistant, which will process it asynchronously and may trigger changes to the application. The user message is stored in the conversation history. The response includes a job ID for tracking the processing status. The components that can be modified (frontend, backend, o… - [Get a specific message](https://docs.withsutro.com/api-reference/ai-assistant/get-a-specific-message.md) - [Delete a message](https://docs.withsutro.com/api-reference/ai-assistant/delete-a-message.md): Soft deletes a message by setting its deleted_at timestamp - [Generate static code from a Figma frame for an application](https://docs.withsutro.com/api-reference/figma-integration/generate-static-code-from-a-figma-frame-for-an-application.md): Enqueues a job to generate static HTML/CSS code from a Figma frame for this application. This is an async operation - use GET /applications/{applicationId}/status to check the generation status, and GET /applications/{applicationId}/webBundle to download the result when ready. - [Get Figma file structure (pages and frames) for an application](https://docs.withsutro.com/api-reference/figma-integration/get-figma-file-structure-pages-and-frames-for-an-application.md): Retrieves the structure of a Figma file including all pages and frames. Useful for letting users select which frame to generate code from. - [Download web bundle (static files) for an application](https://docs.withsutro.com/api-reference/figma-integration/download-web-bundle-static-files-for-an-application.md): Downloads a zip bundle containing all Figma-generated static files (HTML, CSS, images, etc.) for this application. This endpoint returns 200 with the zip file when the application status is Active, or 404 if the generation has not completed yet. Check GET /applications/{applicationId}/status to moni… - [Download frontend bundle](https://docs.withsutro.com/api-reference/deployments-assets/download-frontend-bundle.md): Downloads a static zip bundle containing the built frontend assets. - [Get all models for an application](https://docs.withsutro.com/api-reference/data-models/get-all-models-for-an-application.md) - [Add a model to the application](https://docs.withsutro.com/api-reference/data-models/add-a-model-to-the-application.md) - [Join two models with a bidirectional relationship](https://docs.withsutro.com/api-reference/data-models/join-two-models-with-a-bidirectional-relationship.md): Creates a bidirectional relationship between two models in the application. The relationship type (one-to-one, one-to-many, or many-to-many) determines how records in the two models are associated. - [Get a model from the Application](https://docs.withsutro.com/api-reference/data-models/get-a-model-from-the-application.md) - [Remove a model from the Application](https://docs.withsutro.com/api-reference/data-models/remove-a-model-from-the-application.md) - [Update a model in the Application](https://docs.withsutro.com/api-reference/data-models/update-a-model-in-the-application.md) - [Add a field to a model in the Application](https://docs.withsutro.com/api-reference/data-models/add-a-field-to-a-model-in-the-application.md) - [Remove a field from a model in the Application](https://docs.withsutro.com/api-reference/data-models/remove-a-field-from-a-model-in-the-application.md) - [Update a field in a model in the Application](https://docs.withsutro.com/api-reference/data-models/update-a-field-in-a-model-in-the-application.md) - [Get a list of Actions from an application](https://docs.withsutro.com/api-reference/actions-effects/get-a-list-of-actions-from-an-application.md) - [Add an action to the application](https://docs.withsutro.com/api-reference/actions-effects/add-an-action-to-the-application.md) - [Get an action from the Application](https://docs.withsutro.com/api-reference/actions-effects/get-an-action-from-the-application.md) - [Remove an action from the Application](https://docs.withsutro.com/api-reference/actions-effects/remove-an-action-from-the-application.md) - [Update an action in the Application](https://docs.withsutro.com/api-reference/actions-effects/update-an-action-in-the-application.md) - [Get Action Effects](https://docs.withsutro.com/api-reference/actions-effects/get-action-effects.md) - [Modify Action Effects](https://docs.withsutro.com/api-reference/actions-effects/modify-action-effects.md) - [Get an effect from an Action in the Application](https://docs.withsutro.com/api-reference/actions-effects/get-an-effect-from-an-action-in-the-application.md) - [Remove an effect from an Action in the Application](https://docs.withsutro.com/api-reference/actions-effects/remove-an-effect-from-an-action-in-the-application.md) - [Update an Effect in an Action](https://docs.withsutro.com/api-reference/actions-effects/update-an-effect-in-an-action.md) - [List triggers in the application](https://docs.withsutro.com/api-reference/triggers/list-triggers-in-the-application.md) - [Add a trigger to the application](https://docs.withsutro.com/api-reference/triggers/add-a-trigger-to-the-application.md): Adds a Trigger mapping to the Application. - [Get a trigger from the Application](https://docs.withsutro.com/api-reference/triggers/get-a-trigger-from-the-application.md) - [Remove a trigger from the Application](https://docs.withsutro.com/api-reference/triggers/remove-a-trigger-from-the-application.md) - [Update a trigger in the Application](https://docs.withsutro.com/api-reference/triggers/update-a-trigger-in-the-application.md): Updates a trigger in the Application. Accepts a partial TriggerMapping object. - [List secrets in the application](https://docs.withsutro.com/api-reference/secrets-configuration/list-secrets-in-the-application.md) - [Add a secret to the application](https://docs.withsutro.com/api-reference/secrets-configuration/add-a-secret-to-the-application.md) - [Update a secret in the Application](https://docs.withsutro.com/api-reference/secrets-configuration/update-a-secret-in-the-application.md) - [Remove a secret from the Application](https://docs.withsutro.com/api-reference/secrets-configuration/remove-a-secret-from-the-application.md) - [List all builders for the authenticated customer](https://docs.withsutro.com/api-reference/builders/list-all-builders-for-the-authenticated-customer.md) - [Create a new builder](https://docs.withsutro.com/api-reference/builders/create-a-new-builder.md) - [Get a builder by ID](https://docs.withsutro.com/api-reference/builders/get-a-builder-by-id.md) - [Delete a builder](https://docs.withsutro.com/api-reference/builders/delete-a-builder.md) - [Upload a file](https://docs.withsutro.com/api-reference/storage/upload-a-file.md): Upload a file to object storage. The file is associated with the authenticated customer and can optionally be linked to a builder. - [Check if a file exists](https://docs.withsutro.com/api-reference/storage/check-if-a-file-exists.md): Check whether a stored file exists by its ID. - [Download a file](https://docs.withsutro.com/api-reference/storage/download-a-file.md): Download a stored file by its ID. Returns the file as a binary stream with Content-Type, Content-Disposition, and Content-Length headers. - [Get file metadata](https://docs.withsutro.com/api-reference/storage/get-file-metadata.md): Retrieve metadata for a stored file without downloading it. - [Test API connectivity](https://docs.withsutro.com/api-reference/onboarding/test-api-connectivity.md): Test endpoint to verify API connection and display builder info. Requires authentication but no specific permission. - [Perform initial setup of platform for your organization](https://docs.withsutro.com/api-reference/configuration/perform-initial-setup-of-platform-for-your-organization.md) - [Get a list of Members](https://docs.withsutro.com/api-reference/members/get-a-list-of-members.md): Returns a list of all of the Members defined for a Customer - [Update the current Member](https://docs.withsutro.com/api-reference/members/update-the-current-member.md) - [Send a password reset email](https://docs.withsutro.com/api-reference/members/send-a-password-reset-email.md) - [Send a password reset email](https://docs.withsutro.com/api-reference/members/send-a-password-reset-email-1.md) - [Reset a Member password with a reset token](https://docs.withsutro.com/api-reference/members/reset-a-member-password-with-a-reset-token.md) - [Reset a Member password by email with a reset token](https://docs.withsutro.com/api-reference/members/reset-a-member-password-by-email-with-a-reset-token.md) - [Get a list of pending invitations](https://docs.withsutro.com/api-reference/members/get-a-list-of-pending-invitations.md) - [Send invitations to Members](https://docs.withsutro.com/api-reference/members/send-invitations-to-members.md): Sends invitation emails to one or more new Members. - [Accept an invitation](https://docs.withsutro.com/api-reference/members/accept-an-invitation.md) - [Resend an invitation to a Member](https://docs.withsutro.com/api-reference/members/resend-an-invitation-to-a-member.md) - [Delete an invitation to a Member](https://docs.withsutro.com/api-reference/members/delete-an-invitation-to-a-member.md) - [Get a list of Builder users](https://docs.withsutro.com/api-reference/builders/get-a-list-of-builder-users.md): Returns a list of all of the Builder users defined for a Customer - [Add a new Builder user](https://docs.withsutro.com/api-reference/builders/add-a-new-builder-user.md) - [Get info about a Builder](https://docs.withsutro.com/api-reference/builders/get-info-about-a-builder.md) - [Remove a Builder from the system](https://docs.withsutro.com/api-reference/builders/remove-a-builder-from-the-system.md) - [Get a list of current Certificates](https://docs.withsutro.com/api-reference/certificates/get-a-list-of-current-certificates.md) - [Download the Sutro root CA certificate](https://docs.withsutro.com/api-reference/certificates/download-the-sutro-root-ca-certificate.md): Downloads the PEM-encoded Sutro root CA certificate. This certificate can be used to verify certificates issued by Sutro. - [Request a certificate](https://docs.withsutro.com/api-reference/certificates/request-a-certificate.md) - [Delete a Certificate](https://docs.withsutro.com/api-reference/certificates/delete-a-certificate.md): Deletes a certificate and automatically unassigns it from any API clients and JWT issuers. This is a soft delete operation. - [Batch unassign JWT issuers from a certificate](https://docs.withsutro.com/api-reference/certificates/batch-unassign-jwt-issuers-from-a-certificate.md): Unassigns multiple JWT issuers from a certificate in a single batch operation. Validates that all issuer IDs exist and belong to the customer before performing unassignment. Only unassigns issuers that currently have this specific certificate assigned. - [Set the Certificate used for verifying tokens from the Customer](https://docs.withsutro.com/api-reference/certificates/set-the-certificate-used-for-verifying-tokens-from-the-customer.md) - [Get the list of accepted token issuers](https://docs.withsutro.com/api-reference/certificates/get-the-list-of-accepted-token-issuers.md) - [Add an accepted token issuer](https://docs.withsutro.com/api-reference/certificates/add-an-accepted-token-issuer.md) - [Remove an accepted token issuer](https://docs.withsutro.com/api-reference/certificates/remove-an-accepted-token-issuer.md) - [Get a list of API Clients](https://docs.withsutro.com/api-reference/api_clients/get-a-list-of-api-clients.md): Returns a list of all of the API Clients defined for a Customer - [Create a new API Client](https://docs.withsutro.com/api-reference/api_clients/create-a-new-api-client.md) - [Get an API Client](https://docs.withsutro.com/api-reference/api_clients/get-an-api-client.md) - [Delete an API Client](https://docs.withsutro.com/api-reference/api_clients/delete-an-api-client.md) - [Set the mTLS certificate for an API Client](https://docs.withsutro.com/api-reference/api_clients/set-the-mtls-certificate-for-an-api-client.md) - [Remove the mTLS certificate from an API Client](https://docs.withsutro.com/api-reference/api_clients/remove-the-mtls-certificate-from-an-api-client.md) ## OpenAPI Specs - [openapi](https://docs.withsutro.com/openapi.yaml) - [uapi](https://docs.withsutro.com/uapi.yaml) - [example](https://docs.withsutro.com/example.yaml) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.