BYTETOOLS

Openverse API

Free Openverse API: search 800M+ openly licensed images and audio from Flickr, Wikimedia and more, with licence and attribution data. WordPress-run. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the Openverse API?

Openverse is a free API from the WordPress Foundation for searching more than 800 million openly licensed images and audio files aggregated from Flickr, Wikimedia Commons, museums and other open sources, with full licence and attribution metadata.

Openverse is the successor to Creative Commons Search, now maintained by WordPress. It aggregates openly licensed media from dozens of sources into one search interface with consistent licence metadata.

The attribution field is what makes it practically valuable: each result includes a ready-formatted attribution string alongside the licence code, so you can comply with the licence terms without assembling the credit yourself.

Quick facts

Base URL
https://api.openverse.org/v1
Authentication
Anonymous access works at a lower rate. A free client registration raises limits substantially.
Rate limit
Roughly 100 requests per day anonymously; far higher with free registration.
Pricing
Free. Individual works carry their own Creative Commons licences.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Openverse API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Search openly licensed images

GET https://api.openverse.org/v1/images/?q=mountain&page_size=1

curl
curl 'https://api.openverse.org/v1/images/?q=mountain&page_size=1'
JavaScript (fetch)
const res = await fetch("https://api.openverse.org/v1/images/?q=mountain&page_size=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.openverse.org/v1/images/?q=mountain&page_size=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "result_count": 240,
  "page_count": 240,
  "page_size": 1,
  "page": 1,
  "results": [
    {
      "id": "f561777d-24ea-483f-9cf8-f17aa1fd6aa3",
      "title": "Mountains",
      "indexed_on": "2020-03-27T18:10:35.161824Z",
      "foreign_landing_url": "https://www.flickr.com/photos/22178197@N00/16129656628",
      "url": "https://live.staticflickr.com/7539/16129656628_ddd1db38c2_b.jpg",
      "creator": "Kamil Porembiński",
      "creator_url": "https://www.flickr.com/photos/22178197@N00",
      "license": "by-sa",
      "license_version": "2.0",
      "license_url": "https://creativecommons.org/licenses/by-sa/2.0/",
      "provider": "flickr",
      "source": "flickr",
      "category": null,
      "filesize": null,
      "filetype": null,
      "tags": [
        {
          "name": "iceland",
          "accuracy": null,
          "unstable__provider": "flickr"
        },
        {
          "name": "landscape",
          "accuracy": null,
          "unstable__provider": "flickr"
        },
        {
          "name": "mountain",
          "accuracy": null,
          "unstable__provider": "flickr"
        },
        {
          "name": "mountains",
          "accuracy": null,
          "unstable__provider": "flickr"
        }
      ],
      "attribution": "\"Mountains\" by Kamil Porembiński is licensed under CC BY-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/2.0/.",
      "fields_matched": [
        "description",
        "title",
        "tags.name"
      ],
      "mature": false,
      "height": 680,
      "width": 1024,

Parameters

ParameterTypeRequiredDescription
qstringRequiredSearch query. mountain
page_sizeintegerOptionalResults per page, max 20 anonymously. 10
licensestringOptionalFilter by licence, e.g. cc0, by, by-sa. cc0
license_typestringOptionalcommercial or modification. commercial
sourcestringOptionalRestrict to a source such as flickr or wikimedia. flickr

Response fields

result_countinteger
Total matching works.
results[].titlestring
Work title.
results[].urlstring
Direct media URL.
results[].thumbnailstring
Thumbnail URL.
results[].license / license_versionstring
Licence code and version.
results[].attributionstring
Ready-formatted attribution string — use this.
results[].creatorstring
Creator name.
results[].foreign_landing_urlstring
Original source page.

What you can build with the Openverse API

  • Find legally reusable images for a blog or product
  • Build a media picker with correct attribution built in
  • Filter strictly to commercially usable licences
  • Source openly licensed audio for a project

Common errors and how to fix them

429

Anonymous limit is only around 100 requests per day.

Fix: Register a free client for substantially higher limits — the anonymous tier is very tight.

Licence confusion

Not all Creative Commons licences permit commercial use.

Fix: Use license_type=commercial rather than filtering licence codes by hand.

Dead media URLs

Sources occasionally remove works.

Fix: Handle image load failures; the index can lag the source.

Openverse API — frequently asked questions

Is the Openverse API free?

Yes, free with no key for anonymous use, but the anonymous limit is only around 100 requests per day. Free client registration raises it considerably.

Can I use the images commercially?

Depends on the licence of each work. Use license_type=commercial to filter to works that permit it, rather than trying to interpret licence codes yourself.

Do I need to credit the images?

Almost always yes. Each result includes a ready-formatted `attribution` string — use it rather than composing your own.

What happened to Creative Commons Search?

Openverse is its direct successor, now maintained by the WordPress Foundation with a larger index and a proper API.

Tools that pair with this API

Openverse is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.