Firebase Extensions will shut down on March 31, 2027. You will not be able to install or edit extensions after this date. We will share migration guidance and tools in September 2026.Learn more

Image Processing API

Made by Invertase

Use this extension to optimize and transform images via a powerful HTTP API with over 30 different image operations to enhance and manipulate your images.

400+
installs
Works with
Cloud Storage
Version
0.2.1 | Source code
License
Apache-2.0
Publisher
Invertase
Report
Bug
Abuse

How this extension works

Image Processing Extension

Use this extension to optimize and transform images via a powerful HTTP API with over 30 image operations for enhancing and manipulating your images.

How It Works

When you install this extension, it deploys a Cloud Function that exposes an HTTP API. All requests must be sent to the /process endpoint of the function. You perform image operations by passing an operations query parameter—a URL-encoded JSON string defining the operations to execute.

Example

Define your operations like so:

const operations = [
  {
    operation: 'input',
    type: 'url',
    url: 'https://example.com/image.jpg',
  },
  {
    operation: 'grayscale',
  },
  {
    operation: 'output',
    format: 'webp',
  },
];

const params = `?operations=${encodeURIComponent(JSON.stringify(operations))}`;

Then, make your GET request to your Cloud Function using the correct endpoint. For example:

https://<your-configured-region>-<your-project-id>.cloudfunctions.net/<extension-instance-id>/process${params}

The extension also comes with a JavaScript utility library for simplifying the creation of operations:

import { builder } from '@invertase/image-processing-api';

const output = builder()
  .input({
    url: 'https://example.com/image.jpg',
  })
  .grayscale()
  .output({
    format: 'webp',
  });

const params = `?operations=${output.toEncodedJSONString()}`;

View the official documentation for full usage examples.

Relative paths

The extension provides a hostname parameter, allowing you to query the function with local paths (starting with /).

As an example, if we set the hostname parameter to “example.com” then the following operation:

const operations = [
  {
    operation: 'input',
    type: 'url',
    url: '/image.jpg',
  },
  {
    operation: 'grayscale',
  },
  {
    operation: 'output',
    format: 'webp',
  },
];

is equivalent to the earlier given example. The url https://example.com/image.jpg is constructed within the extension.

Note that this will only apply to paths that begin with a forward slash /, and only when the hostname parameter is set.

Additional setup

Before installing this extension, make sure that you’ve set up a Cloud Storage bucket in your Firebase project.

Billing

To install an extension, your project must be on the Blaze (pay as you go) plan

  • You will be charged a small amount (typically around $0.01/month) for the Firebase resources required by this extension (even if it is not used).
  • This extension uses other Firebase and Google Cloud Platform services, which have associated charges if you exceed the service’s no-cost tier:
    • Cloud Storage
    • Cloud Functions (Node.js 10+ runtime. See FAQs)