Connect KoalaPic to Your Workflow
Automate image conversion with your favorite no-code platforms or custom webhooks.
How It Works
Get an API Key
Sign up and create a free API key from your dashboard.
Connect Your Platform
Use your API key to authenticate with Zapier, Make, n8n, or any webhook platform.
Automate Conversions
Trigger image conversions automatically and receive results via webhooks.
Supported Platforms
Zapier
Connect KoalaPic to 7,000+ apps. Trigger workflows when images are converted, or convert images as part of any Zap.
Supported Triggers
Actions via API
Make (Integromat)
Build visual automation scenarios. Use the HTTP module to call the KoalaPic API and receive conversion results via webhooks.
Integration Method
n8n
Self-hosted workflow automation. Use the Webhook node to receive conversion events and the HTTP Request node to trigger conversions.
Integration Method
Custom Webhooks
Use our REST API and HMAC-SHA256 signed webhooks to build custom integrations with any platform or backend.
Features
Webhook Events
All platforms receive the same flat, no-code-friendly JSON payloads.
| Event | Description |
|---|---|
conversion.started |
Conversion has begun processing |
conversion.completed |
Conversion finished successfully |
conversion.failed |
Conversion encountered an error |
job.completed |
Batch job finished (all conversions done) |
test.ping |
Test event for verifying connectivity |
Setup Guides
-
1
Create an API key — Go to your Dashboard → API Keys and generate a new key.[Screenshot: Dashboard API Keys page]
-
2
Connect in Zapier — Search for "KoalaPic" in Zapier's app directory, or use a Webhook by Zapier trigger with your webhook URL.[Screenshot: Zapier app search]
-
3
Authenticate — Paste your API key when prompted.[Screenshot: Zapier authentication prompt]
-
4
Choose a trigger — Select which events to listen for.[Screenshot: Zapier trigger selection]
-
5
Build your Zap — Add actions like saving to Google Drive, sending a Slack notification, or uploading to your CMS.
-
1
Add an HTTP module — In your Make scenario, add an "HTTP → Make a request" module.
-
2
Configure the request — Set the URL, method to POST, and add your API key as a Bearer token header.
-
3
Set up a webhook trigger — Add a "Webhooks → Custom webhook" module as your scenario trigger. Copy the webhook URL.
-
4
Register the webhook — In your KoalaPic Webhook settings, add the Make webhook URL as your endpoint.
-
1
Add a Webhook node — Create a new workflow and add a "Webhook" node as the trigger. Set the HTTP method to POST and copy the generated URL.
-
2
Register in KoalaPic — Add the n8n webhook URL in your KoalaPic Webhook settings.
-
3
Add an HTTP Request node — To trigger conversions, add an "HTTP Request" node with your API key in the Authorization header.
-
4
Process results — Connect additional nodes to handle webhook payloads: download the converted file, save to storage, send notifications, etc.
Webhook Receiver Examples
Receive and verify webhook payloads in your own backend.
import hmac, hashlib, json
from flask import Flask, request
app = Flask(__name__)
WEBHOOK_SECRET = "your_webhook_secret"
@app.route("/webhook", methods=["POST"])
def handle_webhook():
signature = request.headers.get("X-KoalaPic-Signature")
expected = hmac.new(
WEBHOOK_SECRET.encode(), request.data, hashlib.sha256
).hexdigest()
if not hmac.compare_digest(signature, expected):
return "Invalid signature", 403
payload = request.json
if payload["event"] == "conversion.completed":
download_url = payload["download_url"]
# Process the converted image...
return "OK", 200
const crypto = require("crypto");
const express = require("express");
const app = express();
const WEBHOOK_SECRET = "your_webhook_secret";
app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {
const signature = req.headers["x-koalapic-signature"];
const expected = crypto
.createHmac("sha256", WEBHOOK_SECRET)
.update(req.body)
.digest("hex");
if (signature !== expected) {
return res.status(403).send("Invalid signature");
}
const payload = JSON.parse(req.body);
if (payload.event === "conversion.completed") {
const downloadUrl = payload.download_url;
// Process the converted image...
}
res.sendStatus(200);
});
Need a Custom Integration?
Our REST API supports any platform that can make HTTP requests. Check the docs or get in touch.