CHARCOAL API Endpoint

Version 2.197 (Release Notes ↗)

Description

Simulates a charcoal drawing effect with the CHARCOAL API endpoint, ideal for developers and creators looking to enhance visual projects. Simulates a charcoal drawing.

HTTP Methods

GET, POST

HTTP Parameters

Required

Fields Type Description
img URL Input image URL. If you want to upload your image directly from your app, then submit a multipart/form-data POST request.
radius Float The radius of the Gaussian, in pixels, not counting the center pixel (Max value is set to 10).
sigma Float The standard deviation of the Gaussian, in pixels (Max value is set to 100).
key String Your PixLab API Key ↗. You can also embed your key in the WWW-Authenticate: HTTP header and omit this parameter if you want to.

Optional

Fields Type Description
blob Boolean By default, this API endpoint returns a JSON Object holding the link to the image output. If set to true, the image binary contents are returned instead.

POST Request Body

Use this if you plan to use POST instead of a simple GET request.

Allowed Content-Types:

multipart/form-data
application/json

Use multipart/form-data for direct image uploads (refer to the REST API code samples or The PixLab Github Repository↗ for a working example). For JSON, ensure your image is already hosted. Call store to upload an image before invoking this endpoint.

HTTP Response

Fields Type Description
status Integer Status code 200 indicates success, any other code indicates failure.
link URL Link to the image output which is usually stored on the pixlab.xyz storage server unless you set your own S3 keys (refer to your dashboard ↗ on how to do that).
id String Unique image ID.
error String Error message if status != 200.

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

This endpoint returns a JSON Object after each call only if the optional blob parameter is omitted. Otherwise, raw image binary data is returned directly.

Code Samples


import requests


def fetch_charcoal_effect(image_url: str, radius: int, sigma: float, api_key: str) -> None:
    base_url = 'https://api.pixlab.io/charcoal'
    params = {
        'img': image_url,
        'radius': radius,
        'sigma': sigma,
        'key': api_key
    }
    
    try:
        response = requests.get(base_url, params=params, timeout=10)
        response.raise_for_status()
        data = response.json()
        
        if data['status'] != 200:
            print(f"Error: {data.get('error', 'Unknown error')}")
        else:
            print(f"Link to the picture: {data['link']}")
            
    except requests.exceptions.RequestException as e:
        print(f"Request failed: {e}")
    except (KeyError, ValueError) as e:
        print(f"Error processing response: {e}")


if __name__ == '__main__':
    fetch_charcoal_effect(
        image_url='http://www.drodd.com/images15/nature31.jpg',
        radius=6,
        sigma=2.6,
        api_key='PIXLAB_API_KEY'
    )
← Return to API Endpoint Listing