← Hugging FaceCONTENT HISTORY

Update to Hugging Face

Snapshot Sep 30, 2026 · 22:47 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "huggingface-datasets",
  "description": "Use this skill for Hugging Face Dataset Viewer API workflows that fetch subset/split metadata, paginate rows, search text, apply filters, download parquet URLs, and read size or statistics.",
  "included_files": [],
  "skill_md_contents": "---\nname: huggingface-datasets\ndescription: Use this skill for Hugging Face Dataset Viewer API workflows that fetch subset/split metadata, paginate rows, search text, apply filters, download parquet URLs, and read size or statistics.\n---\n\n# Hugging Face Dataset Viewer\n\nUse this skill to execute read-only Dataset Viewer API calls for dataset exploration and extraction.\n\n## Core workflow\n\n1. Optionally validate dataset availability with `/is-valid`.\n2. Resolve `config` + `split` with `/splits`.\n3. Preview with `/first-rows`.\n4. Paginate content with `/rows` using `offset` and `length` (max 100).\n5. Use `/search` for text matching and `/filter` for row predicates.\n6. Retrieve parquet links via `/parquet` and totals/metadata via `/size` and `/statistics`.\n\n## Defaults\n\n- Base URL: `https://datasets-server.huggingface.co`\n- Default API method: `GET`\n- Query params should be URL-encoded.\n- `offset` is 0-based.\n- `length` max is usually `100` for row-like endpoints.\n- Gated/private datasets require `Authorization: Bearer <HF_TOKEN>`.\n\n## Dataset Viewer\n\n- `Validate dataset`: `/is-valid?dataset=<namespace/repo>`\n- `List subsets and splits`: `/splits?dataset=<namespace/repo>`\n- `Preview first rows`: `/first-rows?dataset=<namespace/repo>&config=<config>&split=<split>`\n- `Paginate rows`: `/rows?dataset=<namespace/repo>&config=<config>&split=<split>&offset=<int>&length=<int>`\n- `Search text`: `/search?dataset=<namespace/repo>&config=<config>&split=<split>&query=<text>&offset=<int>&length=<int>`\n- `Filter with predicates`: `/filter?dataset=<namespace/repo>&config=<config>&split=<split>&where=<predicate>&orderby=<sort>&offset=<int>&length=<int>`\n- `List parquet shards`: `/parquet?dataset=<namespace/repo>`\n- `Get size totals`: `/size?dataset=<namespace/repo>`\n- `Get column statistics`: `/statistics?dataset=<namespace/repo>&config=<config>&split=<split>`\n- `Get Croissant metadata (if available)`: `/croissant?dataset=<namespace/repo>`\n\nPagination pattern:\n\n```bash\ncurl \"https://datasets-server.huggingface.co/rows?dataset=stanfordnlp/imdb&config=plain_text&split=train&offset=0&length=100\"\ncurl \"https://datasets-server.huggingface.co/rows?dataset=stanfordnlp/imdb&config=plain_text&split=train&offset=100&length=100\"\n```\n\nWhen pagination is partial, use response fields such as `num_rows_total`, `num_rows_per_page`, and `partial` to drive continuation logic.\n\nSearch/filter notes:\n\n- `/search` matches string columns (full-text style behavior is internal to the API).\n- `/filter` requires predicate syntax in `where` and optional sort in `orderby`.\n- Keep filtering and searches read-only and side-effect free.\n\n## Querying Datasets\n\nUse `npx parquetlens` with Hub parquet alias paths for SQL querying.\n\nParquet alias shape:\n\n```text\nhf://datasets/<namespace>/<repo>@~parquet/<config>/<split>/<shard>.parquet\n```\n\nDerive `<config>`, `<split>`, and `<shard>` from Dataset Viewer `/parquet`:\n\n```bash\ncurl -s \"https://datasets-server.huggingface.co/parquet?dataset=cfahlgren1/hub-stats\" \\\n  | jq -r '.parquet_files[] | \"hf://datasets/\\(.dataset)@~parquet/\\(.config)/\\(.split)/\\(.filename)\"'\n```\n\nRun SQL query:\n\n```bash\nnpx -y -p parquetlens -p @parquetlens/sql parquetlens \\\n  \"hf://datasets/<namespace>/<repo>@~parquet/<config>/<split>/<shard>.parquet\" \\\n  --sql \"SELECT * FROM data LIMIT 20\"\n```\n\n### SQL export\n\n- CSV: `--sql \"COPY (SELECT * FROM data LIMIT 1000) TO 'export.csv' (FORMAT CSV, HEADER, DELIMITER ',')\"`\n- JSON: `--sql \"COPY (SELECT * FROM data LIMIT 1000) TO 'export.json' (FORMAT JSON)\"`\n- Parquet: `--sql \"COPY (SELECT * FROM data LIMIT 1000) TO 'export.parquet' (FORMAT PARQUET)\"`\n\n## Creating and Uploading Datasets\n\nUse one of these flows depending on dependency constraints.\n\nZero local dependencies (Hub UI):\n\n- Create dataset repo in browser: `https://huggingface.co/new-dataset`\n- Upload parquet files in the repo \"Files and versions\" page.\n- Verify shards appear in Dataset Viewer:\n\n```bash\ncurl -s \"https://datasets-server.huggingface.co/parquet?dataset=<namespace>/<repo>\"\n```\n\nLow dependency CLI flow (`npx @huggingface/hub` / `hfjs`):\n\n- Set auth token:\n\n```bash\nexport HF_TOKEN=<your_hf_token>\n```\n\n- Upload parquet folder to a dataset repo (auto-creates repo if missing):\n\n```bash\nnpx -y @huggingface/hub upload datasets/<namespace>/<repo> ./local/parquet-folder data\n```\n\n- Upload as private repo on creation:\n\n```bash\nnpx -y @huggingface/hub upload datasets/<namespace>/<repo> ./local/parquet-folder data --private\n```\n\nAfter upload, call `/parquet` to discover `<config>/<split>/<shard>` values for querying with `@~parquet`.\n"
}

SHA-256: 1dd38ebdfc67ae68f66d776dffc6d3a942ede36e5b9dc1ebf8054f2f8d10f6c7