Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.withsutro.com/llms.txt

Use this file to discover all available pages before exploring further.

The Sutro API supports the generation, hosting and editing of production-ready backends. These generated API servers can be constructed with a single prompt, processed by our AI agent. They can also be constructed manually through calls to our API. You can learn how to generate a backend from a prompt.

Example

For a deeper walk-through, follow the Prompt to backend tutorial; the snippet below shows the type of output produced from a simple LLM prompt. This results in an API Server with a downloadable OpenAPI document. Once published, your API is accessible at https://{applicationId}.app.withsutro.com/api/v{version}/.
api.yaml
openapi: 3.1.1
info:
  title: TaskTracker Pro
  version: 1.0.1
  description: Manage and track personal tasks with deadlines to stay organized and ensure timely completion of work
jsonSchemaDialect: https://spec.openapis.org/oas/3.1/dialect/base
servers:
  - url: https://fc9fe14b-43ed-4a3b-99a7-ee4d0ba13224.app.withsutro.com/api/v1.0.1
    description: Development Server
components:
  schemas:
    User:
      type: object
      required:
        - id
        - todos
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          $comment: p_TEXT
        email:
          type: string
          $comment: p_TEXT
        todos:
          type: array
          items:
            $ref: "#/components/schemas/ToDo"
          $comment: "urn:sutro:model:toDo"
          x-sutro-relOwner: true
      title: User
      description: User
      additionalProperties: false
      $id: User
    ToDo:
      type: object
      required:
        - id
        - user
      properties:
        id:
          type: string
          format: uuid
        title:
          type: string
          $comment: p_TEXT
        description:
          type: string
          $comment: p_TEXT
        deadline:
          type: string
          format: date-time
          $comment: p_DATE_TIME
        status:
          type: string
          $comment: p_TEXT
        user:
          $ref: "#/components/schemas/User"
          $comment: "urn:sutro:model:user"
          x-sutro-relOwner: false
      title: ToDo
      description: To Do
      additionalProperties: false
      $id: ToDo
  responses:
    GetUsersResponse:
      description: Entities retrieved successfully
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              items:
                type: array
                items:
                  $ref: "#/components/schemas/User"
              total:
                type: number
              offset:
                type: number
    GetUserResponse:
      description: getEntity successful
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/User"
    CreateUserResponse:
      description: createEntity successful
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/User"
    UpdateUserResponse:
      description: updateEntity successful
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/User"
    DeleteUserResponse:
      description: Response for Create urn:sutro:action:deleteUserServer
    GetToDosResponse:
      description: Entities retrieved successfully
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              items:
                type: array
                items:
                  $ref: "#/components/schemas/ToDo"
              total:
                type: number
              offset:
                type: number
    GetToDoResponse:
      description: getEntity successful
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ToDo"
    CreateToDoResponse:
      description: createEntity successful
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ToDo"
    UpdateToDoResponse:
      description: updateEntity successful
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ToDo"
    DeleteToDoResponse:
      description: Response for Create urn:sutro:action:deleteToDoServer
  requestBodies:
    CreateUserRequestBody:
      description: Request body for createUser
      content:
        application/json:
          schema:
            type: object
            required:
              - todos
            properties:
              name:
                type: string
                $comment: p_TEXT
              email:
                type: string
                $comment: p_TEXT
              todos:
                type: array
                items:
                  type: string
                  description: ID of To Do
                $comment: "urn:sutro:model:toDo"
                x-sutro-relOwner: true
            title: User
            description: Request body for User
            additionalProperties: false
            $id: CreateUserRequestBody
      required: true
    UpdateUserRequestBody:
      description: Request body for updateUser
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                $comment: p_TEXT
              email:
                type: string
                $comment: p_TEXT
              todos:
                type: array
                items:
                  type: string
                  description: ID of To Do
                $comment: "urn:sutro:model:toDo"
                x-sutro-relOwner: true
            $id: UpdateUserRequestBody
            description: Request body for User
      required: true
    CreateToDoRequestBody:
      description: Request body for createTo Do
      content:
        application/json:
          schema:
            type: object
            required:
              - user
            properties:
              title:
                type: string
                $comment: p_TEXT
              description:
                type: string
                $comment: p_TEXT
              deadline:
                type: string
                format: date-time
                $comment: p_DATE_TIME
              status:
                type: string
                $comment: p_TEXT
              user:
                type: string
                description: ID of User
                $comment: "urn:sutro:model:user"
                x-sutro-relOwner: false
            title: ToDo
            description: Request body for To Do
            additionalProperties: false
            $id: CreateToDoRequestBody
      required: true
    UpdateToDoRequestBody:
      description: Request body for updateTo Do
      content:
        application/json:
          schema:
            type: object
            properties:
              title:
                type: string
                $comment: p_TEXT
              description:
                type: string
                $comment: p_TEXT
              deadline:
                type: string
                format: date-time
                $comment: p_DATE_TIME
              status:
                type: string
                $comment: p_TEXT
              user:
                type: string
                description: ID of User
                $comment: "urn:sutro:model:user"
                x-sutro-relOwner: false
            $id: UpdateToDoRequestBody
            description: Request body for To Do
      required: true
paths:
  /users:
    get:
      operationId: getUsers
      summary: Get a collection of Users
      responses:
        "200":
          $ref: "#/components/responses/GetUsersResponse"
    post:
      operationId: createUser
      summary: Create a new User
      responses:
        "200":
          $ref: "#/components/responses/CreateUserResponse"
      requestBody:
        $ref: "#/components/requestBodies/CreateUserRequestBody"
  /users/{id}:
    get:
      operationId: getUser
      summary: Get a single User
      responses:
        "200":
          $ref: "#/components/responses/GetUserResponse"
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
    put:
      operationId: updateUser
      summary: Update an existing User
      responses:
        "200":
          $ref: "#/components/responses/UpdateUserResponse"
      requestBody:
        $ref: "#/components/requestBodies/UpdateUserRequestBody"
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
    delete:
      operationId: deleteUser
      summary: Delete an existing User
      responses:
        "200":
          $ref: "#/components/responses/DeleteUserResponse"
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
  /toDos:
    get:
      operationId: getTo Dos
      summary: Get a collection of To Dos
      responses:
        "200":
          $ref: "#/components/responses/GetToDosResponse"
    post:
      operationId: createTo Do
      summary: Create a new To Do
      responses:
        "200":
          $ref: "#/components/responses/CreateToDoResponse"
      requestBody:
        $ref: "#/components/requestBodies/CreateToDoRequestBody"
  /toDos/{id}:
    get:
      operationId: getTo Do
      summary: Get a single To Do
      responses:
        "200":
          $ref: "#/components/responses/GetToDoResponse"
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
    put:
      operationId: updateTo Do
      summary: Update an existing To Do
      responses:
        "200":
          $ref: "#/components/responses/UpdateToDoResponse"
      requestBody:
        $ref: "#/components/requestBodies/UpdateToDoRequestBody"
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
    delete:
      operationId: deleteTo Do
      summary: Delete an existing To Do
      responses:
        "200":
          $ref: "#/components/responses/DeleteToDoResponse"
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
You can see API documentation for this example here.