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

> Téléversez des fichiers que Devin pourra utiliser pendant les sessions. Prend en charge différents types de fichiers, notamment le code, les données et la documentation.

# Téléverser une pièce jointe

Cet endpoint téléverse des fichiers sur nos serveurs et renvoie une URL que vous pouvez utiliser dans les sessions Devin. Le fichier n'est pas automatiquement envoyé à une session : vous devez inclure cette URL dans vos prompts.

<div id="how-to-use-uploaded-files">
  ## Comment utiliser les fichiers téléversés
</div>

<Warning>
  Devin ne reconnaît les pièces jointes que lorsqu'elles sont écrites exactement au format `ATTACHMENT:"{file_url}"` (`ATTACHMENT` au singulier, en majuscules). La ligne `ATTACHMENT:` doit se trouver seule sur une ligne dans votre prompt, et l’URL doit être encadrée par des guillemets doubles.

  Inclure simplement l’URL brute sans ce format ne fonctionnera pas. Les variantes comme `ATTACHMENTS:` (au pluriel) ne sont pas reconnues non plus.
</Warning>

Pour faire référence à un fichier téléversé dans une session Devin :

1. **Téléversez le fichier** en utilisant cet endpoint pour obtenir une URL
2. **Incluez l’URL dans votre prompt** lors de la création d’une session ou de l’envoi d’un message
3. **Formatez correctement l’URL** en plaçant `ATTACHMENT:"{file_url}"` seule sur sa propre ligne dans votre prompt

<div id="complete-example">
  ## Exemple complet
</div>

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

DEVIN_API_KEY = os.getenv("DEVIN_API_KEY")

# Étape 1 : Télécharger le fichier
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

# Étape 2 : Créer une session qui référence le fichier téléchargé
session_response = requests.post(
    "https://api.devin.ai/v1/sessions",
    headers={"Authorization": f"Bearer {DEVIN_API_KEY}"},
    json={
        "prompt": f"""Veuillez analyser les données du fichier CSV joint et créer un rapport de synthèse.
Concentrez-vous sur l'identification des tendances et des insights clés.

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

print(session_response.json())
```

**Important :** Le préfixe `ATTACHMENT:` doit figurer sur une ligne dédiée dans le prompt, avec l’URL entre guillemets doubles, exactement comme indiqué ci-dessus : `ATTACHMENT:"{url}"`. Pour joindre plusieurs fichiers, ajoutez une ligne `ATTACHMENT:"{file_url}"` par fichier.


## OpenAPI

````yaml fr/v1-openapi.yaml POST /v1/attachments
openapi: 3.1.0
info:
  description: API Devin v1 avec clés d’API personnelles et de service
  title: Devin API v1
  version: 1.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v1/attachments:
    post:
      summary: Téléverser une pièce jointe
      description: >-
        Téléversez un fichier pouvant être utilisé dans les sessions Devin.
        Retourne l’URL du fichier téléversé sous forme de chaîne de caractères.
      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: Réponse réussie
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Erreur de validation
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: Clé d’API personnelle (apk_user_\*) ou clé d’API de service (apk_\*)
      scheme: bearer
      type: http

````