UCSC Genome Browser Tracks Scraper
parseforge/ucsc-genome-browser-tracks-scraper
Developer toolsLead generationOther
Scrapes UCSC Genome Browser track metadata for a given genome assembly and returns each track as a flat row with its table name, type, group, description, and row count.
- Total users
- 2
- Monthly active
- 1
- Total runs
- 94
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
UCSC Genome Browser Tracks Scraper
Scrape UCSC Genome Browser track metadata for any assembly, up to a million tracks per run. Every track comes with its table name, type, group, description, and row count. No login or API key. Export to CSV, JSON, Excel, or XML.
The UCSC Genome Browser holds thousands of annotation tracks across hundreds of assemblies, but browsing them one page at a time is slow and the public API returns only a single track's details per call. This Actor reads the full track listing for any genome assembly you specify, filters by the maximum number of tracks you need, and returns each match in one fixed schema.\n\nIt is built for bioinformaticians who need a complete inventory of available tracks before they write a query or build a pipeline.
| Who uses it | What they scrape UCSC Genome Browser for |
|---|---|
| Bioinformaticians | Catalog every available track for an assembly before writing a data extraction pipeline. |
| Genomics researchers | Identify which annotation tracks exist for a genome to plan a comparative study. |
| Database curators | Sync a local mirror of UCSC track metadata to keep internal documentation current. |
| Data engineers in biotech | Automate the discovery of new or updated tracks as part of a nightly ETL job. |
What it does
This Actor collects UCSC Genome Browser track metadata for a given genome assembly and returns each track as a flat row with its table name, type, group, description, and row count.
- ๐งฌ Assembly-driven input: provide any UCSC assembly identifier such as hg38, hg19, mm39, or mm10.
- ๐ Complete track listing: returns every public track for the assembly, including composite and subtrack groups.
- ๐ข Configurable limit: set a maximum number of tracks to collect, from a single track up to one million per run.
- ๐ฆ Fixed flat schema: every track is returned as a consistent row, ready for direct import into pandas, R, or a database.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with UCSC Genome Browser data
๐งฌ Inventory a genome assembly before analysis.
A bioinformatician runs the Actor on hg38 with a high limit to get every track name and group, then decides which histone modification and transcription factor tracks to download for a ChIP-seq annotation project.
๐ Find tracks by keyword across assemblies.
A researcher scrapes track listings for hg19, hg38, and mm10, then filters the output in a spreadsheet for tracks whose description contains 'CRISPR' to locate relevant annotation sources.
๐ Monitor track additions over time.
A data engineer schedules the Actor weekly for mm39 and diffs the output against the previous run to detect newly added tracks and notify the team.
๐ Build a searchable track catalog.
A core facility manager scrapes all tracks for a dozen common assemblies and loads the combined dataset into an internal web portal so lab members can search for available data without browsing the UCSC site.
Why choose this scraper
| What you get | |
|---|---|
| Assembly coverage | Works with any assembly hosted on the UCSC Genome Browser, including human, mouse, zebrafish, and plant genomes. |
| Track metadata | Returns the table name, track type, group label, description text, and row count for every track. |
| No authentication | Reads the public track listing directly. No API key, no login, no token refresh. |
| Bulk export | Save results as CSV, JSON, Excel, or XML for downstream analysis or archival. |
How it compares
No other Store actor targets UCSC Genome Browser the same way, so the honest comparison is with the alternatives teams actually weigh.
| UCSC Genome Browser Tracks Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When UCSC Genome Browser changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with a UCSC genome assembly identifier and a maximum track count, and the limit is applied as tracks are read so only the requested number reaches your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10
}
A larger pull:
{
"maxItems": 200
}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the UCSC Genome Browser Tracks Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to UCSC Genome Browser through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/ucsc-genome-browser-tracks-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that the genome assembly identifier is spelled exactly as UCSC expects it, for example 'hg38' not 'HG38' or 'Human hg38'. Also verify that the assembly exists on the UCSC Genome Browser by visiting its gateway page.
The run finished but returned fewer tracks than I expected.
Increase the 'Maximum tracks' value. The default is 10. If you set it to a number larger than the total tracks available, you will receive every track for that assembly.
I see an error about the assembly not being found.
Confirm the assembly ID on the UCSC Genome Browser homepage. Some older assemblies may have been archived. Try a current assembly like hg38 or mm39 to verify the Actor is working.
The output is missing a track I can see on the UCSC website.
Composite tracks on UCSC sometimes display as a single entry with subtracks. The Actor returns the top-level track listing. Check if your missing track is a subtrack nested inside a composite track.
Can I filter tracks by type or group inside the Actor?
The Actor returns all tracks for the assembly up to your limit. To filter by type or group, export the dataset as CSV and filter in a spreadsheet, or use a tool like pandas in Python.
FAQ
| Question | Answer |
|---|---|
| What is a UCSC Genome Browser track? | A track is a data layer displayed on the UCSC Genome Browser, such as a gene annotation, a repeat masker track, or a ChIP-seq peak file. Each track has a table name, a type, and a descriptive label. |
| Which genome assemblies can I scrape? | Any assembly that has a public track listing on the UCSC Genome Browser. Common examples include hg38, hg19, mm39, mm10, danRer11, and dm6. Enter the exact UCSC assembly identifier in the genome field. |
| Does this Actor download the actual track data? | No. It collects only the metadata for each track: the table name, type, group, description, and row count. To download the underlying data, use a tool like UCSC's Table Browser or the bigBedToBed utility. |
| How many tracks can I collect in one run? | You set the maximum with the 'Maximum tracks' field. The default is 10, and the upper limit is 1,000,000. Most assemblies have far fewer tracks than that, so setting a high number will return everything available. |
| Do I need a UCSC account or API key? | No. This Actor reads the public HTML track listing page. No registration, no authentication, and no rate-limit concerns for typical use. |
| What format is the output? | The dataset is stored in Apify's default formats. You can export it as CSV, JSON, Excel, or XML from the run console. |
| Can I scrape multiple assemblies in one run? | One run handles one assembly. To scrape several assemblies, run the Actor multiple times with different genome values, or use an Apify task for each assembly and trigger them sequentially. |
| What does the 'group' field mean in the output? | It is the UCSC track group label, such as 'Genes', 'Regulation', or 'Comparative Genomics'. It helps you categorize tracks by their functional annotation. |
| Does this work for assembly hubs or custom tracks? | No. This Actor scrapes only the native UCSC-hosted tracks for standard assemblies. Assembly hubs and user-submitted custom tracks are not included. |
| Is the row count in the output the number of data rows in the track? | Yes. The row count field reflects the number of data rows UCSC reports for that track's primary table, which is useful for estimating download size. |
Related actors
- google-scholar-scraper: Use this to collect academic papers citing a specific UCSC track or genome assembly.
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by The Regents of the University of California. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many tracks to collect per run. | 10 |
| genome | string | UCSC assembly identifier (hg38, hg19, mm39, mm10, ...). | hg38 |
Pricing
from $19.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.019 to $0.021 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~ucsc-genome-browser-tracks-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run UCSC Genome Browser Tracks Scraper on Apify All scrapers
