Image Rehoster
Turn any image URL or base64 payload into a permanent public URL
What it is.
Image Rehoster solves a specific, common problem in AI-agent and vision-model pipelines: you have an image — a scrape, a base64 payload, a presigned S3 URL about to expire — and you need a stable, public, no-auth URL to hand to GPT-4o, Claude, or Gemini Vision, or to embed in a Slack message, email, or webhook.
By default, URLs are permanent: images are stored in a named Apify Key-Value Store that is never auto-deleted, so the retrieval URL keeps working indefinitely. Set permanentUrl: false for a temporary URL that expires with your Apify plan's data-retention window instead.
It is MCP-compatible — AI agents can discover and call this Actor directly through the Apify MCP server, with no human setup required beyond pointing an MCP client at it.
What it checks and does.
Permanent by default
Images land in a named Key-Value Store that never auto-expires, unlike Apify's default per-run storage.URL or base64 input
Accepts a direct imageUrl or raw/data-URI imageBase64 — whichever your pipeline already has.No egress fees
Served from Apify storage; fetches are billed as cheap Key-Value Store reads, not per-GB CDN egress.MCP-ready
Discoverable and callable by AI agents through the Apify MCP server with zero configuration.Hotlink-protection bypass
Sends realistic browser headers when fetching, so most hotlink-protected source images still resolve.Any format, up to 50 MB
JPEG, PNG, GIF, WebP, AVIF, SVG, BMP, TIFF, or any binary payload.
Where it fits.
- Convert a base64 image into a URL before calling a vision-model API
- Rehost a presigned S3/CDN URL before it expires
- Give an AI agent pipeline a stable image reference between steps
- Embed a permanent image link in a Slack, email, or webhook notification
Call it with this.
| Field | Type | Required | Description |
|---|---|---|---|
imageUrl | string | No | Direct image URL to fetch (one of imageUrl/imageBase64 required). |
imageBase64 | string | No | Base64 or data-URI image payload, as an alternative to imageUrl. |
filename | string | No | Filename stem for the stored image; defaults to a random UUID. |
permanentUrl | boolean | No | Defaults to true. Set false for a temporary, auto-expiring URL. |
storeName | string | No | Named Key-Value Store to use; defaults to "hosted-images". |
Pricing:Pay-per-event — $0.003 per image hosted, plus Apify platform usage at cost. No markup on storage or reads.
Frequently asked questions.
What does Image Rehoster do?
It takes an image — by URL or base64 — and returns a permanent, publicly accessible URL with no authentication required, so you can hand it to a vision-model API, an AI agent pipeline, or embed it in a message.
Are the URLs really permanent?
By default, yes — images are stored in a named Apify Key-Value Store that is never auto-deleted, so the URL keeps resolving indefinitely. Set permanentUrl: false if you want a temporary URL that expires with your Apify plan's data-retention window instead.
Does it work with base64 images, not just URLs?
Yes. Pass imageBase64 (raw base64 or a data: URI) instead of imageUrl and it stores the decoded bytes the same way.
How much does it cost?
Pay-per-event pricing: $0.003 per image hosted ($3 per 1,000), plus Apify platform compute/storage usage at cost. There is no per-GB egress fee for serving the public URL — NativeFoundation takes no markup on storage or reads.
Can AI agents call this automatically?
Yes — it's discoverable and callable through the Apify MCP server, so any MCP-compatible AI agent (Claude Desktop, Cursor, VS Code, custom agents) can use it without manual setup.