> ## 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.

# Create a project attachment



## OpenAPI

````yaml /openapi.yaml post /projects/{projectId}/attachments
openapi: 3.1.0
info:
  version: 0.0.5
  title: Sutro Public API
  description: >-
    The API through which apps can be generated, deployed, monitored and
    updated.
servers:
  - description: Production
    url: https://sapi.withsutro.com
security:
  - apiAuth: []
    builderAuth: []
    apiClientId: []
tags:
  - name: projects
    description: >
      Create and manage projects. Projects are the top-level container for all
      Sutro resources including applications,

      specifications, and team collaboration.
  - name: specifications
    description: >
      Generate and retrieve application specifications from attachments using
      AI. Specifications describe the data models,

      actions, and UI structure for your application.
  - name: applications
    description: >
      Generate applications, manage versions, and configure core settings.
      Applications are the executable implementations

      of your specifications.
  - name: attachments
    description: >
      Upload, manage, and delete file attachments for applications. Attachments
      can include Figma files,

      documents, and other assets used in application generation.
  - name: data-models
    description: >
      Define and manage data models and their fields. Models represent the
      entities in your application

      (e.g., Users, Products, Orders) and their properties.
  - name: actions-effects
    description: >
      Actions are things that your application can do, and an action is made up
      of effects.
  - name: triggers
    description: >
      Configure triggers that start workflows automatically based on events like
      schedules, webhooks, or data changes.
  - name: figma-integration
    description: >
      Import Figma designs and generate static code from frames. Connect your
      Figma files to automatically

      generate UI components.
  - name: deployments-assets
    description: >
      Deploy application versions and download generated code bundles. Manage
      your application releases

      and access generated artifacts.
  - name: secrets-configuration
    description: >
      Manage application secrets and environment variables securely. Secrets are
      encrypted and injected

      into your application at runtime.
  - name: ai-assistant
    description: >
      Assistant endpoints for making changes to an application using natural
      language.

      Messages are stored per project to maintain conversation history.
  - name: builders
    description: >
      Create and manage builders. Builders are end users or clients who build
      and run apps

      that integrate with Sutro.
  - name: storage
    description: >
      Upload, download, and manage files in object storage. Files are scoped to
      the authenticated

      customer and can optionally be associated with a builder.
paths:
  /projects/{projectId}/attachments:
    parameters:
      - name: projectId
        in: path
        schema:
          type: string
          format: uuid
        required: true
    post:
      tags:
        - attachments
      summary: Create a project attachment
      operationId: createProjectAttachment
      requestBody:
        $ref: '#/components/requestBodies/CreateAttachment'
      responses:
        '201':
          $ref: '#/components/responses/Attach'
        '400':
          description: Invalid attachment
        '404':
          description: Project not found
components:
  requestBodies:
    CreateAttachment:
      description: >
        Sutro supports a wide range of attachments that can be used to help
        design and generate an application:


        - Figma project (via file key or URL)

        - LLM Prompts

        - OpenAPI documents

        - Other files
      content:
        application/json:
          schema:
            oneOf:
              - allOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        const: FIGMA
                  - $ref: '#/components/schemas/AttachFigma'
              - title: OpenAPI Document
                allOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        const: OPENAPI
                  - $ref: '#/components/schemas/AttachOpenAPI'
              - title: LLM Prompt
                allOf:
                  - type: object
                    properties:
                      type:
                        type: string
                        const: PROMPT
                  - $ref: '#/components/schemas/AttachPrompt'
  responses:
    Attach:
      description: The ID of the generated attachment
      content:
        application/json:
          schema:
            type: object
            properties:
              attachmentId:
                type: string
                format: uuid
                examples:
                  - b08631ad-a4ec-4c27-9995-01287e83d565
            required:
              - attachmentId
  schemas:
    AttachFigma:
      oneOf:
        - $ref: '#/components/schemas/AttachFigmaByUrl'
        - $ref: '#/components/schemas/AttachFigmaByFileKey'
    AttachOpenAPI:
      type: object
      additionalProperties: true
    AttachPrompt:
      type: object
      required:
        - prompt
      properties:
        prompt:
          type: string
    AttachFigmaByUrl:
      title: Figma (URL)
      allOf:
        - type: object
          required:
            - projectLink
          properties:
            projectLink:
              type: string
              format: url
              description: A URL pointing to a Figma project
              examples:
                - https://figma.example.com/12345
        - $ref: '#/components/schemas/FigmaPat'
    AttachFigmaByFileKey:
      title: Figma (File key)
      allOf:
        - type: object
          required:
            - fileKey
          properties:
            fileKey:
              type: string
              description: The Figma file key of the project to attach
              minLength: 1
              examples:
                - PAY123FLOW
        - $ref: '#/components/schemas/FigmaPat'
    FigmaPat:
      type: object
      properties:
        pat:
          type: string
          description: >
            A Personal Access Token that has permission to access the given
            Figma project.


            This will require the following scopes:
              - `file_content:read`
              - `file_variables:read`
              - `file_metadata:read`
          examples:
            - b08631ad-a4ec-4c27-9995-01287e83d565
      required:
        - pat
  securitySchemes:
    apiAuth:
      description: >-
        Mutual TLS authentication using client certificates. Requires three
        certificate files from your security bundle: `ca.crt` (CA certificate to
        verify the server), `mtls.key` (client private key), and `mtls.crt`
        (client certificate). In curl, use: `--cacert ca.crt --key mtls.key
        --cert mtls.crt`
      type: mutualTLS
    builderAuth:
      description: Builder authentication and authorization
      type: http
      scheme: bearer
      bearerFormat: jwt
    apiClientId:
      description: A unique identifier for the API Client making a request
      type: apiKey
      in: header
      name: x-sutro-api-client

````