PUBLIC API
Read-only JSON access to the FlyerScene archive. 24,034 underground music flyers across punk, rave, DIY, metal, hardcore, techno, and more. Browse, search, look up venues and artists, reverse-lookup by image. JSON over HTTPS.
Pricing
All tiers include the full catalog. Cancel any time. Annual billing - email support@flyerscene.com.
Manage your subscription
Three things you can do once you're subscribed:
Billing portal
Update card, download invoices, cancel. Opens Stripe's self-service portal scoped to your email.
Lost your API key?
We'll generate a new one and email it to you. Your old key stops working immediately.
Check your usage
Paste your key to see today's usage, remaining quota, and your 7-day history.
Try it
Make a live API call from this page. No auth is added automatically - paste a fs_xxx key into the field if you want to use your paid tier limits.
Authentication
Paid tiers use a Bearer token header:
curl -H "Authorization: Bearer fs_xxxxxxxxxxxxxxxxxxxx" \
https://flyerscene.com/api/flyers?limit=10
Free tier requires no authentication - just hit the endpoint. Every response includes rate-limit headers:
X-RateLimit-Limit- your daily capX-RateLimit-Remaining- requests left in the current 24h windowX-RateLimit-Tier-free,starter,pro, orunlimited
When you hit the limit, the server returns 429 with a JSON body describing the limit and an upgrade link. Window resets 24h after your first request of the day.
Endpoints
limit, page, genre, city, decade, featured.
Example response
GET /api/flyers?limit=2&genre=punk
{
"flyers": [
{
"id": "3f2e9c8a-...",
"image_url": "https://f004.backblazeb2.com/.../abc.jpg",
"city": "Los Angeles",
"state": "CA",
"event_date": "1982-07-11",
"genre_tags": ["punk", "hardcore"],
"bands_json": "[\"Black Flag\", \"Saccharine Trust\"]"
}
],
"total": 3042,
"page": 1,
"limit": 2
}
JavaScript example
const res = await fetch('https://flyerscene.com/api/search?q=black+flag', {
headers: { 'Authorization': 'Bearer fs_xxx...' } // optional for free tier
});
const data = await res.json();
console.log(data.flyers.length, 'flyers found');
OpenAPI spec
Full machine-readable OpenAPI 3.1 spec at /api/openapi.json. Import into Postman, Insomnia, or any OpenAPI-aware client to get typed requests and autocomplete.
curl https://flyerscene.com/api/openapi.json > flyerscene.json
# Postman: Import → File → flyerscene.json
# Insomnia: Application → Import Data → From File → flyerscene.json
Terms
- Attribution required - link back to flyerscene.com when displaying archive content.
- No bulk image rehosting - use our CDN URLs (
/img/:width/:key) or the rawimage_url. - Respect rate limits. Retry with exponential backoff on
429. - Commercial use allowed on paid tiers. For resale or embedded-in-product use, paid tiers are required.
- See Terms of Service for the full agreement.