<commit_before>FORMAT: 1A
HOST: http://ponyvillelive.com/api

# Ponyville Live! API
The Ponyville Live! (or PVL) API allows you to access detailed information from the PVL network database, including information on radio stations and video streams, podcasts, events, songs and more.

## Important Notes
* If you are retrieving data from the PVL system for your application, we encourage you to add a promotional link on your page back to the Ponyville Live! network. You can find the full brand kit for PVL at <http://ponyvillelive.com/resources/brand_package.zip>.
* Currently, no rate limits exist for API calls. Please be reasonable with your usage of the system. Rate limits may be implemented in the future if necessary.
* API calls are subject to change, and supplemental fields may be added or removed as necessary. Our development team will avoid making changes to the API schema wherever possible.
* Timestamps:
 * UNIX Timestamps are provided wherever possible, and are preferred.
 * Any timestamp that is returned that is not in UNIX timestamp format is provided in the US Eastern (EST/EDT) time zone.
* Unique Identifiers:
 * Stations in the network use a special identifier called a "shortcode". This identifier is the name of the station, in lower case, with its special characters removed. For example, "Ponyville Live!" would become "ponyville_live".
 * Songs are identified by a 32-character hash of their relevant details. This same hash is used across the system.

# Group Now Playing
Retrieve "Now Playing" information about active stations.

