API: Snapshots
Snapshots
Weekly open-source Parquet data releases. Download the full dataset for offline use, research, or self-hosting the desktop app.
GET List releases
GET
/v1/snapshots Returns the latest weekly open-source release with a full file manifest. Includes per-country links, metadata, and provider data — everything needed for offline use.
Requires
Authorization: Bearer header Responses
200 Latest release info with file list
Response schema 200
lateststringrequiredpublished_atstringrequiredcountriesstring[]requiredtotal_filesnumberrequiredtotal_size_bytesnumberrequiredfilesobject[]requiredpathstringrequiredsize_bytesnumberrequireddownload_basestringrequirednotestringrequired Try it
curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/snapshots' \
-H 'Authorization: Bearer YOUR_API_KEY' const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/snapshots', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json(); import requests
res = requests.get('https://popcorntime-api-production.wicked-f82.workers.dev/v1/snapshots',
headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json() // Example response
{
"latest": "2026-W12",
"published_at": "string",
"countries": [
"string"
],
"total_files": 0,
"total_size_bytes": 0,
"files": [
{
"path": "country=US/links.parquet",
"size_bytes": 0
}
],
"download_base": "string",
"note": "string"
} GET Schemas
GET
/v1/schemas Returns the schema definitions for all Parquet files in the open-source snapshots. Useful for building tools that validate or introspect the data.
Requires
Authorization: Bearer header Responses
200 Schema definitions for all snapshot files
503 Schema not yet generated
Response schema 200
schema_versionnumberrequireddescriptionstringrequireddocsstringrequiredfilesobject[]requiredfilestringrequireddescriptionstringrequiredlocationper-country | globalrequiredsorted_bystring[]columnsobject[]requirednamestringrequiredtypestringrequirednullablebooleanrequireddescriptionstringrequired Try it
curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/schemas' \
-H 'Authorization: Bearer YOUR_API_KEY' const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/schemas', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json(); import requests
res = requests.get('https://popcorntime-api-production.wicked-f82.workers.dev/v1/schemas',
headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json() // Example response
{
"schema_version": 0,
"description": "string",
"docs": "string",
"files": [
{
"file": "links.parquet",
"description": "string",
"location": "per-country",
"sorted_by": [
"string"
],
"columns": [
{
"name": null,
"type": null,
"nullable": null,
"description": null
}
]
}
]
} GET Download URL
GET
/v1/snapshots/download Returns a download URL for any file in an open-source release. The URL requires your API key and is valid for 1 hour.
Requires
Authorization: Bearer header Parameters
path query required File path relative to the release
version query Release version (defaults to latest)
Responses
200 Download URL
400 Missing or invalid parameter
403 File not in manifest — not available for download
404 File or release not found
503 No releases available yet
Response schema 200
versionstringrequiredpathstringrequiredsize_bytesnumberrequireddownload_urlstringrequiredexpires_atstringrequired Try it
curl -X GET 'https://popcorntime-api-production.wicked-f82.workers.dev/v1/snapshots/download?path=country=US/links.parquet&version=2026-W12' \
-H 'Authorization: Bearer YOUR_API_KEY' const res = await fetch('https://popcorntime-api-production.wicked-f82.workers.dev/v1/snapshots/download?path=country=US/links.parquet&version=2026-W12', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json(); import requests
res = requests.get('https://popcorntime-api-production.wicked-f82.workers.dev/v1/snapshots/download?path=country=US/links.parquet&version=2026-W12',
headers={'Authorization': 'Bearer YOUR_API_KEY'})
data = res.json() // Example response
{
"version": "string",
"path": "string",
"size_bytes": 0,
"download_url": "string",
"expires_at": "string"
}