Intro
Endpoint: https://api.omnisend.com/api/images
The Images API lets you upload, retrieve, and manage images for your brand.
Upload methods
There are two ways to upload an image:
| Method | Endpoint | Content-Type |
|---|---|---|
| File upload | POST /api/images/upload | multipart/form-data |
| URL upload | POST /api/images | application/json |
Both methods accept an optional name parameter. If not provided, the name defaults to the original filename (file upload) or is extracted from the URL path (URL upload).
File requirements
| Constraint | Value |
|---|---|
| Supported formats | JPEG, PNG, GIF, WebP |
| Max file size | 5 MB |
| Format detection | Based on file content, not file extension |
Note: Images wider than 2000px are automatically resized. EXIF metadata is stripped from all uploads (except WebP).
URL upload rules
When uploading via URL:
- The URL must be publicly accessible over HTTP or HTTPS
- Private IP ranges are blocked (e.g.,
10.x.x.x,172.16.x.x,192.168.x.x) - If the same URL was previously uploaded for your brand, the existing image is returned without re-uploading
Delete behavior
Deleting an image is idempotent — calling DELETE /api/images/{id} for an already-deleted or non-existent image still returns 204 No Content.
Example: Upload image file
curl --request POST \
--url https://api.omnisend.com/api/images/upload \
--header 'Authorization: Omnisend-API-Key YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data' \
--header 'Omnisend-Version: 2026-03-15' \
--form 'file=@/Users/user/Documents/logo.png' \
--form 'name=my-image'Example: Upload image from URL
curl --request POST \
--url https://api.omnisend.com/api/images \
--header 'Authorization: Omnisend-API-Key YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'Omnisend-Version: 2026-03-15' \
--data '{
"url": "https://example.com/image.jpg",
"name": "my-image"
}'The name field is optional. If omitted, the filename is extracted from the URL.