Ultimate Guitar APItabs.ultimate-guitar.com ↗
Search Ultimate Guitar tabs, list artist catalogs, and fetch full chord/tab content with capo, tuning, difficulty, and rating fields via 3 structured endpoints.
What is the Ultimate Guitar API?
The Ultimate Guitar Tabs API exposes 3 endpoints that cover tab search, artist catalog listing, and full tab content retrieval. The get_tab endpoint returns the complete chord or ASCII tab text along with 10+ metadata fields including tuning, capo, tonality, difficulty, rating, vote count, and contributor username. Use search_tabs to find any public tab by song title across all tab types, or list_artist_tabs to page through an artist's entire catalog sorted by name, date, or hit count.
curl -X GET 'https://api.parse.bot/scraper/ab3aeec3-a616-4485-82c1-19fd05d2f436/search_tabs?page=2&query=hotel+california&tab_type=chords' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches Ultimate Guitar by song title / free text and returns one row per tab version (chords, tab, bass, ukulele, guitar pro, official, etc.). One site page per call (about 50 rows); use the page input to continue while has_more is true (page omitted = 1). results_count is the site's total match count across all pages. Official and Pro/TabPro rows point at the subscriber-only Pro player (tab_url on www.ultimate-guitar.com/pro/) and carry no public text; rows with a tab_url under tabs.ultimate-guitar.com/tab/ can be passed to get_tab (text content exists for Chords/Tabs/Ukulele/Bass/Power types; Guitar Pro files are binary and not returned). A query with no matches returns an empty results list.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based results page. |
| queryrequired | string | Free-text search, typically a song title, optionally with the artist name. |
| tab_type | string | Restrict results to one tab type. Omitted = all types. |
{
"type": "object",
"fields": {
"page": "current page",
"query": "echo of the search text",
"results": "array of tab summaries: tab_id, tab_url (site page URL; pass to get_tab when under tabs.ultimate-guitar.com), artist_url (pass to list_artist_tabs), song_name, artist_name, artist_id, type, part, version, rating, votes, difficulty, tonality, tuning, date and date_update (unix seconds; null for Official/Pro rows)",
"has_more": "true when page < total_pages",
"total_pages": "number of pages",
"results_count": "site total number of matching tabs across all pages"
},
"sample": {
"data": {
"page": 1,
"query": "hotel california",
"results": [
{
"date": 1373599408,
"part": null,
"type": "Chords",
"votes": 134,
"rating": 4.63799,
"tab_id": 1403188,
"tuning": null,
"tab_url": "https://tabs.ultimate-guitar.com/tab/eagles/hotel-california-chords-1403188",
"version": 1,
"tonality": "Bm",
"artist_id": 1509,
"song_name": "Hotel California",
"artist_url": "https://www.ultimate-guitar.com/artist/eagles_1509",
"difficulty": "intermediate",
"artist_name": "Eagles",
"date_update": 1608942031
}
],
"has_more": false,
"total_pages": 1,
"results_count": 36
},
"status": "success"
}
}About the Ultimate Guitar API
Search and Discovery
The search_tabs endpoint accepts a free-text query (song title, artist name, or both) and returns up to ~50 tab summaries per page. Each result includes tab_id, tab_url, artist_url, song_name, artist_name, and a tab_type field that distinguishes chords, tabs, bass, ukulele, guitar pro, official, and other formats. The optional tab_type input lets you restrict results to one format. Use total_pages and has_more to drive pagination; results_count reflects the site's total match count across all pages.
Artist Catalog
The list_artist_tabs endpoint takes an artist_url exactly as emitted by search_tabs results and returns 100 tab summaries per page. It supports the same tab_type filter as search, plus a sort parameter that accepts name (default), date, or hits. The response includes the artist's songs_count (distinct songs) alongside tabs_count (total tab entries for the active filter), which differ when multiple tab versions exist for the same song.
Full Tab Content
The get_tab endpoint fetches a single public tab page identified by its tab_url. The content field contains the complete chord-and-lyric or ASCII tab text with the site's [ch]..[/ch] and [tab]..[/tab] markers intact, preserving formatting for downstream rendering. Accompanying metadata includes tuning (e.g. E A D G B E), capo fret or null, tonality, difficulty, rating, votes, author (contributor username), date (Unix seconds), song_id, and tab_id. Strumming patterns and sibling tab versions (other arrangements of the same song) are also returned where available.
The Ultimate Guitar API is a managed, monitored endpoint for tabs.ultimate-guitar.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tabs.ultimate-guitar.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official tabs.ultimate-guitar.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a chord sheet renderer that consumes
contentfromget_taband transposes[ch]chords client-side. - Aggregate an artist's full tab catalog via
list_artist_tabssorted by hits to surface the most-played arrangements. - Filter search results to guitar pro tab types using the
tab_typeinput onsearch_tabsfor export pipelines. - Track
ratingandvotestrends across tab versions of the same song to identify the community's preferred arrangement. - Extract
tuningandcapofields fromget_tabto auto-configure a guitar tuner or capo reminder in a practice app. - Cross-reference
songs_countvstabs_countfromlist_artist_tabsto find songs with multiple competing versions. - Populate a song-learning queue by searching with
search_tabs, filtering by difficulty fromget_tabmetadata.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Ultimate Guitar have an official developer API?+
What tab types can be filtered in search and artist listing results?+
search_tabs and list_artist_tabs accept a tab_type input. Supported values correspond to the types the site uses: chords, tabs, bass, ukulele, guitar pro, and official, among others. Omitting the parameter returns all types mixed together.Does `get_tab` return data for tabs that require a Pro subscription on Ultimate Guitar?+
get_tab.Does the API expose user comments or community discussion threads on tab pages?+
How does pagination work across `search_tabs` and `list_artist_tabs`?+
search_tabs returns ~50 results per page; list_artist_tabs returns 100 per page. Both endpoints include a has_more boolean and a total_pages count. Increment the page input (1-based) and continue fetching while has_more is true. The results_count field on search and tabs_count on artist listing reflect the site's total count across all pages, not just the current page.