# Dateien

Modeller, déi Biller, Video oder Audio huelen, akzeptéieren se an enger vun dräi Formen. All Modell-Säit markéiert seng Datei-Parameteren (zum Beispill `image`, `images`, `videos`, `audios`).

## 1. Eng ëffentlech URL

All `https://`- (oder `http://`-) URL, déi de Modell erofluede kann:

```json
{ "image": "https://example.com/photos/product.jpg" }
```

D'Datei muss ouni Cookien oder Login erreechbar sinn a muss erreechbar bleiwen, bis d'Ufro gestart ass. All Modell-Säit list d'Gréisst- an Dimensiounslimite vu sengen Datei-Parameteren op.

## 2. Eng Data-URI

Kleng Dateie kënnen inline als `data:`-URI mat bis zu 10 MB geschéckt ginn:

```json
{ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." }
```

Base64 mécht de Kierper ongeféier en Drëttel méi grouss wéi d'Datei, dofir si fir grouss Dateien Uploads ze recommandéieren.

## 3. En Upload

Fir lokal Dateien, frot eng Upload-URL un, maacht e `PUT` vun de Bytes dohinner a gitt dem Modell déi zeréckginn `file_url` weider. D'Erstelle vun der Upload-URL ass gratis.

```bash 1 · Eng Upload-URL ufroen
curl -X POST "https://api.doitong.com/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "product.jpg", "content_type": "image/jpeg", "size": 482113}'
```

```json 201 Created · Upload
{
  "object": "upload",
  "upload_url": "https://…signed upload URL…",
  "file_url": "https://content.doitong.com/…/product.jpg",
  "method": "PUT",
  "headers": { "Content-Type": "image/jpeg" },
  "content_type": "image/jpeg",
  "expires_in": 3600,
  "max_bytes": 15728640
}
```

```bash 2 · D'Bytes mat genee de zeréckginen Header eroplueden
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · file_url als Modell-Input benotzen
curl -X POST "https://api.doitong.com/v1/run/{model_id}?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://content.doitong.com/…/product.jpg", "prompt": "..."}'
```

- Ënnerstëtzt Uploads: `.jpg`, `.jpeg`, `.png`, `.webp` (bis zu 15 MB) an `.mp4`, `.mov`, `.webm` (bis zu 200 MB). D'Extensioun setzt den Typ; `content_type` muss domat iwwerstëmmen.
- D'Upload-URL ass eng Stonn gülteg. `file_url` bleift gülteg.
- Fir Audio benotzt eng ëffentlech URL oder eng Data-URI.

## Output-Dateien

> [!TIP]
> Generéiert Dateie ginn an eis Späicherung kopéiert an an `outputs[].url` als Linken op `content.doitong.com` zeréckginn. Dir kënnt se direkt an en anere Modell weiderginn, zum Beispill e Bild vun engem Text-to-Image-Modell an en Image-to-Video-Modell.

Dir wielt, wéi laang Output-Dateie behale ginn:

- **Fir ëmmer** (`permanent`, de Standard): bis Dir se läscht, fir 100 API-Kreditter (0,10 $) pro GB pro Mount, eemol den Dag vum API-Saldo verrechent (1 GB = 1024³ Bytes).
- **7 Deeg** (`temporary`): gratis, duerno aus eiser Späicherung geläscht.

Setzt de Standard mam Schalter "Fichiere fir ëmmer behalen" am [Dashboard](https://doitong.com/developers/dashboard#balance) oder mat `PATCH /account/storage` a setzt en pro Laf mat `?storage=temporary` (oder `permanent`) ausser Kraaft:

```bash
curl -X PATCH "https://api.doitong.com/v1/account/storage" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "temporary"}'
```

All Ufro weist hir eege `storage` (`mode`, `bytes`, `expires_at`, `expired`). D'Astellung gëllt fir nei Ufroen; Dateien, déi Dir scho fir ëmmer behält, bleiwen, bis Dir se mat `DELETE /requests/{id}/files` läscht (kuckt [Ufroen](https://doitong.com/developers/docs/requests#delete-files)). Wann den API-Saldo d'Späicherung net bezuele kann, kritt Dir eng E-Mail an 30 Deeg fir opzelueden, ier déi behalen Dateien temporär ginn.
