openapi: 3.0.3 info: title: TuneIn Streaming API (OPML/RadioTime) Search.ashx API description: 'The TuneIn Streaming API (backed by opml.radiotime.com) provides access to TuneIn''s directory of internet radio stations, podcasts, sports audio, news, and music. Callers can browse categories, search for stations, describe specific stations or shows, and retrieve stream URLs for playback. Responses are available in OPML (XML) or JSON format. No authentication is required for the public streaming API. ' version: 1.0.0 contact: name: TuneIn Support url: https://help.tunein.com/ x-unofficial-docs: https://tunein-api.corehacked.com/ servers: - url: https://opml.radiotime.com description: TuneIn OPML / RadioTime public endpoint tags: - name: Search.ashx paths: /search.ashx: get: operationId: searchDirectory summary: Search for stations, shows, and podcasts description: 'Search the TuneIn directory for radio stations, shows, topics, and podcasts. Returns an OPML (XML) or JSON list of matching results. The query parameter must be URL-encoded. Returns a "No results" outline element when no matches are found. ' parameters: - name: query in: query description: 'Search term. Must be URL-encoded (e.g. "GitFM" becomes "GitFM", multi-word queries should encode spaces as "+"). ' required: true schema: type: string example: BBC Radio 4 - name: render in: query description: 'Response format override. Set to "json" to receive JSON instead of the default XML/OPML response. ' required: false schema: type: string enum: - json responses: '200': description: 'OPML (XML) or JSON list of matching stations/shows. Each result outline may include: type, text, URL, guide_id, image, bitrate, reliability, genre_id, formats, playing, item attributes. When no results are found, returns an outline of type "text" with a "No results for [query]" message. ' content: application/xml: example: "\n\n \n Search\n 200\n \n \n \n \n\n" application/json: schema: $ref: '#/components/schemas/SearchResponse' tags: - Search.ashx components: schemas: SearchResponse: type: object properties: head: type: object properties: title: type: string example: Search status: type: integer example: 200 body: type: object properties: outline: type: array items: $ref: '#/components/schemas/SearchOutline' SearchOutline: type: object description: A single search result item (JSON rendering) properties: type: type: string description: Outline type (e.g. "audio", "link", "text") text: type: string description: Display name of the station or show URL: type: string format: uri description: Tune URL for the station or show guide_id: type: string description: Unique TuneIn identifier image: type: string format: uri description: Station or show image URL bitrate: type: integer description: Stream bitrate in kbps reliability: type: integer description: Stream reliability percentage (0-100) genre_id: type: string description: Genre classification code formats: type: string description: Audio format (e.g. "mp3") playing: type: string description: Currently playing content item: type: string description: Item classification (e.g. "station", "show")