### GET /nowplaying
Returns all now playing data for active stations, indexed by the station's Short Code identifier.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": {
            "ponyvillefm": {
              "status": "online",
              "station": {
                "id": 20,
                "name": "PonyvilleFM",
                "shortcode": "ponyvillefm",
                "genre": "Pony Dance Hits & #1 DJ Station!",
                "category": "audio",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150406_002857_481_image_url_1.jpg",
                "web_url": "http://www.ponyvillefm.com/",
                "twitter_url": "http://www.twitter.com/PonyvilleFM",
                "irc": "#ponyvillefm",
                "sort_order": -20,
                "player_url": "http://pvlive.me/ponyvillefm",
                "request_url": "//dev.pvlive.me/station/request/id/20",
                "stream_url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                "default_stream_id": 32
              },
              "streams": [
                {
                  "id": 32,
                  "name": "Mane Stream (North America MP3)",
                  "url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                  "type": "shoutcast2",
                  "is_default": true,
                  "status": "online",
                  "bitrate": "128",
                  "format": "audio/mpeg",
                  "listeners": {
                    "current": 24,
                    "unique": 24,
                    "total": 28
                  },
                  "current_song": {
                    "id": "2cd1037164c73dc970c15f78f0202d26",
                    "text": "Vinylz - Eclipse (Original Mix)",
                    "artist": "Vinylz",
                    "title": "Eclipse (Original Mix)",
                    "image_url": "",
                    "created": 1436175751,
                    "play_count": 2,
                    "last_played": 1436611623,
                    "score": 100,
                    "sh_id": 2363,
                    "vote_urls": {
                      "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                      "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                      "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                    }
                  },
                  "song_history": [
                    {
                      "played_at": 1436611387,
                      "song": {
                        "id": "d562483a0f6e873c62889735cd4af36a",
                        "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                        "artist": "Forest Rain",
                        "title": "A Summer in the Stars (Aftermath Remix)",
                        "image_url": null,
                        "created": 1380236762,
                        "play_count": 185,
                        "last_played": 1436611387,
                        "score": 0
                      }
                    },
                    {
                      "played_at": 1436611144,
                      "song": {
                        "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                        "text": "Emforay - All Around",
                        "artist": "Emforay",
                        "title": "All Around",
                        "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                        "created": 1380251551,
                        "play_count": 141,
                        "last_played": 1436611144,
                        "score": 0
                      }
                    }
                  ]
                }
              ],
              "current_song": {
                "id": "2cd1037164c73dc970c15f78f0202d26",
                "text": "Vinylz - Eclipse (Original Mix)",
                "artist": "Vinylz",
                "title": "Eclipse (Original Mix)",
                "image_url": "",
                "created": 1436175751,
                "play_count": 2,
                "last_played": 1436611623,
                "score": 100,
                "sh_id": 2363,
                "vote_urls": {
                  "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                  "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                  "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                }
              },
              "song_history": [
                {
                  "played_at": 1436611387,
                  "song": {
                    "id": "d562483a0f6e873c62889735cd4af36a",
                    "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                    "artist": "Forest Rain",
                    "title": "A Summer in the Stars (Aftermath Remix)",
                    "image_url": null,
                    "created": 1380236762,
                    "play_count": 185,
                    "last_played": 1436611387,
                    "score": 0
                  }
                },
                {
                  "played_at": 1436611144,
                  "song": {
                    "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                    "text": "Emforay - All Around",
                    "artist": "Emforay",
                    "title": "All Around",
                    "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                    "created": 1380251551,
                    "play_count": 141,
                    "last_played": 1436611144,
                    "score": 0
                  }
                }
              ],
              "listeners": {
                "current": 36,
                "unique": 36,
                "total": 40
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            },
            "pvl_special_events": {
              "status": "offline",
              "station": {
                "id": 59,
                "name": "PVL Special Events",
                "shortcode": "pvl_special_events",
                "genre": "Ponyville Live! Events",
                "category": "video",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150308_030714_999_image_url_1.png",
                "web_url": "http://www.livestream.com/ponyvillelive",
                "twitter_url": "https://twitter.com/PonyvilleLive",
                "irc": "#PonyvilleLive",
                "sort_order": -10,
                "player_url": "http://pvlive.me/pvl_special_events",
                "request_url": ""
              },
              "streams": [
                {
                  "id": 131,
                  "name": "Primary Stream",
                  "url": "http://www.livestream.com/ponyvillelive",
                  "type": "video",
                  "is_default": false,
                  "on_air": {
                    "text": "Stream Offline",
                    "thumbnail": "//dev.pvlive.me/static/images/video_thumbnail.png"
                  },
                  "meta": {
                    "status": "offline",
                    "listeners": 0
                  },
                  "status": "offline"
                }
              ],
              "listeners": {
                "current": 0,
                "unique": 0,
                "total": 0
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            }
          }
        }

### GET /nowplaying/index/id/{id}
**Station Specified by Numeric ID**

Returns a single station's now-playing information based on a station identifier.

+ Parameters
  + id (number, required) - The station ID.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": {
            "ponyvillefm": {
              "status": "online",
              "station": {
                "id": 20,
                "name": "PonyvilleFM",
                "shortcode": "ponyvillefm",
                "genre": "Pony Dance Hits & #1 DJ Station!",
                "category": "audio",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150406_002857_481_image_url_1.jpg",
                "web_url": "http://www.ponyvillefm.com/",
                "twitter_url": "http://www.twitter.com/PonyvilleFM",
                "irc": "#ponyvillefm",
                "sort_order": -20,
                "player_url": "http://pvlive.me/ponyvillefm",
                "request_url": "//dev.pvlive.me/station/request/id/20",
                "stream_url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                "default_stream_id": 32
              },
              "streams": [
                {
                  "id": 32,
                  "name": "Mane Stream (North America MP3)",
                  "url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                  "type": "shoutcast2",
                  "is_default": true,
                  "status": "online",
                  "bitrate": "128",
                  "format": "audio/mpeg",
                  "listeners": {
                    "current": 24,
                    "unique": 24,
                    "total": 28
                  },
                  "current_song": {
                    "id": "2cd1037164c73dc970c15f78f0202d26",
                    "text": "Vinylz - Eclipse (Original Mix)",
                    "artist": "Vinylz",
                    "title": "Eclipse (Original Mix)",
                    "image_url": "",
                    "created": 1436175751,
                    "play_count": 2,
                    "last_played": 1436611623,
                    "score": 100,
                    "sh_id": 2363,
                    "vote_urls": {
                      "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                      "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                      "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                    }
                  },
                  "song_history": [
                    {
                      "played_at": 1436611387,
                      "song": {
                        "id": "d562483a0f6e873c62889735cd4af36a",
                        "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                        "artist": "Forest Rain",
                        "title": "A Summer in the Stars (Aftermath Remix)",
                        "image_url": null,
                        "created": 1380236762,
                        "play_count": 185,
                        "last_played": 1436611387,
                        "score": 0
                      }
                    },
                    {
                      "played_at": 1436611144,
                      "song": {
                        "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                        "text": "Emforay - All Around",
                        "artist": "Emforay",
                        "title": "All Around",
                        "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                        "created": 1380251551,
                        "play_count": 141,
                        "last_played": 1436611144,
                        "score": 0
                      }
                    }
                  ]
                }
              ],
              "current_song": {
                "id": "2cd1037164c73dc970c15f78f0202d26",
                "text": "Vinylz - Eclipse (Original Mix)",
                "artist": "Vinylz",
                "title": "Eclipse (Original Mix)",
                "image_url": "",
                "created": 1436175751,
                "play_count": 2,
                "last_played": 1436611623,
                "score": 100,
                "sh_id": 2363,
                "vote_urls": {
                  "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                  "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                  "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                }
              },
              "song_history": [
                {
                  "played_at": 1436611387,
                  "song": {
                    "id": "d562483a0f6e873c62889735cd4af36a",
                    "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                    "artist": "Forest Rain",
                    "title": "A Summer in the Stars (Aftermath Remix)",
                    "image_url": null,
                    "created": 1380236762,
                    "play_count": 185,
                    "last_played": 1436611387,
                    "score": 0
                  }
                },
                {
                  "played_at": 1436611144,
                  "song": {
                    "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                    "text": "Emforay - All Around",
                    "artist": "Emforay",
                    "title": "All Around",
                    "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                    "created": 1380251551,
                    "play_count": 141,
                    "last_played": 1436611144,
                    "score": 0
                  }
                }
              ],
              "listeners": {
                "current": 36,
                "unique": 36,
                "total": 40
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            }
          }
        }

### GET /nowplaying/index/station/{shortcode}
**Station Specified by Shortcode**

Returns a single station's now-playing information based on a station's "short code" identifier.

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": {
            "ponyvillefm": {
              "status": "online",
              "station": {
                "id": 20,
                "name": "PonyvilleFM",
                "shortcode": "ponyvillefm",
                "genre": "Pony Dance Hits & #1 DJ Station!",
                "category": "audio",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150406_002857_481_image_url_1.jpg",
                "web_url": "http://www.ponyvillefm.com/",
                "twitter_url": "http://www.twitter.com/PonyvilleFM",
                "irc": "#ponyvillefm",
                "sort_order": -20,
                "player_url": "http://pvlive.me/ponyvillefm",
                "request_url": "//dev.pvlive.me/station/request/id/20",
                "stream_url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                "default_stream_id": 32
              },
              "streams": [
                {
                  "id": 32,
                  "name": "Mane Stream (North America MP3)",
                  "url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                  "type": "shoutcast2",
                  "is_default": true,
                  "status": "online",
                  "bitrate": "128",
                  "format": "audio/mpeg",
                  "listeners": {
                    "current": 24,
                    "unique": 24,
                    "total": 28
                  },
                  "current_song": {
                    "id": "2cd1037164c73dc970c15f78f0202d26",
                    "text": "Vinylz - Eclipse (Original Mix)",
                    "artist": "Vinylz",
                    "title": "Eclipse (Original Mix)",
                    "image_url": "",
                    "created": 1436175751,
                    "play_count": 2,
                    "last_played": 1436611623,
                    "score": 100,
                    "sh_id": 2363,
                    "vote_urls": {
                      "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                      "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                      "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                    }
                  },
                  "song_history": [
                    {
                      "played_at": 1436611387,
                      "song": {
                        "id": "d562483a0f6e873c62889735cd4af36a",
                        "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                        "artist": "Forest Rain",
                        "title": "A Summer in the Stars (Aftermath Remix)",
                        "image_url": null,
                        "created": 1380236762,
                        "play_count": 185,
                        "last_played": 1436611387,
                        "score": 0
                      }
                    },
                    {
                      "played_at": 1436611144,
                      "song": {
                        "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                        "text": "Emforay - All Around",
                        "artist": "Emforay",
                        "title": "All Around",
                        "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                        "created": 1380251551,
                        "play_count": 141,
                        "last_played": 1436611144,
                        "score": 0
                      }
                    }
                  ]
                }
              ],
              "current_song": {
                "id": "2cd1037164c73dc970c15f78f0202d26",
                "text": "Vinylz - Eclipse (Original Mix)",
                "artist": "Vinylz",
                "title": "Eclipse (Original Mix)",
                "image_url": "",
                "created": 1436175751,
                "play_count": 2,
                "last_played": 1436611623,
                "score": 100,
                "sh_id": 2363,
                "vote_urls": {
                  "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                  "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                  "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                }
              },
              "song_history": [
                {
                  "played_at": 1436611387,
                  "song": {
                    "id": "d562483a0f6e873c62889735cd4af36a",
                    "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                    "artist": "<NAME>",
                    "title": "A Summer in the Stars (Aftermath Remix)",
                    "image_url": null,
                    "created": 1380236762,
                    "play_count": 185,
                    "last_played": 1436611387,
                    "score": 0
                  }
                },
                {
                  "played_at": 1436611144,
                  "song": {
                    "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                    "text": "Emforay - All Around",
                    "artist": "Emforay",
                    "title": "All Around",
                    "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                    "created": 1380251551,
                    "play_count": 141,
                    "last_played": 1436611144,
                    "score": 0
                  }
                }
              ],
              "listeners": {
                "current": 36,
                "unique": 36,
                "total": 40
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            }
          }
        }

# Group Schedules #
Functions for retrieving the schedules of the individual stations or the PVL network itself.

### GET /schedule
**All Stations**

A list of events coming up for all stations within 30 days.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2598,
              "station_id": 53,
              "guid": "5df2db7f033e17f24a57d230b2ed6574",
              "start_time": 1436644800,
              "end_time": 1436652000,
              "is_all_day": false,
              "title": "Kucykowa Czytelnia",
              "location": null,
              "body": "",
              "banner_url": null,
              "web_url": "https://www.google.com/calendar/event?eid=dGYwaGU3dnZqbDZnYzZtNzdnY29icmMxcXNfMjAxNTA3MTFUMjAwMDAwWiB0YnZ0OGhodmg0cWRsNXBqcjE1NDU5YXFwc0Bn",
              "range": "Now to 6:00pm",
              "image_url": "//dev.pvlive.me/static/stations/20150218_081837_457_image_url_1.png",
              "station": {
                "id": 53,
                "name": "<NAME>",
                "shortcode": "radio_yay",
                "genre": "The Most Pony Radio Station in Poland",
                "category": "audio",
                "affiliation": "syndicated",
                "image_url": "//dev.pvlive.me/static/stations/20150218_081837_457_image_url_1.png",
                "web_url": "https://radioyay.net",
                "twitter_url": "",
                "irc": "#radioyay",
                "sort_order": 25,
                "player_url": "http://pvlive.me/radio_yay",
                "request_url": ""
              },
              "station_shortcode": "radio_yay"
            }
          }
        }

### GET /schedule/index/month/{YYYYMM}
**All Stations**

A list of events that occur in the month, specified in YYYYMM format (i.e. January 2014 becomes "201401").

+ Parameters
  + YYYYMM: `201505` (number, required) - The year and month in YYYYMM format, without spaces.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/start/{start_time}/end/{end_time}
**All Stations**

A list of events that occur between the UNIX timestamps specified in {start_time} and {end_time}.

+ Parameters
  + start_time (number, required) - UNIX Timestamp for the starting time.
  + end_time (number_required) - UNIX Timestamp for the ending time.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/station/{shortcode}
**Station Specified by Shortcode**

A list of events coming up for the specified station within 30 days.

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/station/{shortcode}/month/{YYYYMM}
**All Stations**

A list of events for the specified station that occur in the month, specified in YYYYMM format (i.e. January 2014 becomes "201401").

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.
  + YYYYMM: `201505` (number, required) - The year and month in YYYYMM format, without spaces.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/station/{shortcode}/start/{start_time}/end/{end_time}
**All Stations**

A list of events for the specified station that occur between the UNIX timestamps specified in {start_time} and {end_time}.

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.
  + start_time (number, required) - UNIX Timestamp for the starting time.
  + end_time (number_required) - UNIX Timestamp for the ending time.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",<commit_msg>Minor typo fix in API docs.<commit_after>FORMAT: 1A
HOST: http://ponyvillelive.com/api

# Ponyville Live! API
The Ponyville Live! (or PVL) API allows you to access detailed information from the PVL network database, including information on radio stations and video streams, podcasts, events, songs and more.

## Important Notes
* If you are retrieving data from the PVL system for your application, we encourage you to add a promotional link on your page back to the Ponyville Live! network. You can find the full brand kit for PVL at <http://ponyvillelive.com/resources/brand_package.zip>.
* Currently, no rate limits exist for API calls. Please be reasonable with your usage of the system. Rate limits may be implemented in the future if necessary.
* API calls are subject to change, and supplemental fields may be added or removed as necessary. Our development team will avoid making changes to the API schema wherever possible.
* Timestamps:
 * UNIX Timestamps are provided wherever possible, and are preferred.
 * Any timestamp that is returned that is not in UNIX timestamp format is provided in the US Eastern (EST/EDT) time zone.
* Unique Identifiers:
 * Stations in the network use a special identifier called a "shortcode". This identifier is the name of the station, in lower case, with its special characters removed. For example, "Ponyville Live!" would become "ponyville_live".
 * Songs are identified by a 32-character hash of their relevant details. This same hash is used across the system.

# Group Now Playing
Retrieve "Now Playing" information about active stations.

### GET /nowplaying
Returns all now playing data for active stations, indexed by the station's Short Code identifier.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": {
            "ponyvillefm": {
              "status": "online",
              "station": {
                "id": 20,
                "name": "PonyvilleFM",
                "shortcode": "ponyvillefm",
                "genre": "Pony Dance Hits & #1 DJ Station!",
                "category": "audio",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150406_002857_481_image_url_1.jpg",
                "web_url": "http://www.ponyvillefm.com/",
                "twitter_url": "http://www.twitter.com/PonyvilleFM",
                "irc": "#ponyvillefm",
                "sort_order": -20,
                "player_url": "http://pvlive.me/ponyvillefm",
                "request_url": "//dev.pvlive.me/station/request/id/20",
                "stream_url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                "default_stream_id": 32
              },
              "streams": [
                {
                  "id": 32,
                  "name": "Mane Stream (North America MP3)",
                  "url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                  "type": "shoutcast2",
                  "is_default": true,
                  "status": "online",
                  "bitrate": "128",
                  "format": "audio/mpeg",
                  "listeners": {
                    "current": 24,
                    "unique": 24,
                    "total": 28
                  },
                  "current_song": {
                    "id": "2cd1037164c73dc970c15f78f0202d26",
                    "text": "Vinylz - Eclipse (Original Mix)",
                    "artist": "Vinylz",
                    "title": "Eclipse (Original Mix)",
                    "image_url": "",
                    "created": 1436175751,
                    "play_count": 2,
                    "last_played": 1436611623,
                    "score": 100,
                    "sh_id": 2363,
                    "vote_urls": {
                      "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                      "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                      "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                    }
                  },
                  "song_history": [
                    {
                      "played_at": 1436611387,
                      "song": {
                        "id": "d562483a0f6e873c62889735cd4af36a",
                        "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                        "artist": "Forest Rain",
                        "title": "A Summer in the Stars (Aftermath Remix)",
                        "image_url": null,
                        "created": 1380236762,
                        "play_count": 185,
                        "last_played": 1436611387,
                        "score": 0
                      }
                    },
                    {
                      "played_at": 1436611144,
                      "song": {
                        "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                        "text": "Emforay - All Around",
                        "artist": "Emforay",
                        "title": "All Around",
                        "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                        "created": 1380251551,
                        "play_count": 141,
                        "last_played": 1436611144,
                        "score": 0
                      }
                    }
                  ]
                }
              ],
              "current_song": {
                "id": "2cd1037164c73dc970c15f78f0202d26",
                "text": "Vinylz - Eclipse (Original Mix)",
                "artist": "Vinylz",
                "title": "Eclipse (Original Mix)",
                "image_url": "",
                "created": 1436175751,
                "play_count": 2,
                "last_played": 1436611623,
                "score": 100,
                "sh_id": 2363,
                "vote_urls": {
                  "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                  "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                  "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                }
              },
              "song_history": [
                {
                  "played_at": 1436611387,
                  "song": {
                    "id": "d562483a0f6e873c62889735cd4af36a",
                    "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                    "artist": "Forest Rain",
                    "title": "A Summer in the Stars (Aftermath Remix)",
                    "image_url": null,
                    "created": 1380236762,
                    "play_count": 185,
                    "last_played": 1436611387,
                    "score": 0
                  }
                },
                {
                  "played_at": 1436611144,
                  "song": {
                    "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                    "text": "Emforay - All Around",
                    "artist": "Emforay",
                    "title": "All Around",
                    "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                    "created": 1380251551,
                    "play_count": 141,
                    "last_played": 1436611144,
                    "score": 0
                  }
                }
              ],
              "listeners": {
                "current": 36,
                "unique": 36,
                "total": 40
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            },
            "pvl_special_events": {
              "status": "offline",
              "station": {
                "id": 59,
                "name": "PVL Special Events",
                "shortcode": "pvl_special_events",
                "genre": "Ponyville Live! Events",
                "category": "video",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150308_030714_999_image_url_1.png",
                "web_url": "http://www.livestream.com/ponyvillelive",
                "twitter_url": "https://twitter.com/PonyvilleLive",
                "irc": "#PonyvilleLive",
                "sort_order": -10,
                "player_url": "http://pvlive.me/pvl_special_events",
                "request_url": ""
              },
              "streams": [
                {
                  "id": 131,
                  "name": "Primary Stream",
                  "url": "http://www.livestream.com/ponyvillelive",
                  "type": "video",
                  "is_default": false,
                  "on_air": {
                    "text": "Stream Offline",
                    "thumbnail": "//dev.pvlive.me/static/images/video_thumbnail.png"
                  },
                  "meta": {
                    "status": "offline",
                    "listeners": 0
                  },
                  "status": "offline"
                }
              ],
              "listeners": {
                "current": 0,
                "unique": 0,
                "total": 0
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            }
          }
        }

### GET /nowplaying/index/id/{id}
**Station Specified by Numeric ID**

Returns a single station's now-playing information based on a station identifier.

+ Parameters
  + id (number, required) - The station ID.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": {
            "ponyvillefm": {
              "status": "online",
              "station": {
                "id": 20,
                "name": "PonyvilleFM",
                "shortcode": "ponyvillefm",
                "genre": "Pony Dance Hits & #1 DJ Station!",
                "category": "audio",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150406_002857_481_image_url_1.jpg",
                "web_url": "http://www.ponyvillefm.com/",
                "twitter_url": "http://www.twitter.com/PonyvilleFM",
                "irc": "#ponyvillefm",
                "sort_order": -20,
                "player_url": "http://pvlive.me/ponyvillefm",
                "request_url": "//dev.pvlive.me/station/request/id/20",
                "stream_url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                "default_stream_id": 32
              },
              "streams": [
                {
                  "id": 32,
                  "name": "<NAME> (North America MP3)",
                  "url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                  "type": "shoutcast2",
                  "is_default": true,
                  "status": "online",
                  "bitrate": "128",
                  "format": "audio/mpeg",
                  "listeners": {
                    "current": 24,
                    "unique": 24,
                    "total": 28
                  },
                  "current_song": {
                    "id": "2cd1037164c73dc970c15f78f0202d26",
                    "text": "Vinylz - Eclipse (Original Mix)",
                    "artist": "Vinylz",
                    "title": "Eclipse (Original Mix)",
                    "image_url": "",
                    "created": 1436175751,
                    "play_count": 2,
                    "last_played": 1436611623,
                    "score": 100,
                    "sh_id": 2363,
                    "vote_urls": {
                      "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                      "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                      "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                    }
                  },
                  "song_history": [
                    {
                      "played_at": 1436611387,
                      "song": {
                        "id": "d562483a0f6e873c62889735cd4af36a",
                        "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                        "artist": "Forest Rain",
                        "title": "A Summer in the Stars (Aftermath Remix)",
                        "image_url": null,
                        "created": 1380236762,
                        "play_count": 185,
                        "last_played": 1436611387,
                        "score": 0
                      }
                    },
                    {
                      "played_at": 1436611144,
                      "song": {
                        "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                        "text": "Emforay - All Around",
                        "artist": "Emforay",
                        "title": "All Around",
                        "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                        "created": 1380251551,
                        "play_count": 141,
                        "last_played": 1436611144,
                        "score": 0
                      }
                    }
                  ]
                }
              ],
              "current_song": {
                "id": "2cd1037164c73dc970c15f78f0202d26",
                "text": "Vinylz - Eclipse (Original Mix)",
                "artist": "Vinylz",
                "title": "Eclipse (Original Mix)",
                "image_url": "",
                "created": 1436175751,
                "play_count": 2,
                "last_played": 1436611623,
                "score": 100,
                "sh_id": 2363,
                "vote_urls": {
                  "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                  "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                  "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                }
              },
              "song_history": [
                {
                  "played_at": 1436611387,
                  "song": {
                    "id": "d562483a0f6e873c62889735cd4af36a",
                    "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                    "artist": "<NAME>",
                    "title": "A Summer in the Stars (Aftermath Remix)",
                    "image_url": null,
                    "created": 1380236762,
                    "play_count": 185,
                    "last_played": 1436611387,
                    "score": 0
                  }
                },
                {
                  "played_at": 1436611144,
                  "song": {
                    "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                    "text": "Emforay - All Around",
                    "artist": "Emforay",
                    "title": "All Around",
                    "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                    "created": 1380251551,
                    "play_count": 141,
                    "last_played": 1436611144,
                    "score": 0
                  }
                }
              ],
              "listeners": {
                "current": 36,
                "unique": 36,
                "total": 40
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            }
          }
        }

### GET /nowplaying/index/station/{shortcode}
**Station Specified by Shortcode**

Returns a single station's now-playing information based on a station's "short code" identifier.

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": {
            "ponyvillefm": {
              "status": "online",
              "station": {
                "id": 20,
                "name": "PonyvilleFM",
                "shortcode": "ponyvillefm",
                "genre": "Pony Dance Hits & #1 DJ Station!",
                "category": "audio",
                "affiliation": "partner",
                "image_url": "//dev.pvlive.me/static/stations/20150406_002857_481_image_url_1.jpg",
                "web_url": "http://www.ponyvillefm.com/",
                "twitter_url": "http://www.twitter.com/PonyvilleFM",
                "irc": "#ponyvillefm",
                "sort_order": -20,
                "player_url": "http://pvlive.me/ponyvillefm",
                "request_url": "//dev.pvlive.me/station/request/id/20",
                "stream_url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                "default_stream_id": 32
              },
              "streams": [
                {
                  "id": 32,
                  "name": "Mane Stream (North America MP3)",
                  "url": "http://radio.ponyvillelive.com:8014/stream?sid=1;stream.nsv",
                  "type": "shoutcast2",
                  "is_default": true,
                  "status": "online",
                  "bitrate": "128",
                  "format": "audio/mpeg",
                  "listeners": {
                    "current": 24,
                    "unique": 24,
                    "total": 28
                  },
                  "current_song": {
                    "id": "2cd1037164c73dc970c15f78f0202d26",
                    "text": "Vinylz - Eclipse (Original Mix)",
                    "artist": "Vinylz",
                    "title": "Eclipse (Original Mix)",
                    "image_url": "",
                    "created": 1436175751,
                    "play_count": 2,
                    "last_played": 1436611623,
                    "score": 100,
                    "sh_id": 2363,
                    "vote_urls": {
                      "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                      "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                      "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                    }
                  },
                  "song_history": [
                    {
                      "played_at": 1436611387,
                      "song": {
                        "id": "d562483a0f6e873c62889735cd4af36a",
                        "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                        "artist": "Forest Rain",
                        "title": "A Summer in the Stars (Aftermath Remix)",
                        "image_url": null,
                        "created": 1380236762,
                        "play_count": 185,
                        "last_played": 1436611387,
                        "score": 0
                      }
                    },
                    {
                      "played_at": 1436611144,
                      "song": {
                        "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                        "text": "Emforay - All Around",
                        "artist": "Emforay",
                        "title": "All Around",
                        "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                        "created": 1380251551,
                        "play_count": 141,
                        "last_played": 1436611144,
                        "score": 0
                      }
                    }
                  ]
                }
              ],
              "current_song": {
                "id": "2cd1037164c73dc970c15f78f0202d26",
                "text": "Vinylz - Eclipse (Original Mix)",
                "artist": "Vinylz",
                "title": "Eclipse (Original Mix)",
                "image_url": "",
                "created": 1436175751,
                "play_count": 2,
                "last_played": 1436611623,
                "score": 100,
                "sh_id": 2363,
                "vote_urls": {
                  "like": "//dev.pvlive.me/api/song/like/sh_id/2363",
                  "dislike": "//dev.pvlive.me/api/song/dislike/sh_id/2363",
                  "clearvote": "//dev.pvlive.me/api/song/clearvote/sh_id/2363"
                }
              },
              "song_history": [
                {
                  "played_at": 1436611387,
                  "song": {
                    "id": "d562483a0f6e873c62889735cd4af36a",
                    "text": "Forest Rain - A Summer in the Stars (Aftermath Remix)",
                    "artist": "Forest Rain",
                    "title": "A Summer in the Stars (Aftermath Remix)",
                    "image_url": null,
                    "created": 1380236762,
                    "play_count": 185,
                    "last_played": 1436611387,
                    "score": 0
                  }
                },
                {
                  "played_at": 1436611144,
                  "song": {
                    "id": "2e37ac1be64c1ab29ab90b1a5b339075",
                    "text": "Emforay - All Around",
                    "artist": "Emforay",
                    "title": "All Around",
                    "image_url": "http://bronytunes.com/retrieve_artwork.php?song_id=5822&size=256",
                    "created": 1380251551,
                    "play_count": 141,
                    "last_played": 1436611144,
                    "score": 0
                  }
                }
              ],
              "listeners": {
                "current": 36,
                "unique": 36,
                "total": 40
              },
              event: {
                id: 759,
                station_id: 20,
                guid: "5c860cccb8ac68e8787d9a4d62d2c0d9",
                start_time: 1436648400,
                end_time: 1436652000,
                is_all_day: false,
                title: "#SugarLush with @Mushrooshi (Live Mix)",
                location: "http://i.imgur.com/UjfTmqz.jpg",
                body: "Feel #SugarLush with @Mushrooshi on @PonyvilleFM #brony #house #lounge http://ponyvillefm.com t.co/35z5aGaO6G",
                banner_url: "http://i.imgur.com/UjfTmqz.jpg",
                web_url: "https://www.google.com/calendar/event?eid=NWw1cWQ0dGRrMjVyaTNldDdrbGZtOGIwaDRfMjAxNTA3MTFUMjEwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Now to 6:00pm",
                image_url: "//dev.pvlive.me/static/"
              },
              event_upcoming: {
                id: 761,
                station_id: 20,
                guid: "1b16cdfa97f165a87a0d4741d3b49bf0",
                start_time: 1436652000,
                end_time: 1436662800,
                is_all_day: false,
                title: "#Mixology with @DJOneTrick & @DJMidli (Live Mix)",
                location: "http://i.imgur.com/1rch5c6.jpg",
                body: "Get up for @Mixology with @DJOneTrick and @DJMidli, its a party for the next 3 hours! #brony http://ponyvillefm.com/chat/ http://t.co/asS83bRBeU",
                banner_url: "http://i.imgur.com/1rch5c6.jpg",
                web_url: "https://www.google.com/calendar/event?eid=c25waDhiajBla2s5dTBpNWdibDI5M2w3czhfMjAxNTA3MTFUMjIwMDAwWiBkamJyb255cmFkaW9AbQ",
                range: "Today 6:00pm to 9:00pm",
                image_url: "//dev.pvlive.me/static/",
                minutes_until: 16
              },
              "cache": "flatfile"
            }
          }
        }

# Group Schedules #
Functions for retrieving the schedules of the individual stations or the PVL network itself.

### GET /schedule
**All Stations**

A list of events coming up for all stations within 30 days.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2598,
              "station_id": 53,
              "guid": "5df2db7f033e17f24a57d230b2ed6574",
              "start_time": 1436644800,
              "end_time": 1436652000,
              "is_all_day": false,
              "title": "Kucykowa Czytelnia",
              "location": null,
              "body": "",
              "banner_url": null,
              "web_url": "https://www.google.com/calendar/event?eid=dGYwaGU3dnZqbDZnYzZtNzdnY29icmMxcXNfMjAxNTA3MTFUMjAwMDAwWiB0YnZ0OGhodmg0cWRsNXBqcjE1NDU5YXFwc0Bn",
              "range": "Now to 6:00pm",
              "image_url": "//dev.pvlive.me/static/stations/20150218_081837_457_image_url_1.png",
              "station": {
                "id": 53,
                "name": "<NAME>",
                "shortcode": "radio_yay",
                "genre": "The Most Pony Radio Station in Poland",
                "category": "audio",
                "affiliation": "syndicated",
                "image_url": "//dev.pvlive.me/static/stations/20150218_081837_457_image_url_1.png",
                "web_url": "https://radioyay.net",
                "twitter_url": "",
                "irc": "#radioyay",
                "sort_order": 25,
                "player_url": "http://pvlive.me/radio_yay",
                "request_url": ""
              },
              "station_shortcode": "radio_yay"
            }
          }
        }

