# Extract from AVIFS

Use this extractor for `.avifs` files. It can extract EXIF data, GPS data & map, QR codes and barcodes, color palette, ICC profiles, text, frames into a ZIP result.

## Quick reference

| Field | Value |
| --- | --- |
| Source file type | `.avifs` |
| Source group | Images |
| Submit endpoint | `POST https://api.tools.fast/extract` |
| Estimate endpoint | `POST https://api.tools.fast/extract/estimate/avifs` |
| Result | ZIP download |
| Default capabilities | `image.exif`, `image.gps`, `image.codes`, `image.colors`, `image.profiles`, `image.text`, `image.frames` |
| Max file size | free: 50 MB; pro: 2048 MB |
| Document limits | Not applicable |
| Duration limits | Not applicable |

## Capabilities

| Capability | Default | Options | Pricing | Description |
| --- | --- | --- | --- | --- |
| `image.exif` | Yes | None | Included | EXIF-style metadata exported as JSON and CSV. |
| `image.gps` | Yes | None | Included | GPS coordinates plus a downloadable map when stored in the source file. |
| `image.codes` | Yes | None | Included | QR codes and barcodes found in the file. |
| `image.colors` | Yes | None | Included | Dominant colors and palette information. |
| `image.profiles` | Yes | None | Included | ICC profiles and color management data. |
| `image.text` | Yes | None | Included | Text recognized from screenshots, photos, and scanned images with Fast AI OCR. |
| `image.frames` | Yes | `frameMode`, `frameIntervalSeconds`, `maxExtractedFrames` | Included | Extract frames and timing data when present. |


## Capability options

### Frames

| Option | Type | Default | Allowed values | Limits |
| --- | --- | --- | --- | --- |
| `frameMode` | `enum` | `evenly-spaced` | `evenly-spaced`, `first`, `every-n-seconds` | None |
| `frameIntervalSeconds` | `number` | `1` | Any value within limits | 0.1 to 300 |
| `maxExtractedFrames` | `integer` | `500` | Any value within limits | 1 to 2000 |

## Options payload with all capabilities

Use this shape when you want to explicitly configure every supported output for this source type.

```json
{
  "extraction": {
    "selectedCapabilities": [
      "image.exif",
      "image.gps",
      "image.codes",
      "image.colors",
      "image.profiles",
      "image.text",
      "image.frames"
    ],
    "includeManifest": true,
    "capabilityOptions": {
      "image.frames": {
        "frameMode": "every-n-seconds",
        "frameIntervalSeconds": 5,
        "maxExtractedFrames": 100
      }
    }
  }
}
```

## Estimate example

```bash
curl -sS -X POST "https://api.tools.fast/extract/estimate/avifs" \
  -H "X-Fast-Api-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileSizeMb": 8,
  "frameCount": 30,
  "options": {
    "extraction": {
      "selectedCapabilities": [
        "image.exif",
        "image.gps",
        "image.codes",
        "image.colors",
        "image.profiles",
        "image.text",
        "image.frames"
      ],
      "includeManifest": true,
      "capabilityOptions": {
        "image.frames": {
          "frameMode": "every-n-seconds",
          "frameIntervalSeconds": 5,
          "maxExtractedFrames": 100
        }
      }
    }
  }
}'
```

## Extract example with all options configured

```bash
curl -sS -X POST "https://api.tools.fast/extract" \
  -H "X-Fast-Api-Key: $API_KEY" \
  -F "file=@input.avifs" \
  -F 'options={
  "extraction": {
    "selectedCapabilities": [
      "image.exif",
      "image.gps",
      "image.codes",
      "image.colors",
      "image.profiles",
      "image.text",
      "image.frames"
    ],
    "includeManifest": true,
    "capabilityOptions": {
      "image.frames": {
        "frameMode": "every-n-seconds",
        "frameIntervalSeconds": 5,
        "maxExtractedFrames": 100
      }
    }
  }
}'
```

## Machine-readable discovery

```http
GET /options/avifs
GET /extractors/avifs
```
