API Documentation
  • Welcome!
  • Quick Start
  • API methods
  • Easy integration
  • Handling Large File Sets
  • Supported formats
  • Webhooks
  • Common usecases
    • Auto enhance image quality
    • Create business photo or avatar from face image
    • Face swap
    • Create beautiful product photo
    • Genarate image in high resolution
    • Remove background
    • AI Drawing to Image - Doodle
    • Real estate
    • Enhancing documents
    • Car dealer photo
  • Image processing
    • Resize and padding
    • Denoise and sharpen
    • Enhance lighting and colors
    • Enhance face details
    • Background removal and generation
    • Image generation
    • Inpainting and outpainting (uncrop)
    • Frame identification
    • Print
    • Captions
    • Additional parameters
    • Presets
  • Account & settings
    • Account information
  • storages
    • Description
    • AWS S3
    • AWS S3 IAM Configuration
  • Presets
    • E-commerce
    • Real-estate
    • Print/Photo
    • Digital Art
  • Technology
    • Algorithms
    • Upscale
    • Background removal
      • Remove BG recommendation
    • Sharpen & Noise reduction
    • Enhance Lighting
  • FAQ
Powered by GitBook
On this page
  • Get your API keys
  • Python library
  • Make your first request

Quick Start

Rapid integration and API access.

PreviousWelcome!NextAPI methods

Last updated 2 months ago

We've developed a seamless transition process for the deployment of the product that will allow you to onboard without stress or delay. Our internal team will work with you to establish a specific timeline for complete deployment and will support you throughout the process.

Get your API keys

Your API requests are authenticated using API key. Any request that doesn't include an API key will return an error.

You need to replace API_KEY variable with your real API KEY from

You can get your API key in your profile after creating an account in .

Python library

We also provide python library which simplifies usage of the deep-image.ai API. You can get it here:

Make your first request

The API comes in two flavours: form-data and json.

When sending the image in json request, image can be put into url field and has to be base64 encoded.

Let's see example for denoising, deblurring, enhancing lighting and upscaling to width equals 2000px.

curl --request POST \
     --url https://deep-image.ai/rest_api/process_result \
     --header 'content-type: application/json' \
     --header 'x-api-key: API_KEY' \
     --data '{
         "url": "https://deep-image.ai/api-example.png",
         "enhancements": ["denoise", "deblur", "light"],
         "width": 2000
      }'

curl --request POST
    --url https://deep-image.ai/rest_api/process_result \
    --header 'content-type: application/json' \
    --header 'x-api-key: API_KEY' \
    --data '{
        "url": "base64,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MgECABQAAACqAAAAaYcEAAEAAAC+AAAAAAAAAAgACAAIACwBAAABAAAALAEAAAEAAABHSU1QIDIuMTAuMzQAADIwMjQ6MDM6MTMgMTQ6MTY6MjMAAQABoAMAAQAAAAEAAAAAAAAAWE1QIPAMAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjdiYzdlY2IwLWMyODUtNDcxZS04NDVkLTA4NmI2MWU4MjEzNCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphMTkxNGYwNC1mZjg1LTQ4ZmMtOTkwYy02MTVlYzNhNjc1M2YiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4NGI1NjQ1Mi0wMTgwLTRjNDctOWMxYy04OWYyYjlkNDIyMDIiIGRjOkZvcm1hdD0iaW1hZ2Uvd2VicCIgR0lNUDpBUEk9IjIuMCIgR0lNUDpQbGF0Zm9ybT0iTGludXgiIEdJTVA6VGltZVN0YW1wPSIxNzEwMzM1NzkxODEwNDkyIiBHSU1QOlZlcnNpb249IjIuMTAuMzQiIHRpZmY6T3JpZW50YXRpb249IjEiIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0OjAzOjEzVDE0OjE2OjIzKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNDowMzoxM1QxNDoxNjoyMyswMTowMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDpjaGFuZ2VkPSIvIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY2MTk5YzNhLWM1YTItNGI1ZS04NGMyLTQ4NGU4NDI1NTk3YSIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiIHN0RXZ0OndoZW49IjIwMjQtMDMtMTNUMTQ6MTY6MzErMDE6MDAiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz4=",
        "enhancements": ["denoise", "deblur", "light"],
        "width": 2000
    }'
