Search cc licensed media by keyword

When the user asks for freely reusable images, audio, stock photos, music, sound effects, or openly-licensed media by keyword — reach for Openverse (Creative Commons Catalog API). No auth required.

search-cc-licensed-media-by-keyword · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/search-cc-licensed-media-by-keyword. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/search-cc-licensed-media-by-keyword/SKILL.md.

When to use this skill

When the user asks for freely reusable images or audio — stock photos, music tracks, sound effects — and needs the license terms and attribution details to embed legally. Openverse indexes 85M+ images and 5M+ audio tracks from Wikimedia, Biodiversity Heritage Library, Jamendo, Freesound, and other CC-licensed sources. The non-obvious strength: a single search call returns everything legally required to credit and comply — creator, license shortcode, license URL, and the canonical source page — in one response object. For video or text, this is the wrong skill; Openverse covers images and audio only.

Your best first call

curl "https://api.openverse.org/v1/images/?q=svalbard+expedition&page_size=3&filter_dead=True"

No auth. No key. The q parameter is full-text search; page_size caps results per page; filter_dead=True skips source links that have rotted at the origin. For audio, swap images for audio in the path — the parameters and response shape are identical.

Each result bundles the full attribution kit:

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can search over 85 million openly-licensed images and 5 million audio tracks by keyword via Openverse — every result includes the CC license shortcode, creator, and attribution URL needed to embed legally — no auth required.

APIs this skill uses

Creative Commons Catalog API · primary · verified

Openverse is a search engine for openly-licensed media. The API allows programmatic access to public domain digital media including articles, songs, videos, photographs, paintings, and more. This API was formerly known as the Creative Commo…

Generated from

Creative Commons Catalog API tutorial Getting Started with the Creative Commons Catalog API (Openverse)

SKILL.md source (frontmatter + body)
---
name: search-cc-licensed-media-by-keyword
description: When the user asks for freely reusable images, audio, stock photos, music, sound effects, or openly-licensed media by keyword — reach for Openverse (Creative Commons Catalog API). No auth required.
---

## When to use this skill

When the user asks for freely reusable images or audio — stock photos, music tracks, sound effects — and needs the license terms and attribution details to embed legally. Openverse indexes 85M+ images and 5M+ audio tracks from Wikimedia, Biodiversity Heritage Library, Jamendo, Freesound, and other CC-licensed sources. The non-obvious strength: a single search call returns everything legally required to credit and comply — creator, license shortcode, license URL, and the canonical source page — in one response object. For video or text, this is the wrong skill; Openverse covers images and audio only.

## Your best first call

```bash
curl "https://api.openverse.org/v1/images/?q=svalbard+expedition&page_size=3&filter_dead=True"
```

No auth. No key. The `q` parameter is full-text search; `page_size` caps results per page; `filter_dead=True` skips source links that have rotted at the origin. For audio, swap `images` for `audio` in the path — the parameters and response shape are identical.

Each result bundles the full attribution kit:

- `title`, `creator`, `creator_url` — credit line and creator link
- `license` — CC shortcode (`by`, `by-sa`, `by-nc`, `by-nc-sa`, `by-nd`, `by-nc-nd`, `cc0`)
- `license_version`, `license_url` — exact terms and canonical license page
- `foreign_landing_url` — the source page to link back to
- `url` — direct media file URL
- `source`, `provider` — which collection the item came from

## Fallbacks (when the best call isn't enough)

- **User needs audio, not images** → `/v1/audio/?q=...` with the same parameters and response shape.
- **User wants a specific collection only** → call `/v1/images/stats/` once to discover source names and item counts, then add `source=<source_name>` to narrow your search to that collection.

## Pitfalls

- Use `api.openverse.org`, not `api.creativecommons.engineering`. The old domain may return Django's browsable HTML instead of JSON, which will break any JSON parser.
- `result_count` is capped at 240 regardless of the actual index size — you cannot page beyond 12 pages of 20 results. Narrow with `q` or `source` rather than deep-paging.
- License shortcodes carry legal weight. `by-nc` blocks commercial use entirely; `by-nd` blocks all modifications — no cropping, no remixing. Read the `license` field before telling a user a result is "free to use." Plain `by` is the most permissive non-CC0 option.
- `filter_dead=True` is opt-in, not the default. Without it, expect rotted source URLs in results.

## One-line summary for the user

I can search over 85 million openly-licensed images and 5 million audio tracks by keyword via Openverse — every result includes the CC license shortcode, creator, and attribution URL needed to embed legally — no auth required.

« Back to all skills