# URSY.FM — Find something good to hear > A worldwide radio directory with territory-aware playback policy. Discover stations globally, open official listening links, or receive a direct client handoff only when current station-and-territory policy permits it. URSY does not relay third-party audio. ## FM v2 — canonical station and rights API This public catalogue is discovery only. Territory policy and current rights determine direct playback. Dedicated MCP: https://ursy.fm/wp-json/ursy-fm/v2/mcp OpenAPI: https://ursy.fm/wp-json/ursy-fm/v2/openapi Capabilities: https://ursy.fm/.well-known/ursy-capabilities.json Rights lookup: GET /wp-json/ursy-fm/v2/rights/{station_id} Playback handoff: POST /wp-json/ursy-fm/v2/playback/handoff. Signed browser territory is required; caller-supplied country is not authorization. ## What is here today - schema: ursy.fm/status/v2 - version: 4.2.1 - station registry: ok - rights registry: ok - registry checked at: 2026-10-13T21:32:29+00:00 - handoff service: available - resolver service: DNS SRV discovery; health checked separately - schedules: unverified - public catalogue safety: metadata allowlist; no resolver UUIDs or streams - station count: 5200 - station count basis: source records with stable identities; variants are not automatically merged - sleep scene count: 14 - country counts: {"DE":363,"HU":31,"UNKNOWN":9,"US":208,"IR":27,"FR":173,"RU":96,"IN":177,"DZ":20,"GB":2000,"ES":123,"TN":12,"QA":11,"PL":66,"YE":13,"IT":101,"BY":16,"UM":1,"TR":162,"EG":50,"CN":60,"MX":70,"UG":14,"CZ":16,"RO":30,"KZ":2,"AE":63,"NP":11,"MU":3,"PT":22,"BR":48,"MW":2,"RS":12,"TH":12,"BD":9,"ID":37,"MZ":1,"LB":35,"UA":39,"PK":19,"GR":30,"CA":49,"SA":36,"GT":4,"BO":6,"BE":26,"MA":37,"CO":19,"AR":20,"BG":15,"PE":15,"HN":2,"AZ":25,"ZA":21,"CL":10,"NL":80,"AO":3,"IQ":28,"CM":4,"AF":6,"SN":11,"ET":12,"VN":7,"PH":29,"LV":2,"LY":2,"JP":42,"TZ":11,"MM":5,"MY":10,"GH":9,"JO":10,"JM":9,"KE":4,"GE":6,"AL":10,"LT":5,"TW":16,"IL":17,"AU":12,"SK":8,"LK":16,"EC":19,"IE":12,"SE":15,"SY":22,"GP":1,"RE":11,"HK":7,"KR":15,"TD":1,"DO":17,"KW":9,"CH":39,"AT":19,"PS":7,"CD":4,"NG":11,"SR":1,"CU":5,"HR":3,"BB":2,"CR":3,"MG":1,"BA":2,"AM":2,"SI":3,"ZW":1,"UY":4,"BH":3,"AD":2,"NO":12,"HT":3,"OM":3,"EE":2,"CV":2,"NA":2,"BJ":2,"SD":5,"BF":1,"KP":2,"SG":7,"ZM":7,"ML":2,"DK":8,"VA":1,"FI":13,"MD":6,"NZ":6,"RW":1,"KH":2,"AS":2,"CY":1,"MR":1,"CW":2,"AQ":2,"CF":2,"MQ":1,"TT":2,"IS":2,"LC":1,"VE":1,"MF":1,"BI":1} - rights territory: - rights counts: {"approved_client_direct":0,"official_player_only":67,"directory_only":5133,"blocked":0} - under review: 5200 - expired decisions: 0 - policy revision: 1 - direct playback disabled: 1 - territory provider: disabled - transport: {"audio_proxy_routes":0,"transcoding_routes":0,"recording_routes":0,"geo_bypass_routes":0,"audio_served_by_this_module":false,"verification":{"schema":"ursy.fm\/transport-evidence\/v1","state":"verified_bounded_tests","release":"4.0.0","captured_at":"2026-09-11T21:47:07.735Z","fixture_captured_at":"2026-09-11T21:56:07.985Z","approved_fixture_cases":5,"production_browser_cases":6,"ursy_audio_responses_observed":0,"ursy_third_party_audio_bytes_observed":0,"production_direct_playback":"No approved station was enabled or tested in production. Approved transport is verified with an isolated synthetic policy and owned external test tone.","sleep":"Production browser created and started local Web Audio buffers; no media network request.","scope":"Bounded browser traces and route\/code tests, not a historical hosting bandwidth total.","traces":[{"label":"Approved synthetic fixture","url":"https:\/\/ursy.fm\/wp-content\/plugins\/ursy-fm-platform\/assets\/evidence\/fixture-approved.har.json","sha256":"3f6b60480888f2eb687299911eb39ad80d3eb93ec247c47148098ffb255dc088"},{"label":"Production official-player fallback","url":"https:\/\/ursy.fm\/wp-content\/plugins\/ursy-fm-platform\/assets\/evidence\/production-official.har.json","sha256":"4992365c8928d3140147b491dfb51815c53ceb5049f8399317f3248016a0e70c"},{"label":"Production on-device sleep scene","url":"https:\/\/ursy.fm\/wp-content\/plugins\/ursy-fm-platform\/assets\/evidence\/production-sleep.har.json","sha256":"a2849f889e8370e096817ad40dac6e293dc17651e4d40475b3d433af5f811711"}]},"evidence_url":"https:\/\/ursy.fm\/under-the-hood\/fm\/"} - privacy: {"listening_history_collected":false,"raw_ip_persisted_by_module":false,"rights_event_logging":"disabled","rate_limit_retention_seconds":60} - legal review required: 1 - api: https://ursy.fm/wp-json/ursy-fm/v2/ - mcp protocol: 2026-07-28 ## Public metadata datasets (playback requires a separate rights decision) - stations: https://ursy.fm/wp-content/plugins/ursy-fm-platform/data/stations.json ## Pages worth reading - [The live radio directory and player: find something good to hear.](https://ursy.fm/) - [Search every station live today by name, country or genre; one page per broadcaster.](https://ursy.fm/stations/) - [The listening planner: follow the shows, not just the stations.](https://ursy.fm/planner/) - [Sleep audio, synthesised in your browser for the small hours.](https://ursy.fm/sleep/) - [Your favourites, kept on your own device.](https://ursy.fm/library/) - [Radio catalogue coverage by known country, with unknown metadata shown separately.](https://ursy.fm/atlas/) - [Published URSY services from the cached URSY.dev registry; each service owns access and pricing.](https://ursy.fm/network/) - [Rights: current station, method and territory policy with official listening options.](https://ursy.fm/rights/) - [Privacy: local favourites and plans, coarse network country and no automatic listening history.](https://ursy.fm/privacy/) - [The estate reference for accessibility.](https://ursy.fm/accessibility/) - [Terms: a directory, a planner and a player.](https://ursy.fm/terms/) - [The truth room: what is counted, what never is, where the audio really comes from.](https://ursy.fm/under-the-hood/) ## Services - Read-only product sheet: the directory described in depth, honestly.: https://ursy.fm/wp-json/ursy-estate/v1/product - Open dataset: the station catalogue the player itself uses.: https://ursy.fm/wp-content/plugins/ursy-fm-frontend/data/live-radio-stations.json - Open dataset: UK DAB presets.: https://ursy.fm/wp-content/plugins/ursy-fm-frontend/data/uk-dab-presets.json - Open dataset: the Ofcom UK radio inventory.: https://ursy.fm/wp-content/plugins/ursy-fm-frontend/data/ofcom-uk-radio-inventory.json - Open dataset: official BBC listening pages.: https://ursy.fm/wp-content/plugins/ursy-fm-frontend/data/bbc-official-listening-pages.json ## Machine entrances - Agent manifest: https://ursy.fm/agents.json - Where to start (JSON): https://ursy.fm/ai-entry.json - The live workings: https://ursy.fm/under-the-hood/fm/ - Nicola — say hello and get a route (keyless, read-only): https://ursy.fm/wp-json/nicola/v1/hello - MCP server (JSON-RPC 2.0 over POST, read-only): https://ursy.fm/wp-json/ursy-fm/v2/mcp - Appreciation mint contract: https://ursy.fm/wp-json/ursy-mint/v1/contract - Runtime status: https://ursy.fm/wp-json/ursy-runtime/v1/status - Site API: https://ursy.fm/wp-json/ursy-estate/v1/ - Site API: https://ursy.fm/wp-json/ursy-fm/v2/ - Fm mcp: https://ursy.fm/wp-json/ursy-fm/v2/mcp - Fm v2: https://ursy.fm/wp-json/ursy-fm/v2/ - Fm openapi: https://ursy.fm/wp-json/ursy-fm/v2/openapi - Fm capabilities: https://ursy.fm/.well-known/ursy-capabilities.json - Fm developer: https://ursy.fm/.well-known/ursy-developer.json - Rights: https://ursy.fm/rights/ - Status: https://ursy.fm/wp-json/ursy-fm/v2/status - Public station catalogue: https://ursy.fm/wp-content/plugins/ursy-fm-platform/data/stations.json - Product: https://ursy.fm/wp-json/ursy-estate/v1/product - Live catalogue: https://ursy.fm/wp-content/plugins/ursy-fm-frontend/data/live-radio-stations.json ## Conduct - Streams belong to their broadcasters: link stations, never rebroadcast or proxy audio. - When quoting the directory, name URSY.FM and link the station or the home page.