canonical: https://jentic.com/apis/iminify.com/iminify

# Iminify API

The Iminify API compresses, resizes, and converts images, and writes AI alt text and a suggested file name for each one. An image is created from an uploaded file or a public url with a compression level such as smart, ultra, or lossless, an optional target format, width, height, or scale, and keep_metadata to retain EXIF. Page scans open a web page on Iminify's servers, collect every image it loads, and compress each with the same settings, with reports downloadable as CSV, PDF, or a zip. Work runs in the background, so a client creates an image or scan and polls it until it finishes.

## For AI agents

Compress, resize, and convert images or every image on a web page, generate alt text, and download the optimized files or a scan report.

## Scope

Does not host images on a CDN, edit image content, or remove backgrounds. Use for compressing, resizing, converting, and alt-texting images only.

## Capabilities

- Compress an image from a file or url at a chosen level such as smart, ultra, or lossless
- Resize by width, height, or scale and convert the format, with keep_metadata to retain EXIF
- Write AI alt text in a chosen alt_text_language and apply the suggested file name with use_suggested_name
- Scan a web page to collect and compress every image it loads, then download the report as CSV or PDF
- Download the optimized copy or the original of an image, or several images as a zip
- Share a finished image or scan report at an unguessable public link and revoke it later

## Use cases

### AI agent optimizing site images through Jentic

A developer wants their coding agent to shrink the images in a repo or CMS before deploy without wiring the Iminify client by hand. Through Jentic the agent searches for 'compress an image', loads the createImage operation with its input schema, and sends each image url with level set to smart and format set to webp, with the personal access token injected at call time. It polls each image and downloads the optimized copy when done.

Example prompt: POST /images with url set to the hero image, level set to smart, and format set to webp, poll GET `/images/{id}` until finished, then GET `/images/{id}/download`

### Page-wide image audits

Site owners want to know how much image weight a page carries and what compression would save. POST /scans takes a url and compression settings, opens the page on Iminify's servers, and compresses every image it loads. The finished scan can be downloaded as a zip of optimized images or a report in CSV or PDF.

Example prompt: POST /scans with url set to https://example.com and level set to smart, poll GET `/scans/{id}` until finished, then GET `/scans/{id}/report.csv`

### Accessible alt text at scale

Content teams need alt text on every image for accessibility and search. Iminify writes alt text and a suggested file name when alt_text is on, in a language picked with alt_text_language, and POST `/images/{id}/alt-text` writes it again for an existing image. use_suggested_name renames the optimized copy to the suggestion.

Example prompt: POST `/images/{id}/alt-text` with alt_text_language set to es and use_suggested_name set to true, then GET `/images/{id}` to read the new alt text

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/images` | Compress an image |
| GET | `/images/{id}` | Get an image |
| GET | `/images/{id}/download` | Download an image |
| POST | `/images/{id}/recompress` | Compress an image again |
| POST | `/images/{id}/alt-text` | Write an image's alt text |
| POST | `/scans` | Scan a page |
| GET | `/scans/{id}/report.csv` | Download a page report as CSV |

## Key resources

- **Images** — Compress, rename, recompress, retry, cancel, write alt text, share, download, and delete images
- **Page scans** — Scan a page's images, retry or cancel, download the zip or CSV and PDF reports, and share the report
- **Account** — Read your account

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 73 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 69 / 100
  - AI-Readiness & Agent Experience: 63 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 69 / 100
- **View full report:** https://jentic.com/apis/iminify.com/iminify/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Iminify by hand means creating a personal access token, sending it as a bearer header, and polling background images and scans until they finish before downloading. Through Jentic you install once, import Iminify from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Iminify puts the image or scan id in the URL path (`/images/{id}/...`, `/scans/{id}/...`), so a rule can pin your agent to one image or scan and the operations you pick. You choose the operations it may call, so destructive ones like deleteImage or deleteScan are not included unless you add them.
- **Credential handling:** Your Iminify access token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'compress an image' or 'scan a page for images', and Jentic returns the matching Iminify operation with its input schema so the agent sets level, format, and size correctly.

## Related APIs

- **ShortPixel Image Optimization API** — Image compression, resizing, and format conversion
- **imgix Management API** — Manages imgix image sources and assets for on-the-fly transformation
- **Cloudinary Upload API** — Uploads and stores media assets for delivery

## FAQ

### What authentication does the Iminify API use?

The Iminify API authenticates with a personal access token from Settings > API Tokens on iminify.com, sent as a bearer token in the Authorization header, per its OpenAPI spec. The spec adds that the account's email must be verified. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at call time.

### Can I resize and convert an image with the Iminify API?

Yes. POST /images accepts width, height, or scale for resizing, a format to convert to, and a level for compression strength. Send either a file upload or a url. POST `/images/{id}/recompress` applies new settings to an image you already have.

### What are the rate limits for the Iminify API?

The OpenAPI spec says each page scan counts against a daily scan allowance and a per-minute page scan allowance, but it does not give the numbers. Check https://www.iminify.com/docs for the current limits on your plan.

### Is there an Iminify MCP server?

You don't need an MCP server to give your agent Iminify. Jentic connects it directly from the API Directory: import it, store your access token once, and your agent calls the compression, scan, and download operations it needs, discovered on demand.

### Can I limit what my agent is allowed to do with the Iminify API?

Yes. For example, write a rule that allows only POST /images, GET `/images/{id}`, and GET `/images/{id}/download`, so the agent can compress and fetch images but cannot delete them, share them publicly, or run page scans. Every call it makes is logged.

### How do I compress an image through Jentic?

Search Jentic for 'compress an image', load the createImage operation, and execute it with a url or file and a level such as smart. Poll the getImage operation until it finishes, then call downloadImage. To run it on your own infrastructure, install Jentic One from its GitHub repo.
