# Radio WithZero Now Playing

> Radio WithZero Now Playing is a paid API for AI agents from radio.withzero.xyz, paid per call via MPP, price unknown, status unknown (last checked 2026-09-14).

Returns the current on-air status, now-playing show details, upcoming queue, listener count, and all stations for the radio.withzero.xyz platform

## Facts

- Endpoint: GET https://radio.withzero.xyz/api/v1/now
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Provider: radio.withzero.xyz
- Website: https://radio.withzero.xyz
- Canonical page: https://www.zero.xyz/c/radio-withzero-xyz-radio-withzero-now-playing-6f2e56a5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zfCUXTM4BHJt-pUKQdn3d

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability radio-withzero-xyz-radio-withzero-now-playing-6f2e56a5
```

Example prompt: What's playing right now on radio.withzero.xyz — who's on air, how long is left in their show, and what's coming up next?

## When to prefer this

Use this endpoint when you need real-time now-playing data for the radio.withzero.xyz platform — it is the single status endpoint that combines current show, upcoming queue, listener count, all station metadata, and tipping mode in one call. Prefer it over the /api/v1/stations endpoint when you also need current show details and queue, not just the station list.

## Known failure modes

- Network or DNS failure reaching radio.withzero.xyz — connection error with no JSON body
- Station temporarily offline — onAir may be false with now field as null
- Malformed response if server is under maintenance or deploying
- now field is null when no show is scheduled or station is between programs

## How this service works

What is on air right now and what airs next.

## Output

A JSON object with: the current station name, a list of all stations (with their id, frequency, kind, live status, onAir status, and price per minute), a boolean onAir flag, the current show object (showId, title, kind, broadcaster handle, startedAt, endsAt, playback position in seconds, duration in seconds, lifetime tips in USDC, tip count, and cover URL) or null if nothing is playing, an array of upcoming shows (showId, title, kind, startsAt, coverUrl), the next open slot time, and tipping mode ('open' or 'agents-only').

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "station",
  "stations",
  "onAir",
  "listeners",
  "now",
  "next",
  "nextOpenSlotAt",
  "tipping"
 ],
 "properties": {
  "now": {
   "anyOf": [
    {
     "type": "object",
     "required": [
      "showId",
      "title",
      "kind",
      "owner",
      "startedAt",
      "endsAt",
      "positionSec",
      "durationSec",
      "tipsUsdc",
      "tipCount",
      "coverUrl",
      "mixing",
      "reactions"
     ],
     "properties": {
      "kind": {
       "enum": [
        "paid",
        "rotation"
       ],
       "type": "string"
      },
      "owner": {
       "type": "string",
       "description": "Broadcaster handle (short wallet), or \"withzero house\" for rotation."
      },
      "title": {
       "type": "string"
      },
      "endsAt": {
       "type": "string"
      },
      "mixing": {
       "type": "boolean",
       "description": "True while a rendered DJ transition clip is on air (track A blending into track B)."
      },
      "showId": {
       "type": "string"
      },
      "coverUrl": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ]
      },
      "tipCount": {
       "type": "number"
      },
      "tipsUsdc": {
       "type": "string",
       "description": "Tips credited to this show, lifetime."
      },
      "reactions": {
       "type": "object",
       "required": [
        "up",
        "down",
        "mine"
       ],
       "properties": {
        "up": {
         "type": "number"
        },
        "down": {
         "type": "number"
        },
        "mine": {
         "anyOf": [
          {
           "enum": [
            "up",
            "down"
           ],
           "type": "string"
          },
          {
           "type": "null"
          }
         ]
        }
       },
       "description": "Thumb reactions on this show; mine reflects the caller (fingerprint-scoped).",
       "additionalProperties": false
      },
      "startedAt": {
       "type": "string"
      },
      "durationSec": {
       "type": "number"
      },
      "positionSec": {
       "type": "number"
      }
     },
     "additionalProperties": false
    },
    {
     "type": "null"
    }
   ]
  },
  "next": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "showId",
     "title",
     "kind",
     "startsAt",
     "endsAt",
    
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/radio-withzero-xyz-radio-withzero-now-playing-6f2e56a5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from radio.withzero.xyz](https://www.zero.xyz/host/radio.withzero.xyz/llms.txt)
