# MIME Types API
> The canonical MIME / media-type database (the jshttp mime-db used by Express and most of the Node ecosystem: IANA + Apache + nginx), served from memory — no key. Resolve a media type to its file extensions, charset and compressibility; reverse-lookup the media type(s) for a file extension (e.g. png → image/png); and search or list types by source. 2,600+ media types, 1,000+ with file extensions. Lean, predictable JSON. Ideal for upload validation, Content-Type resolution, file-type detection, download handlers and developer tooling.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/mimetypes-api/..."
```

## Pricing
- **Free** (Free) — 20,000 calls/Mo, 3 req/s
- **Starter** ($4/Mo) — 200,000 calls/Mo, 8 req/s
- **Pro** ($10/Mo) — 1,000,000 calls/Mo, 20 req/s
- **Mega** ($25/Mo) — 5,000,000 calls/Mo, 50 req/s

## Endpoints

### MIME

#### `GET /v1/extension` — Media type(s) for a file extension

**Parameters:**
- `ext` (query, required, string) — A file extension (with or without dot) Example: `png`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mimetypes-api/v1/extension?ext=png"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "types": [
            {
                "type": "image/png",
                "source": "iana",
                "charset": null,
                "extensions": [
                    "png"
                ],
                "compressible": false
            }
        ],
        "primary": "image/png",
        "extension": "png"
    },
    "meta": {
        "timestamp": "2026-06-08T18:25:15.001Z",
        "request_id": "37279b09-9d1c-4ff8-9af3-45494768552f"
    },
    "status": "ok",
    "message": "Extension resolved successfully",
    "success": true
}
```

#### `GET /v1/list` — List media types

**Parameters:**
- `source` (query, optional, string) — iana | apache | nginx | none Example: `nginx`
- `limit` (query, optional, string) — Max (1-200, default 50) Example: `50`
- `offset` (query, optional, string) — Offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mimetypes-api/v1/list?source=nginx&limit=50&offset=0"
```

**Response:**
```json
{
    "data": {
        "count": 13,
        "total": 13,
        "types": [
            "application/x-cocoa",
            "application/x-java-archive-diff",
            "application/x-makeself",
            "application/x-perl",
            "application/x-pilot",
            "application/x-redhat-package-manager",
            "application/x-sea",
            "audio/x-m4a",
            "audio/x-realaudio",
            "image/x-jng",
            "image/x-ms-bmp",
            "text/mathml",
            "text/x-component"
        ],
        "source": "nginx"
    },
    "meta": {
        "timestamp": "2026-06-08T18:25:15.108Z",
        "request_id": "95d369e2-b87c-4664-a51b-c17656393257"
    },
    "status": "ok",
    "message": "Types listed successfully",
    "success": true
}
```

#### `GET /v1/search` — Search media types

**Parameters:**
- `q` (query, required, string) — Substring to search (min 2 chars) Example: `image`
- `source` (query, optional, string) — Filter by source: iana, apache, nginx, none Example: `iana`
- `limit` (query, optional, string) — Max results (1-100, default 25) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mimetypes-api/v1/search?q=image&source=iana&limit=25"
```

**Response:**
```json
{
    "data": {
        "count": 25,
        "query": "image",
        "total": 92,
        "results": [
            {
                "type": "application/vnd.3lightssoftware.imagescal",
                "source": "iana",
                "charset": null,
                "extensions": [],
                "compressible": null
            },
            {
                "type": "application/vnd.fastcopy-disk-image",
                "source": "iana",
                "charset": null,
                "extensions": [],
                "compressible": null
            },
            {
                "type": "application/vnd.imagemeter.folder+zip",
                "source": "iana",
                "charset": null,
                "extensions": [],
                "compressible": false
            },
            {
                "type": "application/vnd.imagemeter.image+zip",
                "source": "iana",
                "charset": null,
                "extensions": [],
                "compressible": false
            },
            {
                "type": "application/vnd.msa-disk-image",
                "source": "iana",
                "charset": null,
                "extensions": [],
                "compressible": null
            },
            {
                "type": "application/vnd.oasis.opendocument.image",
                "source": "iana",
                "charset": null,
                "extensions": [
                    "odi"
                ],
             
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/type` — Media-type detail by name

**Parameters:**
- `name` (query, required, string) — A MIME / media type Example: `application/json`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mimetypes-api/v1/type?name=application%2Fjson"
```

**Response:**
```json
{
    "data": {
        "mime": {
            "type": "application/json",
            "source": "iana",
            "charset": "UTF-8",
            "extensions": [
                "json",
                "map"
            ],
            "compressible": true
        }
    },
    "meta": {
        "timestamp": "2026-06-08T18:25:15.344Z",
        "request_id": "0bb590fc-9f00-4d1a-a2c5-7e51bd568ff1"
    },
    "status": "ok",
    "message": "Media type retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Spec & dataset stats

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/mimetypes-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "service": "mimetypes-api",
        "sources": {
            "iana": 2215,
            "none": 98,
            "nginx": 13,
            "apache": 275
        },
        "endpoints": {
            "GET /v1/list": "List media types (source=iana|apache|nginx|none; limit, offset).",
            "GET /v1/meta": "This document.",
            "GET /v1/type": "Media-type detail by name (name=, e.g. application/json).",
            "GET /v1/search": "Search media types (q=, min 2 chars; source=).",
            "GET /v1/extension": "Media type(s) for a file extension (ext=, e.g. png)."
        },
        "description": "Canonical MIME / media-type database (jshttp mime-db: IANA + Apache + nginx): resolve a media type to its file extensions, charset and compressibility, reverse-lookup the media type for a file extension, search and list types by source. No key.",
        "total_types": 2601,
        "total_extensions": 1302,
        "types_with_extensions": 1025
    },
    "meta": {
        "timestamp": "2026-06-08T18:25:15.465Z",
        "request_id": "8f96d749-cd99-465d-882a-4022c7445ea5"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/mimetypes-api
OpenAPI spec: https://www.oanor.com/api/mimetypes-api/openapi.json