curl --location \
     --request POST \
     --url https://deep-image.ai/rest_api/process_result \
     --header 'x-api-key: API_KEY' \
     --form 'file=@"LOCAL_FILE_PATH"' \
     --form parameters="{\"width\": 1000}"
const fs = require('fs');
const path = require('path');
const axios = require('axios');
const https = require('https');
const http = require('http');

const API_KEY = 'REPLACE_WITH_YOUR_API_KEY';
const YOUR_LOCAL_FILE_TO_SEND = 'YOUR_LOCAL_FILE_TO_SEND'; // Replace with your file path

const headers = {
  'x-api-key': API_KEY,
};

const requestData = {
  enhancements: ['denoise', 'deblur', 'light'],
  url: 'https://deep-image.ai/api-example.png', // Replace with your image URL if different
  width: 2000,
};

const dataDumped = { parameters: JSON.stringify(requestData) };

const downloadFile = (url, outputPath) => {
  const file = fs.createWriteStream(outputPath);
  const protocol = url.startsWith('https') ? https : http;

  protocol.get(url, (response) => {
    response.pipe(file);
    file.on('finish', () => {
      file.close();
    });
  });
};

const processImage = async () => {
  try {
    const response = await axios.post('https://deep-image.ai/rest_api/process_result', dataDumped, {
      headers,
    });

    if (response.status === 200 && response.data.status === 'complete') {
      const resultUrl = response.data.result_url;
      const fileName = path.basename(resultUrl);
      downloadFile(resultUrl, fileName);
    } else if (['received', 'in_progress', 'not_started'].includes(response.data.status)) {
      let jobResponse = response.data;
      while (['received', 'in_progress', 'not_started'].includes(jobResponse.status)) {
        const jobStatusResponse = await axios.get(
          `https://deep-image.ai/rest_api/result/${jobResponse.job}`,
          { headers }
        );
        jobResponse = jobStatusResponse.data;
        if (['received', 'in_progress', 'not_started'].includes(jobResponse.status)) {
          await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait for 1 second
        }
      }

      if (jobResponse.status === 'complete') {
        const resultUrl = jobResponse.result_url;
        const fileName = path.basename(resultUrl);
        downloadFile(resultUrl, fileName);
      }
    }
  } catch (error) {
    console.error('Error:', error);
  }
};

processImage();
import time
import json
from pathlib import Path

from urllib.request import urlretrieve

# using requests library
import requests

API_KEY = REPLACE_WITH_YOUR_API_KEY

headers = {
    'x-api-key': API_KEY,
}

data = {
    "enhancements": ["denoise", "deblur", "light"],
    "width": 2000
}

data_dumped = {"parameters": json.dumps(data)}

with open(YOUR_LOCAL_FILE_TO_SEND, 'rb') as f:
    response = requests.post('https://deep-image.ai/rest_api/process_result', headers=headers,
                             files={'image': f},
                             data=data_dumped)
    if response.status_code == 200:
        response_json = response.json()
        if response_json.get('status') == 'complete':
            p = Path(response_json['result_url'])
            urlretrieve(response_json['result_url'], p.name)
        elif response_json['status'] in ['received', 'in_progress', 'not_started']:
            while response_json['status'] in ['received', 'in_progress', 'not_started']:
                response = requests.get(f'https://deep-image.ai/rest_api/result/{response_json["job"]}',
                                        headers=headers)
                response_json = response.json()
                time.sleep(1)
            if response_json['status'] == 'complete':
                p = Path(response_json['result_url'])
                urlretrieve(response_json['result_url'], p.name)
import os

import deep_image_ai_client

configuration = deep_image_ai_client.Configuration(
    host="https://deep-image.ai"
)

configuration.api_key['ApiKeyAuth'] = os.environ["API_KEY"]

with deep_image_ai_client.ApiClient(configuration) as api_client:
    api_instance = deep_image_ai_client.DefaultApi(api_client)
    process_payload = {
        "url": "https://deep-image.ai/api-example.png",
        "enhancements": ["denoise", "deblur", "light"],
        "width": 2000
    }
    api_response = api_instance.rest_api_process_result_post(process_payload)

All data examples in this documentation are JSON based. You can replace above JSON data with that ones from the examples.

https://deep-image.ai/app/my-profile/api
Deep-image.ai
https://github.com/deep-image-ai/python-client