ICCI. A free image cache and crop processor.

Provide access to images in real time or from our world wide content delivery network and reduce your costs.

Supported are traditional images served over http(s) as well as Snapshot generation from live RTSP Streams.

Submit a Request

Static mode: The form will send fixed post parameters.

API Endpoints and Code Samples

API · Submit a single URL

curl -X POST "https://icci.surveillance-map.org/submit" \
-H "Content-Type: application/json" \
--data-raw '{"url":"https://icci.surveillance-map.org/sample-02.jpg","mode":"static","width":2160,"height":1080,"extension":"jpg"}'

API · Submit multiple URLs

curl -X POST "https://icci.surveillance-map.org/submit" \
-H "Content-Type: application/json" \
--data-raw '{"urls":["https://icci.surveillance-map.org/sample-03.jpg", "https://icci.surveillance-map.org/sample-04.jpg"],"mode":"static","width":600,"height":400,"extension":"avif"}'

Code Sample (JavaScript) · Generate a Base64 encoded URL

// Example: Generate a Base64 encoded URL
// Usage
const myWidth = 2160;
const myHeight = 1080;
const myFinalImageExtension = "jpg";
const myURL = "https://icci.surveillance-map.org/sample-05.jpg";
const myEncodedUrl = btoa(myURL);

console.log(`https://icci.surveillance-map.org/image/static/${myEncodedUrl}/${myWidth}x${myHeight}.${myFinalImageExtension}`);
// Output: https://icci.surveillance-map.org/image/static/aHR0cHM6Ly9pY2NpLnN1cnZlaWxsYW5jZS1tYXAub3JnL3NhbXBsZS0wNS5qcGc=/2160x1080.jpg

Frequently Asked Questions

Request limits of the API Endpoint:
· 10.000 requests per 24 hours per client
· maximum of 100 urls for bulk submissions

Request limits of the Image Cache And Crop Image Endpoint:
· 200.000 requests per 24 hours per client

Limits of the Image Cache And Crop Image Endpoint Parameters:
· mode: static, dynamic or refresh
· url: must be encoded as a base64 string or encrypted as returned via the api, only http, https or rtsp URLs are accepted
· width: 10 - 2160
· height: 10 - 1080
· extension: webp, png, jpg, avif


Image Cache And Crop Image Endpoint Format: https://icci.surveillance-map.org/image/{mode}/{url}/{width}x{height}.{extension}


NOTE: All limits apply on a per Client basis. This means multiple people and users combined can excess the limits easily but are only request limited on an indicidual basis. Limits do not apply if the image is requested as a static image (the url begins with https://icci.surveillance-map.org/image/static/) and has already been stored in the cache.

Static mode loads images from our cdn once they have been successfully cached. This method is recomended for static images which do not change and reduces requests to the origin dramatically. It allows you to reduce your own hosting costs and frees ressources for other processes.


NOTE: Privacy however is not guaranteed when you encode your urls using base64. We can only guarantee the privacy of urls when you submit them via our form or the application programming interface (API) as provide above.

Dynamic mode loads images whenever requested directly from its source.

This method is recomended for dynamic images like provided by webcams and does not offer any caching features. It allows you to keep your urls private and protects them from discovery by crawlers.


NOTE: Privacy however is not guaranteed when you encode your urls using base64. We can only guarantee the privacy of urls when you submit them via our form or the application programming interface (API) as provide above.

Refresh mode is identical to dynamic mode but includes a header telling browsers to request the image again after a few seconds.

This method is recomended for dynamic images like provided by webcams and does not offer any caching features. To use the automatic reload feature the URL must be opened in a seperate window of your browser. It does not work when included as part of a website code for example as the src value of an img element. For that use the dynamic mode and reload the URL via JavaScript. Remember to have a continuously changing url parameter in that case.


NOTE: Privacy however is not guaranteed when you encode your urls using base64. We can only guarantee the privacy of urls when you submit them via our form or the application programming interface (API) as provide above.

We provide privacy by encryping every url using our own encryption cypher. The resulting encrypted string is then inserted into the url which you receive. Neither the original url nor the encrypted string are stored on our servers. Every encrypted string and therefore every url are unique even when you submit the identical url twice it will result in two different urls. It enhances privacy even more.


The privacy feature is only available when you submit your urls via our form or our API. The base64 encode DOES NOT provide this feature.

Using the base64 encoding method is adviced when you have images which do not need to be hidden from crawlers and visitors. For example urls to static ressources which lie on a cdn anyway but need cropping or advanced caching.


Submitting urls through our form or the API to leverage our encryption method is recommended when you would like to hide the origin url from visitors. This method is recommended for cameras which are accessible via their ip or other sensitive data.