{
    "meta": {
        "lookup": "09810.16f6.1a0.fm.radiodns.org",
        "bearer": "fm:1a0.16f6.09810",
        "gcc": "1a0",
        "pi": "16f6",
        "mhz": 98.1,
        "station": {
            "call": "KISC",
            "pi": "16f6",
            "mhz": "98.10",
            "facility": "60419",
            "city": "SPOKANE",
            "state": "WA",
            "kind": "full-service"
        },
        "checked_at": "2026-10-17T22:42:12+00:00",
        "fqdn": "rdns.iheart.com",
        "name": "Kiss 98.1"
    },
    "verdict": {
        "level": "fail",
        "headline": "1 problem found"
    },
    "counts": {
        "pass": 13,
        "warn": 5,
        "fail": 1,
        "info": 10
    },
    "sections": [
        {
            "title": "What is being checked",
            "steps": [
                {
                    "status": "info",
                    "title": "KISC - SPOKANE, WA",
                    "detail": "From the NRSC list: 98.10 MHz, PI code 16F6, FCC facility 60419.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "RadioDNS lookup name",
                    "detail": "09810.16f6.1a0.fm.radiodns.org  (frequency 98.10 MHz, PI 16F6, country code 1a0)",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "1. RadioDNS registration",
            "steps": [
                {
                    "status": "pass",
                    "title": "Registered",
                    "detail": "09810.16f6.1a0.fm.radiodns.org points to the station's authoritative domain: rdns.iheart.com",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "2. Service discovery (SRV records)",
            "steps": [
                {
                    "status": "info",
                    "title": "_radiospi._tcp.rdns.iheart.com: not published",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "_radioepg._tcp.rdns.iheart.com published",
                    "detail": "priority 10, weight 50, port 80 -> epg.iheart.com",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "Only the older _radioepg record is published",
                    "detail": "",
                    "fix": "Add _radiospi._tcp.rdns.iheart.com on port 443 as well, so receivers that use HTTPS can find the SI file."
                },
                {
                    "status": "info",
                    "title": "_radiovis._tcp: not published",
                    "detail": "Slideshow/visuals (STOMP) - optional, only needed for a live slideshow service.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "_radiopush._tcp: not published",
                    "detail": "Slideshow/visuals (Server-Sent Events) - optional, only needed for a live slideshow service.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "_radiovis-http._tcp: not published",
                    "detail": "Slideshow/visuals (HTTP) - optional, only needed for a live slideshow service.",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "3. Service Information file (SI.xml)",
            "steps": [
                {
                    "status": "pass",
                    "title": "HTTP endpoint http://epg.iheart.com/radiodns/spi/3.1/SI.xml answered",
                    "detail": "30 ms, 1,408,477 bytes",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Content type is application/xml",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "SI file has no caching headers",
                    "detail": "",
                    "fix": "Add Cache-Control: max-age (for example 86400 for 24 hours). Without it, receivers guess - and some ignore the content."
                },
                {
                    "status": "warn",
                    "title": "The file does not strictly follow the official SI schema (3.1)",
                    "detail": "line 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\nline 1: Element 'link', attribute 'role': The attribute 'role' is not allowed.\n(1806 more not shown)",
                    "fix": "Many receivers are forgiving, but strict ones may ignore a file that does not match the schema. RadioDNS's SI tool (si.radiodns.org) can rebuild a correct file."
                }
            ],
            "extra": {
                "links": [
                    [
                        "Make an SI file accessible (PDF)",
                        "https://radiodns.org/wp-content/uploads/2014/02/HOWTO-MakeSIandXSIfilesaccessibletoRadioDNSHybridRadiodevices.pdf"
                    ],
                    [
                        "Build an SI file with RadioDNS's tool",
                        "https://si.radiodns.org/"
                    ]
                ]
            }
        },
        {
            "title": "4. Your station in the file",
            "steps": [
                {
                    "status": "info",
                    "title": "606 services in the file",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Station found: Kiss 98.1",
                    "detail": "Matched on bearer fm:1a0.16f6.09810",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Short name: Kiss 98.",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Medium name: Kiss 98.1",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Long name: Kiss 98.1",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Short description present",
                    "detail": "Spokane's Best Variety",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No long description",
                    "detail": "Optional (up to 1200 characters).",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No keywords",
                    "detail": "Optional.",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "3 links",
                    "detail": "Install iHeartRadio https://play.google.com/store/apps/details?id=com.clearchannel.iheartradio.controller\nInstall iHeartRadio https://apps.apple.com/app/iheart-radio-podcasts-music/id290638154\nLaunch iHeartRadio https://www.iheart.com/live/2585/?autoplay=true&sc=radiodns",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "The <radiodns> element matches the registration",
                    "detail": "fqdn rdns.iheart.com, service identifier 2585",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "5. Logos",
            "steps": [
                {
                    "status": "pass",
                    "title": "All five standard logo sizes are listed",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "fail",
                    "title": "5 of 5 logos have problems",
                    "detail": "See the table below.",
                    "fix": "Every logo URL must return a real PNG or JPEG of the declared size."
                }
            ],
            "extra": {
                "logos": [
                    {
                        "url": "https://i.iheart.com/v3/re/assets.streams/6763259c8ba6e3107873206e?ops=contain(32,32)",
                        "declared": "32x32",
                        "actual": "",
                        "bytes": 886,
                        "ok": false,
                        "note": "Not a PNG or JPEG image",
                        "preview": null
                    },
                    {
                        "url": "https://i.iheart.com/v3/re/assets.streams/6763259c8ba6e3107873206e?ops=contain(112,32)",
                        "declared": "112x32",
                        "actual": "",
                        "bytes": 850,
                        "ok": false,
                        "note": "Not a PNG or JPEG image",
                        "preview": null
                    },
                    {
                        "url": "https://i.iheart.com/v3/re/assets.streams/6763259c8ba6e3107873206e?ops=contain(128,128)",
                        "declared": "128x128",
                        "actual": "",
                        "bytes": 3414,
                        "ok": false,
                        "note": "Not a PNG or JPEG image",
                        "preview": null
                    },
                    {
                        "url": "https://i.iheart.com/v3/re/assets.streams/6763259c8ba6e3107873206e?ops=contain(320,240)",
                        "declared": "320x240",
                        "actual": "",
                        "bytes": 6866,
                        "ok": false,
                        "note": "Not a PNG or JPEG image",
                        "preview": null
                    },
                    {
                        "url": "https://i.iheart.com/v3/re/assets.streams/6763259c8ba6e3107873206e?ops=contain(600,600)",
                        "declared": "600x600",
                        "actual": "",
                        "bytes": 8510,
                        "ok": false,
                        "note": "Not a PNG or JPEG image",
                        "preview": null
                    }
                ]
            }
        },
        {
            "title": "6. Transmitters and streams",
            "steps": [
                {
                    "status": "pass",
                    "title": "FM bearer fm:1a0.16f6.09810",
                    "detail": "cost 100",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "Other bearer: hd:292.0ec03",
                    "detail": "Not checked by this tool.",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "Stream OK: http://stream.revma.ihrhls.com/zc2585?iheartradioversion=rds_1.1.0&clienttype=radio.dns&devicename=radio.dns&streamid=2585&terminalid=522&init_id=8169&fb_broadcast=false",
                    "detail": "audio/aac\nThe file says audio/aacp but the stream answers audio/aac.\nNo offset set (optional): if the stream runs behind the broadcast, an offset in milliseconds lets receivers line the two up.",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "Stream OK: https://stream.revma.ihrhls.com/zc2585?iheartradioversion=rds_1.1.0&clienttype=radio.dns&devicename=radio.dns&streamid=2585&terminalid=522&init_id=8169&fb_broadcast=false",
                    "detail": "audio/aac\nThe file says audio/aacp but the stream answers audio/aac.\nNo offset set (optional): if the stream runs behind the broadcast, an offset in milliseconds lets receivers line the two up.",
                    "fix": ""
                }
            ],
            "extra": []
        }
    ]
}