### GET /schedule/index/month/{YYYYMM}
**All Stations**

A list of events that occur in the month, specified in YYYYMM format (i.e. January 2014 becomes "201401").

+ Parameters
  + YYYYMM: `201505` (number, required) - The year and month in YYYYMM format, without spaces.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/start/{start_time}/end/{end_time}
**All Stations**

A list of events that occur between the UNIX timestamps specified in {start_time} and {end_time}.

+ Parameters
  + start_time (number, required) - UNIX Timestamp for the starting time.
  + end_time (number, required) - UNIX Timestamp for the ending time.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/station/{shortcode}
**Station Specified by Shortcode**

A list of events coming up for the specified station within 30 days.

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F<KEY>",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/station/{shortcode}/month/{YYYYMM}
**All Stations**

A list of events for the specified station that occur in the month, specified in YYYYMM format (i.e. January 2014 becomes "201401").

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.
  + YYYYMM: `201505` (number, required) - The year and month in YYYYMM format, without spaces.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
              "banner_url": "http://bronytv.net/stream.html",
              "web_url": "https://www.google.com/calendar/event?eid=ZTFwZzNtOTQzczR0a3NnZm0xa2UxMnR2ZGNfMjAxNTA3MTBUMjIwMDAwWiAyaG9nZmYwZTh0ZmU4b2FtcjZsZ3F2ZDFqMEBn",
              "range": "Now to 8:00am",
              "image_url": "//dev.pvlive.me/static/stations/20150308_030958_764_image_url_1.png"
            }
          }
        }

### GET /schedule/index/station/{shortcode}/start/{start_time}/end/{end_time}
**All Stations**

A list of events for the specified station that occur between the UNIX timestamps specified in {start_time} and {end_time}.

+ Parameters
  + shortcode (string, required) - The station "short code" identifier.
  + start_time (number, required) - UNIX Timestamp for the starting time.
  + end_time (number, required) - UNIX Timestamp for the ending time.

+ Response 200 (application/json)

        {
          "status": "success",
          "result": [
            {
              "id": 2759,
              "station_id": 61,
              "guid": "65dbd98c5715c20ae7dabbf762d105be",
              "start_time": 1436565600,
              "end_time": 1436616000,
              "is_all_day": false,
              "title": "Random Pony Media",
              "location": "http://bronytv.net/stream.html",
              "body": "",
{'fraction_non_alphanumeric': 0.12015874998265406, 'fraction_numerical': 0.063902418716956, 'mean_word_length': 1.3440020817069998, 'pattern_counts': {'":': 954, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 30, 'lorem ipsum': 0, 'www.': 42, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4640919', 'n_tokens_mistral': 25893, 'n_tokens_neox': 21657, 'n_words': 4056}