# Datotecas

Models che prendan maletgs, video u audio als acceptan en ina da trais furmas. Mintga pagina da model marca ses parameters da datotecas (per exempel `image`, `images`, `videos`, `audios`).

## 1. In URL public

Mintga URL `https://` (u `http://`) che il model po telechargiar:

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

La datoteca sto esser cuntanschibla senza cookies u login e restar cuntanschibla fin che la dumonda è cumenzada. Mintga pagina da model enumerescha las limitas da grondezza e dimensiun da ses parameters da datotecas.

## 2. In data URI

Pitschnas datotecas pon vegnir integradas sco URI `data:` fin a 10 MB:

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

Base64 engrondescha il corp per circa in terz cumpareglià cun la datoteca, perquai preferescha chargiadas per tut quai ch'è grond.

## 3. Ina chargiada

Per datotecas localas, dumonda in URL da chargiada, fa `PUT` dals bytes a quest lieu e transmetta il `file_url` returnà al model. Crear l'URL da chargiada è gratuit.

```bash 1 · Obtegna in URL da chargiada
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 · chargiada
{
  "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 · Chargia ils bytes cun exactamain ils headers returnads
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Utilisescha file_url sco input dal model
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": "..."}'
```

- Chargiadas sustegnidas: `.jpg`, `.jpeg`, `.png`, `.webp` (fin a 15 MB) e `.mp4`, `.mov`, `.webm` (fin a 200 MB). L'extensiun fixescha il tip; `content_type` sto correspunder ad ella.
- L'URL da chargiada è valid per ina ura. Il `file_url` resta valid.
- Per audio, utilisescha in URL public u ina data URI.

## Datotecas d'output

> [!TIP]
> Datotecas generadas vegnan copiada en nossa memorisaziun e returnadas en `outputs[].url` sco colliaziuns sin `content.doitong.com`. Ti pos transmetter ellas directamain ad in auter model, per exempel in maletg d'in model text-to-image ad in model image-to-video.

Ti tschernas quant ditg che las datotecas d'output vegnan tegnidas:

- **Per adina** (`permanent`, il standard): fin che ti las stizzas, per 100 credits API ($0,10) per GB e mais, chargiads ina giada per di dal saldo API (1 GB = 1024³ bytes).
- **7 dis** (`temporary`): gratuit, lura stizzà da nossa memorisaziun.

Definescha il standard cun l'interruptur "Conservar las datotecas per adina" en il [dashboard](https://doitong.com/developers/dashboard#balance) u cun `PATCH /account/storage`, e surpiglia'l per execuziun cun `?storage=temporary` (u `permanent`):

```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"}'
```

Mintga dumonda mussa sia atgna `storage` (`mode`, `bytes`, `expires_at`, `expired`). La configuraziun vala per novas dumondas; datotecas che ti tegns gia per adina restan fin che ti las stizzas cun `DELETE /requests/{id}/files` (vesair [Dumondas](https://doitong.com/developers/docs/requests#delete-files)). Sch'il saldo API na po betg pajar la memorisaziun, survegns in e-mail e 30 dis per chargiar danovamain avant che las datotecas tegnidas daventan temporaras.
