The official Python SDK for Optidash API

Head over to the Optidash API docs for a full API reference.

Installation

$ pip install optidash

Quick examples

Optidash API enables you to provide your images for processing in two ways - by uploading them directly to the API (Image Upload) or by providing a publicly available image URL (Image Fetch).

You may also choose your preferred response method on a per-request basis. By default, the Optidash API will return a JSON response with rich metadata pertaining to input and output images. Alternatively, you can use binary responses. When enabled, the API will respond with a full binary representation of the resulting (output) image. This Python integration exposes two convenience methods for interacting with binary responses: .toFile() and .toBuffer().

Image upload

Here is a quick example of uploading a local file for optimization and processing. It calls .toJSON() at a final step and instructs the API to return a JSON response.

from optidash import optidash

# Pass your Optidash API Key to the constructor
client = optidash('your-api-key')

# Upload an image from disk, resize it to 100 x 75,
# automatically enhance, and adjust sharpness parameter.
# You'll find the full JSON metadata within the `meta` variable
err, meta = (
    client
        .upload('path/to/input.jpg')
        .optimize({
            'compression': 'medium'
        })
        .resize({
            'width': 100,
            'height': 75
        })
        .auto({
            'enhance': True
        })
        .adjust({
            'unsharp': 10
        })
        .toJSON()
)

if err is not None:
    raise StandardError(err)

Image fetch

If you already have your source visuals publicly available online, we recommend using Image Fetch by default. That way you only have to send a JSON payload containing image URL and processing steps. This method is also much faster than uploading a full binary representation of the image.

from optidash import optidash

# Pass your Optidash API Key to the constructor
client = optidash('your-api-key')

# Provide a publicly available image URL with `.fetch()` method,
# apply Gaussian blur using highly optimized PNG as the output format.
# We'll also use `.toFile()` method and stream the output image to disk
err, meta = (
    client
        .fetch('https://www.website.com/image.jpg')
        .optimize({
            'compression': 'medium'
        })
        .filter({
            'blur': {
                'mode': 'gaussian',
                'value': 10
            }
        })
        .output({
            'format': 'png'
        })
        .toFile('path/to/output.png')
)

if err is not None:
    raise StandardError(err)

Ready to try Optidash?

Start optimizing your images smarter. Integrate in minutes.