Powerful Public API for Advanced AI Image Upscaling

Integrate our industry-leading super resolution API to programmatically enhance, upscale, and add detail to any image. Asynchronous, scalable, and easy to integrate.

Before
Supermarket enhanced, demonstrating the magnific ai alternative before enhancement and upscaling
After
Supermarket enhanced, demonstrating the magnific ai alternative after enhancement and upscaling
How It Works

Asynchronous API for Maximum Reliability

Our API is built for asynchronous workflows. Submit a job, and we'll notify your application via webhook upon completion, ensuring no dropped connections and robust processing.

1. POST Request

Send a request to an upscale endpoint with your image URL and parameters. Our API immediately confirms the job is queued.

2. We Process

We handle the heavy lifting of AI upscaling on our scalable infrastructure. Your application doesn't need to wait or maintain a connection.

3. GET Webhook

Once complete, we send a payload to your webhook URL with the temporary (3-hour) URL to your high-resolution image.

Core Features

Three Powerful Endpoints, Endless Possibilities

Each of our upscale tools is available via its own simple REST API endpoint.

Smart Upscale API

Endpoint: POST /smart-upscale. Leverage generative AI to creatively enhance images with new details. Regenerates your images at a higher resolution with exceptional quality.

Before
Man's portrait enhanced with Smart Upscale API before enhancement and upscaling
After
Man's portrait enhanced with Smart Upscale API after enhancement and upscaling

Dynamic Upscale API

Endpoint: POST /dynamic-upscale. Add stunning new details while preserving the original composition.

Before
Interior design enhanced with Dynamic Upscale API before enhancement and upscaling
After
Interior design enhanced with Dynamic Upscale API after enhancement and upscaling

Precise Upscale API

Endpoint: POST /precise-upscale. Achieve faithful, high-fidelity upscaling up to 16x. Perfect for print, e-commerce, and archival tasks where removing artifacts and preserving every original detail is critical.

Before
Photo of japan tokyo with Precise Upscale API before enhancement and upscaling
After
Photo of japan tokyo with Precise Upscale API after enhancement and upscaling
100 megapixel high-resolution image of red haired woman with insane skin detail
Close-up of red haired woman with insane skin detail
Eyes and nose close-up of hyper-realistic red haired woman
Pricing

Subscription Plans

Choose a plan that fits your needs. All plans include full API access and a commercial use license.

Free

$0
/month
  • 0 included monthly credits

  • 4 cent per extra credit (do not expire)

  • 1 job at a time

  • 2 jobs in queue

Pro

$15
/month
  • 1400 included monthly credits

  • 3 cent per extra credit (do not expire)

  • 2 jobs at a time

  • 8 jobs in queue

Premium

$30
/month
  • 3000 included monthly credits

  • 2 cent per extra credit (do not expire)

  • 5 jobs at a time

  • 20 jobs in queue

Business

$95
/month
  • 10000 included monthly credits

  • 1 cent per extra credit (do not expire)

  • 9+ jobs at a time

  • 36+ jobs in queue

  • Contact us for customization of concurrent jobs and queue size

How Credits Work

Your credits are consumed based on the specific task and the resolution of the output image.

Smart Upscale

1 Credit

per megapixel of the output image

Example: With 1000 credits, you can upscale 250 images from 1024x1024 pixels to 2048x2048 pixels.

Dynamic Upscale

1 Credit

per megapixel of the output image

Example: With 1000 credits, you can upscale 250 images from 1024x1024 pixels to 2048x2048 pixels.

Precise Upscale

1 Credit

per every 4 megapixels of the output image

Example: With 1000 credits, you can upscale 1000 images from 1024x1024 pixels to 2048x2048 pixels.

Image Restoration

8 Credits

per image

Example: With 1000 credits, you can restore 125 images.

Example Request

How to call the API

curl -X POST https://upsampler.com/api/v1/smart-upscale \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "webhook": "https://your-service.com/webhook-receiver",
    "input": {
      "imageUrl": "https://example.com/image.jpg",
      "upscaleFactor": 2.5,
      "globalCreativity": 7,
      "detail": 8
    }
  }'

Ready to build?

Generate your API key now and start integrating the most powerful image upscaling and enhancement API in your projects.

API Documentation 🖼️

Integrate our powerful image upscaling and restoration capabilities into your application.

Introduction

Welcome to the Upsampler API! Our API allows you to integrate Smart Upscale, Dynamic Upscale, Precise Upscale, and Image Restoration into your applications. This API operates over HTTPS and uses JSON for request and response bodies. The input parameter structures are nearly identical to the settings you can choose in the web app.

