Coloring Page API
Search and download the whole library as JSON - free key, 500 requests a day, no credit card.
Endpoints
GET /api/pages/search
Full-text search over the library. Parameters: q (query), category (slug), topic (slug, requires category), age_band (2-4 | 5-8 | 9-12 | 13+), difficulty (1-5), page. 30 results per page, popularity-ordered. Only published, active pages are returned.
curl "https://printablecoloringpages.ai/api/pages/search?q=barn+owl&category=animals&age_band=5-8&key=YOUR_KEY"
import requests
r = requests.get("https://printablecoloringpages.ai/api/pages/search",
params={"q": "barn owl", "key": "YOUR_KEY"})
for item in r.json()["results"]:
print(item["title"], item["files"]["pdf_letter"])
const r = await fetch("https://printablecoloringpages.ai/api/pages/search?q=owl&key=YOUR_KEY");
const data = await r.json();
console.log(data.results.map(i => i.files.pdf_a4));
GET /api/pages/<slug>/
Full metadata for one page: title, subject, category and topic, age band, difficulty, reviewer, the measured block (ink coverage, enclosed regions, stroke width, narrowest gap) when it has been measured, and direct PDF / PNG / SVG file URLs. A retired page returns 410, not 404.
curl "https://printablecoloringpages.ai/api/pages/barn-owl-perched/?key=YOUR_KEY"
Usage rules
- Cache responses on your side - the catalog changes slowly.
- Download files to your own storage for production apps; don't build a permanent hotlink farm on our CDN.
- The artwork is CC0 - your users owe no attribution, and neither do you (a link is always appreciated).
Need more than 500/day?
Paid tiers are coming online shortly - until then, contact us if you need a higher limit and we'll sort you out. Contact Us