BLUR API Endpoint

Version 2.197 (Release Notes ↗)

Description

BLUR API endpoint adds a blur filter to images, ideal for censoring offensive content when used with media analysis endpoints like nsfw.

Adds blur filter to image. This API endpoint is useful if mixed with some media analysis endpoints such as nsfw to censure (i.e. filter) offensive contents.

HTTP Methods

GET, POST

HTTP Parameters

Required
FieldsTypeDescription
imgURLInput image URL. If you want to upload your image directly from your app, then submit a multipart/form-data POST request.
radiusFloatBlur radius (Max value is set to 100.00).
sigmaFloatStandard deviation (Max value is set to 200.00).
keyStringYour PixLab API Key ↗. You can also embed your key in the WWW-Authenticate: HTTP header and omit this parameter if you want to.
Optional
FieldsTypeDescription
blobBooleanBy default, this command return a JSON object holding the link to the image output. But, if this parameter is set to true then the image binary contents is returned instead.
channelIntegerColor channel constant. If this field is missing (Recommended), then all image channels will be affected (See below for the list of channels constant).
POST Request Body (If you plan to use POST instead of a simple GET request)

Allowed Content-Type:

multipart/form-data
application/json

Use multipart/form-data if you want to upload your image directly (refer to the REST API code samples for a working example). If you are using JSON, then your image must be already uploaded somewhere. Call store if you want to upload an image for example before invoking this endpoint.

Channels Constant
We recommend that you always omit this parameter and let PixLab affect all image channels.
FieldsValue
CHANNEL_RED1
CHANNEL_GRAY1
CHANNEL_CYAN1
CHANNEL_GREEN2
CHANNEL_MAGENTA2
CHANNEL_BLUE4
CHANNEL_YELLOW4
CHANNEL_ALPHA8
CHANNEL_OPACITY8
CHANNEL_MATTE8
CHANNEL_BLACK32
CHANNEL_INDEX32
CHANNEL_ALL134217727

HTTP Response

The BLUR endpoint returns application/json if the optional blob parameter is not set.

This endpoint returns a JSON Object unless the blob parameter is specified, in which case it returns the raw image binary. The response JSON contains the following fields:

Fields Type Description
status Integer Status code 200 indicates success, any other code indicates failure.
link URL Link to the processed image stored on pixlab.xyz storage unless custom S3 keys are configured (see your dashboard ↗ for configuration).
id String Unique image identifier.
error String Error message when status != 200.

Code Samples


import requests


def censor_image(image_url: str, radius: int = 50, sigma: int = 30) -> str:
    api_key = "PIXLAB_API_KEY"  # Consider using environment variables for API keys
    params = {
        "img": image_url,
        "radius": radius,
        "sigma": sigma,
        "key": api_key,
    }
    
    try:
        response = requests.get(
            "https://api.pixlab.io/blur",
            params=params,
            timeout=10
        )
        response.raise_for_status()
        data = response.json()
        
        if data["status"] != 200:
            raise ValueError(data.get("error", "Unknown error occurred"))
            
        return data["link"]
    
    except requests.exceptions.RequestException as e:
        raise ConnectionError(f"Failed to connect to API: {e}") from e


if __name__ == "__main__":
    try:
        blurred_image_url = censor_image(
            "https://www.allaboutbirds.org/guide/PHOTO/LARGE/blue_jay_8.jpg"
        )
        print(f"Link to the blurred picture: {blurred_image_url}")
    except Exception as e:
        print(f"Error: {e}")
← Return to API Endpoint Listing