> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Carica file su cui Devin possa lavorare durante le sessioni. Supporta diversi tipi di file, inclusi file di codice, dati e documentazione.

# Carica allegato

Questo endpoint carica file sui nostri server e restituisce un URL che puoi utilizzare come riferimento nelle sessioni di Devin. Il file non viene inviato automaticamente a nessuna sessione: devi includere l'URL nei tuoi prompt.

<div id="how-to-use-uploaded-files">
  ## Come usare i file caricati
</div>

<Warning>
  Devin riconosce gli allegati solo quando sono scritti esattamente nel formato `ATTACHMENT:"{file_url}"` (`ATTACHMENT` al singolare, tutto maiuscolo). La riga `ATTACHMENT:` deve trovarsi da sola nel prompt e l'URL deve essere racchiuso tra doppi apici.

  Inserire semplicemente l'URL in chiaro senza questo formato non funzionerà. Varianti come `ATTACHMENTS:` (plurale) non vengono riconosciute.
</Warning>

Per fare riferimento a un file caricato in una sessione di Devin:

1. **Carica il file** usando questo endpoint per ottenere un URL
2. **Includi l'URL nel prompt** quando crei una sessione o invii un messaggio
3. **Formatta correttamente l'URL** inserendo `ATTACHMENT:"{file_url}"` su una riga separata nel prompt

<div id="complete-example">
  ## Esempio completo
</div>

```python theme={null}
import os
import requests

DEVIN_API_KEY = os.getenv("DEVIN_API_KEY")

# Passaggio 1: Carica il file
with open("data.csv", "rb") as f:
    response = requests.post(
        "https://api.devin.ai/v1/attachments",
        headers={"Authorization": f"Bearer {DEVIN_API_KEY}"},
        files={"file": f}
    )
file_url = response.text

# Passaggio 2: Crea una sessione che fa riferimento al file caricato
session_response = requests.post(
    "https://api.devin.ai/v1/sessions",
    headers={"Authorization": f"Bearer {DEVIN_API_KEY}"},
    json={
        "prompt": f"""Analizza i dati nel file CSV allegato e crea un report di riepilogo.
Concentrati sull'identificazione delle tendenze e degli insight principali.

ATTACHMENT:"{file_url}"
"""
    }
)

print(session_response.json())
```

**Importante:** Il prefisso `ATTACHMENT:` deve trovarsi su una riga a sé stante nel prompt, con l'URL racchiuso tra virgolette doppie, esattamente come mostrato sopra: `ATTACHMENT:"{url}"`. Per allegare più file, aggiungi una riga `ATTACHMENT:"{file_url}"` per ogni file.


## OpenAPI

````yaml it/v1-openapi.yaml POST /v1/attachments
openapi: 3.1.0
info:
  description: Devin v1 API con API Keys personali e di servizio
  title: Devin API v1
  version: 1.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v1/attachments:
    post:
      summary: Carica allegato
      description: >-
        Carica un file allegato da utilizzare nelle sessioni di Devin.
        Restituisce l’URL dell’allegato caricato come stringa.
      operationId: upload_attachment_customer_endpoint_v1_attachments_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/Body_upload_attachment_customer_endpoint_v1_attachments_post
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                title: >-
                  Response Upload Attachment Customer Endpoint V1 Attachments
                  Post
                type: string
          description: Risposta con esito positivo
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Errore di validazione
components:
  schemas:
    Body_upload_attachment_customer_endpoint_v1_attachments_post:
      properties:
        file:
          format: binary
          title: File
          type: string
      required:
        - file
      title: Body_upload_attachment_customer_endpoint_v1_attachments_post
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
  securitySchemes:
    bearerAuth:
      description: Chiave API personale (apk_user_\*) o chiave API di servizio (apk_\*)
      scheme: bearer
      type: http

````