{"id":50474274,"url":"https://github.com/shnwazdeveloper/shnwazdev-jiosaavn-api","last_synced_at":"2026-06-01T12:02:43.935Z","repository":{"id":355623923,"uuid":"1228844856","full_name":"shnwazdeveloper/shnwazdev-jiosaavn-api","owner":"shnwazdeveloper","description":"Unofficial ShnwazDev JioSaavn API with Hono, TypeScript, OpenAPI docs, Vercel hosting, and no app-level rate limit.","archived":false,"fork":false,"pushed_at":"2026-05-09T04:39:13.000Z","size":398,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T07:41:23.699Z","etag":null,"topics":["hono","jiosaavn","jiosaavn-api","music-api","openapi","shnwazdev","typescript","vercel"],"latest_commit_sha":null,"homepage":"https://shnwazdevjiosaavn.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shnwazdeveloper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-04T12:45:01.000Z","updated_at":"2026-05-11T21:55:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shnwazdeveloper/shnwazdev-jiosaavn-api","commit_stats":null,"previous_names":["shnwazdeveloper/shnwazdev-jiosaavn-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shnwazdeveloper/shnwazdev-jiosaavn-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shnwazdeveloper%2Fshnwazdev-jiosaavn-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shnwazdeveloper%2Fshnwazdev-jiosaavn-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shnwazdeveloper%2Fshnwazdev-jiosaavn-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shnwazdeveloper%2Fshnwazdev-jiosaavn-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shnwazdeveloper","download_url":"https://codeload.github.com/shnwazdeveloper/shnwazdev-jiosaavn-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shnwazdeveloper%2Fshnwazdev-jiosaavn-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33773782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hono","jiosaavn","jiosaavn-api","music-api","openapi","shnwazdev","typescript","vercel"],"created_at":"2026-06-01T12:02:42.549Z","updated_at":"2026-06-01T12:02:43.922Z","avatar_url":"https://github.com/shnwazdeveloper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShnwazDev JioSaavn API\n\nUnofficial JioSaavn API and documentation website built for `shnwazdev`.\n\nThis project exposes music search, songs, albums, artists, playlists, lyrics, podcasts, browse feeds, radio, and trending routes through a Hono + TypeScript API. It includes a glass-style homepage, OpenAPI 3.1 schema, Scalar docs, health checks, and Vercel-ready serverless hosting.\n\n[![CI](https://github.com/shnwazdeveloper/shnwazdev-jiosaavn-api/actions/workflows/ci.yaml/badge.svg)](https://github.com/shnwazdeveloper/shnwazdev-jiosaavn-api/actions/workflows/ci.yaml)\n\n## Live Links\n\n| Page           | URL                                                        |\n| -------------- | ---------------------------------------------------------- |\n| Website        | `https://shnwazdev-jiosaavn-apii.vercel.app/`              |\n| Docs           | `https://shnwazdev-jiosaavn-apii.vercel.app/docs`          |\n| OpenAPI        | `https://shnwazdev-jiosaavn-apii.vercel.app/swagger`       |\n| Health         | `https://shnwazdev-jiosaavn-apii.vercel.app/health`        |\n| Endpoint index | `https://shnwazdev-jiosaavn-apii.vercel.app/api/endpoints` |\n| API limits     | `https://shnwazdev-jiosaavn-apii.vercel.app/api/limits`    |\n\n## Features\n\n- Hono API with TypeScript and Zod OpenAPI.\n- Static Vercel homepage with glass UI, motion, and no glow styling.\n- Scalar API reference at `/docs`.\n- OpenAPI 3.1 schema at `/swagger`.\n- No app-level rate limiter added by this project.\n- Vercel native function entry at `api/index.js`.\n- Extended routes for browse, lyrics, podcasts, radio, and trending feeds.\n- Health route for uptime monitors.\n\n## API Policy\n\nThis project does not add an app-level request limit.\n\nNormal limits can still come from:\n\n- Your Vercel plan.\n- Serverless function duration.\n- Upstream JioSaavn availability.\n- Network or regional provider limits.\n\nCheck the deployed policy at:\n\n```text\nGET /api/limits\n```\n\n## Endpoints\n\n### Album\n\n| Method | Route         | Description                     |\n| ------ | ------------- | ------------------------------- |\n| GET    | `/api/albums` | Retrieve an album by ID or link |\n\n### Artists\n\n| Method | Route                       | Description                    |\n| ------ | --------------------------- | ------------------------------ |\n| GET    | `/api/artists`              | Retrieve artists by ID or link |\n| GET    | `/api/artists/{id}`         | Retrieve artist by ID          |\n| GET    | `/api/artists/{id}/albums`  | Retrieve artist albums         |\n| GET    | `/api/artists/{id}/related` | Retrieve related artists       |\n| GET    | `/api/artists/{id}/songs`   | Retrieve artist songs          |\n| GET    | `/api/artists/by-name`      | Retrieve artist by name        |\n\n### Browse\n\n| Method | Route                              | Description                                |\n| ------ | ---------------------------------- | ------------------------------------------ |\n| GET    | `/api/channels`                    | Retrieve channels                          |\n| GET    | `/api/channels/{id}`               | Retrieve channel detail                    |\n| GET    | `/api/charts`                      | Retrieve JioSaavn charts                   |\n| GET    | `/api/discover`                    | Retrieve discover channels                 |\n| GET    | `/api/genres`                      | Retrieve genre channels                    |\n| GET    | `/api/home`                        | Retrieve the JioSaavn home feed            |\n| GET    | `/api/home/artist-recommendations` | Retrieve home artist radio recommendations |\n| GET    | `/api/home/city-modules`           | Retrieve home city modules                 |\n| GET    | `/api/home/modules`                | Retrieve home feed module metadata         |\n| GET    | `/api/home/promos`                 | Retrieve editorial promo groups            |\n| GET    | `/api/moods`                       | Retrieve mood channels                     |\n| GET    | `/api/music-plus`                  | Retrieve music plus channels               |\n| GET    | `/api/radio`                       | Retrieve radio stations                    |\n| GET    | `/api/radio/{id}`                  | Retrieve a radio station detail payload    |\n| GET    | `/api/radio/artists`               | Retrieve artist radio recommendations      |\n| GET    | `/api/radio/featured`              | Retrieve featured radio stations           |\n\n### Lyrics\n\n| Method | Route                   | Description                          |\n| ------ | ----------------------- | ------------------------------------ |\n| GET    | `/api/lyrics`           | Retrieve lyrics by song name         |\n| GET    | `/api/lyrics/{id}`      | Retrieve lyrics by song or lyrics ID |\n| GET    | `/api/lyrics/{id}/sync` | Retrieve synced lyrics payload       |\n\n### Playlist\n\n| Method | Route            | Description                       |\n| ------ | ---------------- | --------------------------------- |\n| GET    | `/api/playlists` | Retrieve a playlist by ID or link |\n\n### Podcasts\n\n| Method | Route                | Description                                          |\n| ------ | -------------------- | ---------------------------------------------------- |\n| GET    | `/api/episodes/{id}` | Retrieve a podcast episode by ID                     |\n| GET    | `/api/podcasts`      | Retrieve a podcast by show ID, token, link, or query |\n| GET    | `/api/podcasts/{id}` | Retrieve a podcast by ID or token                    |\n\n### Search\n\n| Method | Route                   | Description                     |\n| ------ | ----------------------- | ------------------------------- |\n| GET    | `/api/search`           | Global search                   |\n| GET    | `/api/search/albums`    | Search for albums               |\n| GET    | `/api/search/artists`   | Search for artists              |\n| GET    | `/api/search/playlists` | Search for playlists            |\n| GET    | `/api/search/songs`     | Search for songs                |\n| GET    | `/api/search/top-query` | Search for the top query bucket |\n\n### Songs\n\n| Method | Route                         | Description                       |\n| ------ | ----------------------------- | --------------------------------- |\n| GET    | `/api/songs`                  | Retrieve songs by ID or link      |\n| GET    | `/api/songs/{id}`             | Retrieve song by ID               |\n| GET    | `/api/songs/{id}/ringtone`    | Retrieve ringtone preview details |\n| GET    | `/api/songs/{id}/share`       | Retrieve a shareable song link    |\n| GET    | `/api/songs/{id}/suggestions` | Retrieve song suggestions         |\n\n### Trending\n\n| Method | Route                     | Description                               |\n| ------ | ------------------------- | ----------------------------------------- |\n| GET    | `/api/trending`           | Retrieve all browse feeds in one response |\n| GET    | `/api/trending/albums`    | Retrieve trending albums                  |\n| GET    | `/api/trending/artists`   | Retrieve trending artists                 |\n| GET    | `/api/trending/playlists` | Retrieve trending playlists               |\n| GET    | `/api/trending/podcasts`  | Retrieve trending podcasts                |\n| GET    | `/api/trending/songs`     | Retrieve trending songs                   |\n\n## Example Requests\n\n```sh\ncurl \"https://shnwazdev-jiosaavn-apii.vercel.app/health\"\ncurl \"https://shnwazdev-jiosaavn-apii.vercel.app/api/search?query=Believer\"\ncurl \"https://shnwazdev-jiosaavn-apii.vercel.app/api/search/songs?query=Kesariya\"\ncurl \"https://shnwazdev-jiosaavn-apii.vercel.app/api/trending/songs?limit=1\"\n```\n\n## Run Locally\n\n```sh\nnpm install\nnpm run dev\n```\n\nOpen:\n\n```text\nhttp://localhost:3000\n```\n\n## Validate\n\n```sh\nnpm run lint\nnpm run build\nnpm test\nnpm run spell-check\n```\n\n## Deploy To Vercel\n\nImport the GitHub repository in Vercel, or deploy from the CLI:\n\n```sh\nnpm run vercel:deploy\n```\n\nRecommended Vercel settings:\n\n| Setting          | Value           |\n| ---------------- | --------------- |\n| Framework preset | Other           |\n| Build command    | `npm run build` |\n| Output directory | empty/default   |\n| Install command  | `npm ci`        |\n| Node.js          | 20 or newer     |\n\nThe Vercel entrypoint is:\n\n```text\napi/index.js\n```\n\nThe static homepage is served from:\n\n```text\npublic/index.html\n```\n\n## Repository About\n\nSuggested GitHub About text:\n\n```text\nUnofficial ShnwazDev JioSaavn API with Hono, TypeScript, OpenAPI docs, Vercel hosting, and no app-level rate limit.\n```\n\nSuggested topics:\n\n```text\njiosaavn, jiosaavn-api, music-api, hono, typescript, openapi, vercel, shnwazdev\n```\n\n## Tech Stack\n\n- Hono\n- TypeScript\n- Zod OpenAPI\n- Scalar API Reference\n- Vitest\n- ESLint\n- Vercel Serverless Functions\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshnwazdeveloper%2Fshnwazdev-jiosaavn-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshnwazdeveloper%2Fshnwazdev-jiosaavn-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshnwazdeveloper%2Fshnwazdev-jiosaavn-api/lists"}