Free · Open source · Self-hosted

Good pictures,
quietly found.

Imnexa is a free image search and downloader built on the Pixabay API. Search millions of royalty-free photos, illustrations and vectors, preview them in a clean viewer, and download the full-resolution file in one click.

$ git clone https://github.com/Karthigamurugadoss/imnexa-image-downloader.git
Imnexa home screen: a search bar over a dimmed mountain photo with Photos, Illustrations and Vectors filters

Features

Everything you need to find and keep an image

A focused tool, not a stock-site clone. Search, look closely, download.

Instant image search

Search the entire Pixabay library of free photos, illustrations and vectors with a single field. Share any search as a link.

Full-resolution download

One click saves the large image straight to your device, named by its Pixabay ID, with the correct file type.

Type and shape filters

Narrow results to photos, illustrations or vectors, and to wide or tall pictures, without leaving the page.

Built-in viewer

Open any picture large, see its resolution, views, likes and downloads, and move through results with the arrow keys.

True-proportion masonry

Pictures keep their real aspect ratio, so tall and wide shots sit together without awkward cropping or layout jumps.

Secure by default

Your API key never reaches the browser, downloads are restricted to Pixabay, and a strict content security policy is on.

How it works

Running in two minutes

You need Python 3.9+ and a free Pixabay API key.

Clone and install

Get the code and install the three dependencies.

git clone https://github.com/Karthigamurugadoss/imnexa-image-downloader.git
cd imnexa-image-downloader
pip install -r requirements.txt

Add your API key

Copy the example file and paste your key from pixabay.com/api/docs.

cp .env.example .env
# edit .env:
PIXABAY_API_KEY=your_key

Run and search

Start the server and open it in your browser.

python app.py
# open
http://127.0.0.1:5000

Screenshots

Designed to get out of the way

A dark, photo-first interface that works from phone to ultrawide.

Tech stack

Small, readable, no build step

Python 3.9+ Flask backend Pixabay API Requests python-dotenv Vanilla JS & CSS

Security

Careful with your key

Imnexa is small enough to audit in an afternoon, and it is built so there is little to get wrong.

  • API key stays server-side. Read from .env, never sent to the browser or included in error messages.
  • Not an open proxy. Downloads only accept HTTPS Pixabay image URLs, with no redirects and a 30 MB limit.
  • Strict CSP and headers. Content-Security-Policy, nosniff, frame denial, no-referrer and a locked-down permissions policy.
  • No HTML injection. Results are built with DOM APIs, never by pasting untrusted text into markup.
  • Validated input. Filters are allow-listed, queries and page numbers are bounded.
  • Audited dependencies. Debug mode is off by default and pip-audit reports no known vulnerabilities.

FAQ

Questions, answered

Is Imnexa free?

Yes. Imnexa is open source under the MIT license, and the Pixabay API is free to use with a free API key.

How do I get a Pixabay API key?

Create a free account on Pixabay, open the API documentation page and copy your key. Paste it into a .env file as PIXABAY_API_KEY, then start the app.

Can I use the downloaded images commercially?

Pixabay content falls under the Pixabay Content License, which generally allows free commercial use without attribution. Always check the details on the picture's Pixabay page for restrictions such as identifiable people or trademarks.

Is my API key safe?

The key is only read on the server and is never exposed to the browser. The .env file is git-ignored, error messages never contain it, and the download route only fetches Pixabay image URLs. See SECURITY.md for details.

Why are results capped at 500?

The Pixabay API only returns the first 500 hits for any query. Use more specific search terms or the type and shape filters to narrow things down.

Can I host it publicly?

Imnexa is designed for local or private use. If you deploy it, run it behind a production WSGI server such as gunicorn with HTTPS and add rate limiting, because the Pixabay API allows 100 requests per minute per key.

Find your next picture

Free, open source and yours to run. A star on GitHub helps other people find it too.