All tasks are processed asynchronously. You can provide a webhook URL to be notified when processing is complete, or you can poll the status endpoint. Please note that all returned image URLs are temporary and will expire after 3 hours.


Pricing

Like in the web app, credits are consumed based on the size of the output image:

  • For Smart Upscale and Dynamic Upscale:
    1 credit per megapixel of the output image with a minimum cost of 1 credit
  • For Precise Upscale:
    1 credit per 4 megapixels of the output image with a minimum cost of 1 credit
  • For Image Restoration:
    fixed cost of 8 credits per restoration

Authentication

All API requests require authentication. Include your API key in the Authorization header as a Bearer token.

Authorization: Bearer YOUR_API_KEY

Base URL

All API requests should be made to the following base URL:

https://upsampler.com/api/v1

General Request Structure

All POST requests to the upscaling and restoration endpoints share a common structure:

{
  "webhook": "YOUR_WEBHOOK_URL", // Optional
  "input": { /* Schema-specific input parameters as detailed below */ }
}
  • webhook (string, optional): A HTTPS URL where a POST request with the results (or error) will be sent upon completion or failure of the upscaling job. We will attempt to deliver the webhook notification up to 3 times with exponential backoff if the initial attempts fail. Your endpoint should respond with a 2xx status code to acknowledge receipt.
  • input (object, required): An object containing the specific parameters for the chosen endpoint. The schema for this object varies by endpoint (see below).

Endpoints

Click on an endpoint below to see its request structure and code examples.


Response Handling

Upon submitting a valid request to an upscale or restoration endpoint, you will receive an initial synchronous response confirming that the job has been started or queued. Make sure you store the id from this response, as it is the key to associating the final, asynchronous result with your initial request. The actual results, including image URLs or any processing errors, are delivered asynchronously. If you provide a webhook URL, the final results will be send there. Otherwise, you must use the GET /status/{id} endpoint to retrieve the results.

Initial Synchronous Response:

// Synchronous Response on Success
{
  "id": "xxxxxxxxxxxx",
  "status": "IN_PROGRESS", // or "IN_QUEUE"
  "creditCost": x
}

// Synchronous Response on Failure
{
  "status": "FAILED",
  "error": "ERROR MESSAGE"
}

Asynchronous Results:

Once the job is complete, you can retrieve the final results in one of two ways:

  1. Webhook: Our server will send a POST request to the provided `webhook` URL with the final result.
  2. Status endpoint: You can call the GET /status/{id} endpoint with the job ID.

Important: The compressedImageUrl and imageUrl are temporary and will only be valid for 3 hours. Please download and store the images.

Final Result Payloads (via Webhook or GET):

// Payload on Success
{
  "id": "xxxxxxxxxxxx",
  "status": "SUCCESS",
  "compressedImageUrl": "URL_TO_COMPRESSED_JPG",
  "imageUrl": "URL_TO_FULL_QUALITY_PNG",
  "creditCost": x
}

// Payload on Failure
{
  "id": "xxxxxxxxxxxx",
  "status": "FAILED",
  "error": "Failed to process image due to an internal error. Your credits have been refunded."
}

Error Handling (Synchronous)

Errors that occur before a job is started or queued (e.g., authentication issues, invalid request structure, validation errors) will be returned synchronously. The API uses standard HTTP status codes.

  • 400 Bad Request: The request JSON was malformed or contained semantic errors (e.g., upscaleFactor out of range).
  • 401 Unauthorized: No API key was provided, or the API key is invalid.
  • 403 Forbidden: API key inactive or insufficient credits.
  • 404 Not Found: The requested job ID does not exist (applies to the GET /status/{id} endpoint).
  • 429 Too Many Requests: You have exceeded the rate limit or queue size.
  • 500 Internal Server Error: An unexpected error occurred on our side before the job could be started or queued.

Processing errors that occur after a job has been queued will be reported via the webhook.


Rate Limits

To ensure fair usage and service stability, API requests are rate-limited per API key. The current limit for the upscaling and restoration endpoints is 90 requests per minute and 6000 requests per hour. For the GET /status/{id} endpoint, the limit is 240 requests per minute. Exceeding these limits will result in a 429 Too Many Requests error.


Support

If you have any questions, encounter issues, or need assistance with the API, please do not hesitate to contact us.

We use cookies

We use cookies to ensure you get the best experience on our website. For more information on how we use cookies, please see our privacy policy.

By clicking Accept, you agree to our use of cookies.

Learn more.