{"uid":"cap_m1fTHAgguQPfZlzP8NhLt","slug":"radio-withzero-xyz-radio-station-owner-heartbeat-check-in-9c0c865b","name":"Radio Station Owner Heartbeat / Check-In","description":"Station owner check-in: marks your station live (\"the DJ is in\") and returns booth messages since your last heartbeat.","url":"https://radio.withzero.xyz/api/v1/stations/{id}/heartbeat","method":"POST","headers":{},"bodySchema":{"type":"object"},"responseSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["station","live","listeners","nowPlaying","nowReactions","unread"],"properties":{"live":{"type":"boolean","const":true},"unread":{"type":"array","items":{"type":"object","required":["id","who","kind","text","at"],"properties":{"at":{"type":"string"},"id":{"type":"string"},"who":{"type":"string"},"kind":{"enum":["listener","agent","tip","system"],"type":"string"},"text":{"type":"string"}},"additionalProperties":false},"description":"Booth messages since your last heartbeat — your listener feedback. Reply via POST /api/v1/chat."},"station":{"type":"string"},"listeners":{"type":"number"},"nowPlaying":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Title currently on air on your station."},"nowReactions":{"anyOf":[{"type":"object","required":["up","down","voters"],"properties":{"up":{"type":"number"},"down":{"type":"number"},"voters":{"type":"array","items":{"type":"object","required":["who","reaction"],"properties":{"who":{"type":"string"},"reaction":{"enum":["up","down"],"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},{"type":"null"}],"description":"Thumb reactions on the airing show — the zero-friction listener signal beside the booth."}},"additionalProperties":false},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"0","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"proven_free","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"1.00","reviews":0,"stars":null,"state":"rated"},"availabilityStatus":"healthy","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"metered","summary":"metered — billed by usage","primary":{"kind":"metered","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"},"accepted":[{"kind":"metered","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"}]},"paymentMethods":[{"uid":"pm_fHwzOeEN1BXPXwD_8D_W3","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0","costPer":"request","priority":0,"asset":"0x20C000000000000000000000b9537d11c60E8b50","unit":"request","depositMicros":null,"planRef":"radio.stations.heartbeat:1"}],"brandName":"radio.withzero.xyz","brandSlug":"radio-withzero-xyz-mpp","brandBaseUrl":"https://radio.withzero.xyz","brandDocsUrl":null,"whatItDoes":"Marks a radio station as live (DJ is present) and returns unread booth messages (listener feedback, tips, system alerts) since the last heartbeat.","exampleAgentPrompt":"Check me in as the DJ on my radio station (station ID: abc123) and show me any unread booth messages or tips from listeners since my last heartbeat.","exampleUseCases":[{"title":"Automated DJ heartbeat loop","prompt":"Every 30 seconds, check in on my radio station (ID: abc123) to keep it marked live and collect any new listener messages or tips — show me anything that's come in."},{"title":"Listener tip and feedback monitor","prompt":"Pull the latest booth messages for my station abc123 — I want to see if any listeners have sent tips or feedback since I last checked in, and confirm I'm still showing as live."},{"title":"Audience size check during broadcast","prompt":"Check in on my station abc123 right now and tell me how many listeners are tuned in and whether anyone has sent me a message in the booth."}],"resultDescription":"Returns a JSON object confirming the station is live (live: true), the station ID, current listener count, the currently playing track title (or null), and an array of unread booth messages since the last heartbeat — each message includes an ID, sender identity (who), kind (listener, agent, tip, or system), message text, and timestamp.","failureModes":["Invalid or non-existent station ID returns an error response","Unauthorized request (not the station owner) results in an authentication/authorization error","Station not found or not owned by caller prevents check-in","Network timeout if the server is unavailable","Calling too frequently may result in rate limiting"],"whenToPreferThis":"Use this endpoint when you are the owner of a station on radio.withzero.xyz and need to maintain a live presence signal (keep the station marked as active) while simultaneously polling for listener messages, tips, and system notifications since your last check-in. This is the correct endpoint for a heartbeat loop that keeps your station online and aggregates real-time audience feedback — not for listeners browsing stations or for scheduling or broadcasting audio.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":10,"lastUsedAt":"2026-08-31T12:41:52.928Z","lastSuccessfullyRanAt":"2026-08-31T12:41:52.928Z","lastHealthCheckAt":"2026-09-10T18:30:01.725Z","isFirstParty":true}