NEWVectors or files. Pick a path.Start →
    data

    Image
    Categories
    Converter

    Classify images into hierarchical category taxonomies using a vision-language model. Supports standard taxonomies like IAB Content Taxonomy, Google Product Categories, and custom category trees with multi-label classification and confidence scoring.

    Max file size: 50 MB
    Estimated: 1-4 sec per image
    5 input formats

    How It Works

    1

    Upload an image or provide a URL to the Mixpeek API.

    2

    A vision-language model analyzes the image content and composition.

    3

    The image is scored against each category in your selected taxonomy.

    4

    Multi-label classification assigns all relevant categories above the confidence threshold.

    5

    Hierarchical category paths are returned with confidence scores at each level.

    Code Examples

    import os, requests
    
    API = "https://api.mixpeek.com"
    H = {"Authorization": f"Bearer {os.environ['MIXPEEK_API_KEY']}",
         "X-Namespace": os.environ["NAMESPACE_ID"]}
    
    # 1. a bucket, with a schema that declares the field you will send
    bucket = requests.post(f"{API}/v1/buckets", headers=H, json={
        "bucket_name": "image-inputs",
        "bucket_schema": {"properties": {"image": {"type": "image"}}},
    }).json()
    
    # 2. land the file as an object. the URL goes in data, on the blob
    requests.post(f"{API}/v1/buckets/{bucket['bucket_id']}/objects", headers=H, json={
        "key_prefix": "run-1",
        "blobs": [{"property": "image", "type": "image",
                   "data": "https://example.com/photo.jpg"}],
    })
    
    # 3. a collection over that bucket, running the extractor
    collection = requests.post(f"{API}/v1/collections", headers=H, json={
        "collection_name": "image-to-categories",
        "source": {"type": "bucket", "bucket_ids": [bucket["bucket_id"]]},
        "feature_extractor": {"feature_extractor_name": "image_extractor", "version": "v1"},
    }).json()
    
    # 4. run extraction over the bucket
    requests.post(f"{API}/v1/buckets/{bucket['bucket_id']}/batches", headers=H, json={
        "collection_ids": [collection["collection_id"]],
        "auto_submit": True,
    })
    
    # 5. read the output
    docs = requests.get(
        f"{API}/v1/collections/{collection['collection_id']}/documents", headers=H
    ).json()
    print(docs)

    Use Cases

    Classify product images into Google Product Categories for shopping feeds
    Categorize user-uploaded photos for content recommendation engines
    Map stock photography to IAB categories for programmatic ad targeting
    Organize medical images into diagnostic category hierarchies

    Supported Input Formats

    JPEG
    PNG
    WebP
    TIFF
    BMP

    Quick Info

    Categorydata
    Max File Size50 MB
    Est. Time1-4 sec per image

    Processing millions of files?

    Run this as a managed pipeline over your whole library, no infrastructure to build or maintain. Talk to us about processing at scale.

    Run it over a library

    Mixpeek runs this conversion as a pipeline over a whole library in your object storage, with the output landing as queryable documents. It is not a single-file converter.

    Frequently Asked Questions

    Ready to convert image to categories?

    Start using the Mixpeek Image to Categories in minutes. Sign up for a free API key and follow the documentation to get started.