Daily snapshots of Apple App Store charts (top free / paid / grossing / new) per storefront and genre, taken from the public iTunes RSS feed generator, plus a dimension table describing every app that has appeared in one.
All three stay inside Apple App Store charts: the assistant is given this dataset’s schema and nothing else, and the playground attaches only these tables. Ask across every dataset from the home page instead.
Generated from this exact manifest version, so the URLs are the ones actually published.
Fastest — Parquet exports (immutable, sorted)
INSTALL httpfs; LOAD httpfs;
CREATE OR REPLACE VIEW rankings AS
SELECT * FROM read_parquet('https://data-directory.fsn1.your-objectstorage.com/public/itunes-charts/v/01M0NJGCQQ2DKP82KNNEPYSP2J/rankings.parquet');
CREATE OR REPLACE VIEW apps AS
SELECT * FROM read_parquet('https://data-directory.fsn1.your-objectstorage.com/public/itunes-charts/v/01M0NJGCQQ2DKP82KNNEPYSP2J/apps.parquet');
SELECT * FROM rankings LIMIT 10;
Live lake — DuckLake catalog, time travel included
INSTALL ducklake; LOAD ducklake;
ATTACH 'ducklake:https://data-directory.fsn1.your-objectstorage.com/catalog/itunes-charts/catalog.ducklake' AS lake (READ_ONLY); SELECT * FROM lake.main.rankings LIMIT 5;
USE lake;
Worked examples
Sample rankings
SELECT * FROM rankings
LIMIT 10;
Reads the first rows in published order (snapshot_date, country, feed_type, genre_id, rank), which is also the order the parquet file is physically sorted in.
Sample apps
SELECT * FROM apps
LIMIT 10;
Reads the first rows in published order (name_lc), which is also the order the parquet file is physically sorted in.
One row per app ever seen in a chart, with the descriptive fields from the feed. Upserted: first_seen_date/last_seen_date widen over time, everything else reflects the latest sighting.
Rows
99
Size
110 KB
Write mode
upsert
Sorted by
name_lc
Files
1
Columns of apps
Column
Type
Null
Description
Min
Max
app_id
BIGINT
no
Apple track id. Stable primary key of the dimension.
—
—
bundle_id
VARCHAR
yes
Reverse-DNS bundle identifier, e.g. com.openai.chat.
—
—
name
VARCHAR
no
App name as shown in the store.
—
—
name_lcsort
VARCHAR
no
name, lowercased and accent-folded. The sort key and the prefix-search column.
ai chat assistant – chatnow
zeely: ai marketing platform
artist_id
BIGINT
yes
Apple developer id, parsed from the artist URL. NULL when absent.
—
—
artist_name
VARCHAR
no
Developer name as published in the feed.
—
—
artist_lc
VARCHAR
no
artist_name, lowercased and accent-folded, for search.
—
—
artist_url
VARCHAR
yes
Store URL of the developer page.
—
—
summary
TEXT
yes
The app description text from the feed.
—
—
rights
VARCHAR
yes
Copyright line published with the app.
—
—
content_type
VARCHAR
yes
Feed content type, e.g. "Application".
—
—
category_id
INTEGER
yes
Apple genre id of the app’s primary category.
—
—
category_name
VARCHAR
yes
Human name of the primary category.
—
—
release_date
TIMESTAMPTZ
yes
Release (or latest update) timestamp reported by the feed.
—
—
icon_url_53
VARCHAR
yes
53×53 icon URL, picked by the image height attribute.
—
—
icon_url_75
VARCHAR
yes
75×75 icon URL, picked by the image height attribute.
—
—
icon_url_100
VARCHAR
yes
100×100 icon URL, picked by the image height attribute.
—
—
app_url
VARCHAR
yes
Canonical App Store URL of the app.
—
—
first_seen_date
DATE
no
First chart day this app was seen in any chart we ingest.