# Filer

Modeller som tar emot bilder, video eller ljud accepterar dem i någon av tre former. Varje modellsida markerar dess filparametrar (till exempel `image`, `images`, `videos`, `audios`).

## 1. En offentlig URL

Valfri `https://`- (eller `http://`-) URL som modellen kan hämta:

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

Filen måste vara åtkomlig utan cookies eller inloggning och förbli åtkomlig tills begäran har startat. Varje modellsida listar storleks- och dimensionsgränserna för dess filparametrar.

## 2. En data-URI

Små filer kan bäddas in som en `data:`-URI på upp till 10 MB:

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

Base64 gör body ungefär en tredjedel större än filen, så föredra uppladdningar för allt stort.

## 3. En uppladdning

För lokala filer begär du en uppladdnings-URL, gör `PUT` av byten dit och skickar den returnerade `file_url` till modellen. Det är gratis att skapa uppladdnings-URL:en.

```bash 1 · Hämta en uppladdnings-URL
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 · uppladdning
{
  "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 · Ladda upp byten med exakt de returnerade header-parametrarna
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Använd file_url som modellens indata
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": "..."}'
```

- Uppladdningar som stöds: `.jpg`, `.jpeg`, `.png`, `.webp` (upp till 15 MB) och `.mp4`, `.mov`, `.webm` (upp till 200 MB). Tillägget anger typen; `content_type` måste matcha den.
- Uppladdnings-URL:en är giltig i en timme. `file_url` förblir giltig.
- För ljud använder du en offentlig URL eller en data-URI.

## Utdatafiler

> [!TIP]
> Genererade filer kopieras till vår lagring och returneras i `outputs[].url` som länkar på `content.doitong.com`. Du kan skicka dem direkt till en annan modell, till exempel en bild från en text-till-bild-modell till en bild-till-video-modell.

Du väljer hur länge utdatafiler sparas:

- **För alltid** (`permanent`, standard): tills du tar bort dem, för 100 API-krediter (0,10 $) per GB och månad, debiteras en gång om dagen från API-saldot (1 GB = 1024³ byte).
- **7 dagar** (`temporary`): gratis, därefter raderas de från vår lagring.

Ange standardinställningen med reglaget "Spara filer för alltid" i [instrumentpanelen](https://doitong.com/developers/dashboard#balance) eller med `PATCH /account/storage`, och åsidosätt den per körning med `?storage=temporary` (eller `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"}'
```

Varje begäran visar sin egen `storage` (`mode`, `bytes`, `expires_at`, `expired`). Inställningen gäller nya begäranden; filer du redan behåller för alltid finns kvar tills du tar bort dem med `DELETE /requests/{id}/files` (se [Begäranden](https://doitong.com/developers/docs/requests#delete-files)). Om API-saldot inte kan betala för lagring får du ett e-postmeddelande och 30 dagar på dig att fylla på innan sparade filer blir tillfälliga.
