NEWVectors or files. Pick a path.Start →
    data

    Image
    Alt Text
    Converter

    Generate WCAG-compliant alt text for images using a vision-language model fine-tuned for accessibility. Produces concise, descriptive text that conveys the meaning and function of images for screen reader users, with support for context-aware and decorative image detection.

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

    How It Works

    1

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

    2

    The image is classified as informative, decorative, functional, or complex.

    3

    A vision-language model generates alt text appropriate to the image type and context.

    4

    The alt text is checked against WCAG 2.1 guidelines for length, specificity, and relevance.

    5

    Alt text is returned with the image classification and a compliance confidence score.

    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-alt-text",
        "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

    Automate WCAG compliance for large websites with thousands of images
    Generate alt text for e-commerce product image catalogs at scale
    Ensure accessibility compliance for user-generated content platforms
    Remediate legacy content by batch-generating alt text for existing images

    Supported Input Formats

    JPEG
    PNG
    WebP
    TIFF
    BMP

    Quick Info

    Categorydata
    Max File Size50 MB
    Est. Time1-3 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 alt text?

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