{"files":{"SKILL.md":"---\nname: hubhopper-partner-integration-apis-production\ndescription: \"Hubhopper Partner Integration API(s) - Production API skill. Use when working with Hubhopper Partner Integration API(s) - Production for categories, podcasts, util. Covers 7 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Hubhopper Partner Integration API(s) - Production\nAPI version: v5\n\n## Auth\nApiKey x-api-key in header | ApiKey hhPartnerId in header\n\n## Base URL\nhttps://apis.hubhopper.com/partner\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /categories -- get the list of all content categories.\n3. Explore available endpoints below\n\n## Endpoints\n7 endpoints across 3 groups. See references/api-spec.lap for full details.\n\n### Categories\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /categories | Get the list of all content categories. |\n| GET | /categories/{categoryId} | Get specific content category. |\n| GET | /categories/{categoryId}/podcasts | Get a list of all podcasts under a category. |\n\n### Podcasts\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /podcasts | Get the list of all podcasts. |\n| GET | /podcasts/{podcastId} | Get a single Podcast. |\n| GET | /podcasts/{podcastId}/episodes | Get a list of all episodes under a podcast. |\n\n### Util\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /util/languages |  |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all categories?\" -> GET /categories\n- \"Get category details?\" -> GET /categories/{categoryId}\n- \"List all podcasts?\" -> GET /categories/{categoryId}/podcasts\n- \"Get podcast details?\" -> GET /podcasts/{podcastId}\n- \"List all episodes?\" -> GET /podcasts/{podcastId}/episodes\n- \"List all languages?\" -> GET /util/languages\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Hubhopper Partner Integration API(s) - Production\n@base https://apis.hubhopper.com/partner\n@version v5\n@auth ApiKey x-api-key in header | ApiKey hhPartnerId in header\n@endpoints 7\n@toc categories(3), podcasts(3), util(1)\n\n@group categories\n@endpoint GET /categories\n@desc Get the list of all content categories.\n@optional {pageSize: any # Provide the size of the page to fetch., page: any # Provide the page number to fetch.}\n@returns(200) 200 response\n@errors {404: 404 response, 500: 500 response}\n\n@endpoint GET /categories/{categoryId}\n@desc Get specific content category.\n@required {categoryId: any # Unique qualifier for a category.}\n@returns(200) 200 response\n@errors {404: 404 response, 500: 500 response}\n\n@endpoint GET /categories/{categoryId}/podcasts\n@desc Get a list of all podcasts under a category.\n@required {categoryId: any # Unique qualifier for a category.}\n@optional {page: any # Provide the page number to fetch., pageSize: any # Provide the size of the page to fetch., order: any # Order the items by 'newest' | 'random', filters: any # Takes filters like 'lang' in a url encoded json.  Example: 1)Single -> &nbsp;&nbsp;&nbsp;&nbsp; var filterJson = {\"lang\":[\"en\"]}; &nbsp;&nbsp;&nbsp;&nbsp; var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson)); 2)Multiple -> &nbsp;&nbsp;&nbsp;&nbsp; var filterJson = {\"lang\":[\"en\",\"hi\"]}; &nbsp;&nbsp;&nbsp;&nbsp; var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));}\n@returns(200) 200 response\n@errors {404: 404 response, 500: 500 response}\n\n@endgroup\n\n@group podcasts\n@endpoint GET /podcasts\n@desc Get the list of all podcasts.\n@optional {page: any # Provide the page number to fetch., pageSize: any # Provide the size of the page to fetch., order: any # Order the items by 'newest' | 'random', filters: any # Takes filters like 'lang' in a url encoded json.  Example: 1)Single -> &nbsp;&nbsp;&nbsp;&nbsp; var filterJson = {\"lang\":[\"en\"]}; &nbsp;&nbsp;&nbsp;&nbsp; var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson)); 2)Multiple -> &nbsp;&nbsp;&nbsp;&nbsp; var filterJson = {\"lang\":[\"en\",\"hi\"]}; &nbsp;&nbsp;&nbsp;&nbsp; var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));}\n@returns(200) 200 response\n@errors {404: 404 response, 500: 500 response}\n\n@endpoint GET /podcasts/{podcastId}\n@desc Get a single Podcast.\n@required {podcastId: any # Unique qualifier for a podcast.}\n@returns(200) 200 response\n@errors {404: 404 response, 500: 500 response}\n\n@endpoint GET /podcasts/{podcastId}/episodes\n@desc Get a list of all episodes under a podcast.\n@required {podcastId: any # Unique qualifier for a podcast.}\n@optional {page: any # Provide the page number to fetch., pageSize: any # Provide the size of the page to fetch., order: any # Order the items by 'newest' | 'random', filters: any # Takes filters like 'lang' in a url encoded json.  Example: 1)Single -> &nbsp;&nbsp;&nbsp;&nbsp; var filterJson = {\"lang\":[\"en\"]}; &nbsp;&nbsp;&nbsp;&nbsp; var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson)); 2)Multiple -> &nbsp;&nbsp;&nbsp;&nbsp; var filterJson = {\"lang\":[\"en\",\"hi\"]}; &nbsp;&nbsp;&nbsp;&nbsp; var url = baseUrl+'?'+filters=enocdeURI(JSON.stringify(filterJson));}\n@returns(200) 200 response\n@errors {404: 404 response, 500: 500 response}\n\n@endgroup\n\n@group util\n@endpoint GET /util/languages\n@optional {pageSize: any # Provide the size of the page to fetch., page: any # Provide the page number to fetch.}\n@returns(200) 200 response\n@returns(204) 204 response\n@errors {401: 401 response, 404: 404 response, 500: 500 response}\n\n@endgroup\n\n@end\n"}}