{
  "schemaVersion": "1.0.0",
  "documentType": "flowstate-radio-media-kit",
  "documentUrl": "https://flowstateradio.net/ai/flowstate-network.json",
  "updated": "2026-08-21",
  "language": "en",
  "readme": "Machine-readable media kit for Flowstate Radio. Every figure in this document is also published on flowstateradio.net. Figures that have not been measured are not stated at all - see audience.reachPublished. Prices are indicative: the authoritative amount is always the one the booking service calculates at checkout.",

  "network": {
    "id": "flowstate-radio",
    "name": "Flowstate Radio",
    "url": "https://flowstateradio.net/",
    "logo": "https://flowstateradio.net/assets/img/favicon-platin-512.png",
    "tagline": "Eight channels. One state of mind.",
    "description": "A network of 24/7 music live channels. Each station is dedicated to exactly one genre and runs as one continuous programme, 24 hours a day, 7 days a week. Short presenter moments, station IDs and occasional listener greetings are part of the format; advertising is deliberately scarce and kept strictly apart from the programme.",
    "format": "24/7 internet radio network",
    "market": "international",
    "areaServed": "Worldwide",
    "onAirLanguage": "en",
    "websiteLanguages": ["en", "de", "it", "es", "fr", "pt-BR"],
    "stationCount": { "planned": 8, "live": 6 },
    "contentDisclosure": "Every track is original and produced exclusively for Flowstate Radio with AI music production. The music is not available anywhere else.",
    "advertisingPolicy": "A handful of gently placed audio spots per day and one sponsor logo per station and day - never a wall of ads. Paid spots are voiced by a separate advertising voice, never by the presenters. Every booking is reviewed by a person before it airs.",
    "pages": {
      "home": "https://flowstateradio.net/",
      "about": "https://flowstateradio.net/about.html",
      "advertising": "https://flowstateradio.net/advertise.html",
      "listenerBookings": "https://flowstateradio.net/book.html",
      "contact": "https://flowstateradio.net/contact.html",
      "terms": "https://flowstateradio.net/terms.html",
      "privacy": "https://flowstateradio.net/privacy.html",
      "imprint": "https://flowstateradio.net/imprint.html"
    },
    "contact": {
      "partnerships": "partners@flowstateradio.net",
      "orders": "orders@flowstateradio.net",
      "mediaKitRequest": "https://flowstateradio.net/contact.html"
    }
  },

  "audience": {
    "reachPublished": false,
    "statement": "Flowstate Radio is a young network and does not publish listener numbers it has not measured. No reach, impression or listener figures are stated in this document. What is sold today is exclusivity in a clean, curated environment at an early-stage price.",
    "targeting": {
      "geographic": "international; no geo-targeting available",
      "byStation": "Targeting is by station, and therefore by genre and listening situation - see stations[].listeningContext."
    }
  },

  "stations": [
    {
      "id": "deep",
      "name": "Flowstate Deep",
      "status": "live",
      "genre": "Deep House",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Hypnotic deep house around the clock - warm basslines, late-night atmosphere and a groove that never stops.",
      "listeningContext": ["focus work", "evening", "background listening"],
      "url": "https://flowstateradio.net/deep.html",
      "logo": "https://flowstateradio.net/assets/img/emblem-deep.png",
      "audioStream": {
        "url": "https://radio.flowstateradio.net/listen/deep/radio.mp3",
        "encoding": "audio/mpeg",
        "bitrateKbps": 320,
        "sampleRateHz": 48000,
        "channels": "stereo",
        "metadata": "icy"
      },
      "videoStream": {
        "platform": "YouTube",
        "channelUrl": "https://www.youtube.com/@FlowstateDeepRadio",
        "liveUrl": "https://www.youtube.com/watch?v=gaTOvvbuFxI"
      },
      "directories": [
        { "platform": "TuneIn", "url": "https://tunein.com/radio/Flowstate-Deep-Radio-s359831/" },
        { "platform": "Radio Browser", "url": "https://www.radio-browser.info/history/769cea15-d547-4ec7-99a4-92060a9d79e9" }
      ],
      "advertising": {
        "bookingStatus": "open",
        "products": ["audio_spot", "day_sponsor", "dedication", "classified"],
        "availabilityCheck": "https://radio.flowstateradio.net/orders/api/availability?station=deep&product=dedication&days=7"
      }
    },
    {
      "id": "house",
      "name": "Flowstate House",
      "status": "live",
      "genre": "House Music",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Warm, energetic and uplifting house music - made for work, workouts and keeping the day moving.",
      "listeningContext": ["work", "workout", "driving"],
      "url": "https://flowstateradio.net/house.html",
      "logo": "https://flowstateradio.net/assets/img/emblem-house.png",
      "audioStream": {
        "url": "https://radio.flowstateradio.net/listen/house/radio.mp3",
        "encoding": "audio/mpeg",
        "bitrateKbps": 320,
        "sampleRateHz": 48000,
        "channels": "stereo",
        "metadata": "icy"
      },
      "videoStream": {
        "platform": "YouTube",
        "channelUrl": "https://www.youtube.com/@FlowstateHouseRadio",
        "liveUrl": "https://www.youtube.com/watch?v=aQvakW3hIIs"
      },
      "directories": [
        { "platform": "TuneIn", "url": "https://tunein.com/radio/Flowstate-House-Radio-s359833/" },
        { "platform": "Radio Browser", "url": "https://www.radio-browser.info/history/deac0e99-2625-4925-bec7-a817d2800048" }
      ],
      "advertising": {
        "bookingStatus": "open",
        "products": ["audio_spot", "day_sponsor", "dedication", "classified"],
        "availabilityCheck": "https://radio.flowstateradio.net/orders/api/availability?station=house&product=dedication&days=7"
      }
    },
    {
      "id": "chill",
      "name": "Flowstate Chill",
      "status": "live",
      "genre": "Chill Music",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Soft, airy soundscapes for studying, working and unwinding.",
      "listeningContext": ["study", "relaxation", "unwinding"],
      "url": "https://flowstateradio.net/chill.html",
      "logo": "https://flowstateradio.net/assets/img/emblem-chill.png",
      "audioStream": {
        "url": "https://radio.flowstateradio.net/listen/chill/radio.mp3",
        "encoding": "audio/mpeg",
        "bitrateKbps": 320,
        "sampleRateHz": 48000,
        "channels": "stereo",
        "metadata": "icy"
      },
      "videoStream": {
        "platform": "YouTube",
        "channelUrl": "https://www.youtube.com/@FlowstateChillRadio",
        "liveUrl": "https://www.youtube.com/watch?v=-xRVDkDXI6E"
      },
      "directories": [
        { "platform": "TuneIn", "url": "https://tunein.com/radio/Flowstate-Chill-Radio-s359956/" },
        { "platform": "Radio Browser", "url": "https://www.radio-browser.info/history/390cacf0-a566-40e2-bb7c-d67259210662" }
      ],
      "advertising": {
        "bookingStatus": "open",
        "products": ["audio_spot", "day_sponsor", "dedication", "classified"],
        "availabilityCheck": "https://radio.flowstateradio.net/orders/api/availability?station=chill&product=dedication&days=7"
      }
    },
    {
      "id": "classical",
      "name": "Flowstate Classical",
      "status": "live",
      "genre": "Classical Music",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Elegant orchestral and piano works - timeless music in a modern stream.",
      "listeningContext": ["study", "reading", "deep concentration"],
      "url": "https://flowstateradio.net/classical.html",
      "logo": "https://flowstateradio.net/assets/img/emblem-classical.png",
      "audioStream": {
        "url": "https://radio.flowstateradio.net/listen/classical/radio.mp3",
        "encoding": "audio/mpeg",
        "bitrateKbps": 320,
        "sampleRateHz": 48000,
        "channels": "stereo",
        "metadata": "icy"
      },
      "videoStream": {
        "platform": "YouTube",
        "channelUrl": "https://www.youtube.com/@FlowstateClassicalRadio"
      },
      "directories": [
        { "platform": "TuneIn", "url": "https://tunein.com/radio/Flowstate-Classical-Radio-s359957/" },
        { "platform": "Radio Browser", "url": "https://www.radio-browser.info/history/99c52d95-e7a5-480e-8c41-3a2b88ff8f7a" }
      ],
      "advertising": {
        "bookingStatus": "open",
        "products": ["audio_spot", "day_sponsor", "dedication", "classified"],
        "availabilityCheck": "https://radio.flowstateradio.net/orders/api/availability?station=classical&product=dedication&days=7"
      }
    },
    {
      "id": "jazz",
      "name": "Flowstate Jazz",
      "status": "live",
      "genre": "Jazz",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Smoky, warm and fully instrumental jazz - a small acoustic combo, close and unhurried.",
      "listeningContext": ["work", "reading", "coffee break"],
      "url": "https://flowstateradio.net/jazz.html",
      "logo": "https://flowstateradio.net/assets/img/emblem-jazz.png",
      "audioStream": {
        "url": "https://radio.flowstateradio.net/listen/jazz/radio.mp3",
        "encoding": "audio/mpeg",
        "bitrateKbps": 320,
        "sampleRateHz": 48000,
        "channels": "stereo",
        "metadata": "icy"
      },
      "videoStream": {
        "platform": "YouTube",
        "channelUrl": "https://www.youtube.com/@FlowstateJazzRadio",
        "liveUrl": "https://www.youtube.com/watch?v=V-lDdvJstz4"
      },
      "directories": [],
      "advertising": {
        "bookingStatus": "check-availability",
        "bookingStatusNote": "The station is on air, but advertising had not been opened for it when this document was written. The availability endpoint is authoritative: HTTP 200 means bookable, HTTP 404 means not yet.",
        "products": ["audio_spot", "day_sponsor", "dedication", "classified"],
        "availabilityCheck": "https://radio.flowstateradio.net/orders/api/availability?station=jazz&product=dedication&days=7"
      }
    },
    {
      "id": "rap",
      "name": "Flowstate Rap",
      "status": "live",
      "genre": "Hip Hop",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Street rap with full verses - urban, hard-hitting and uncensored, around the clock.",
      "listeningContext": ["workout", "driving", "motivation"],
      "contentAdvisory": "explicit lyrics",
      "url": "https://flowstateradio.net/rap.html",
      "logo": "https://flowstateradio.net/assets/img/emblem-rap.png",
      "audioStream": {
        "url": "https://radio.flowstateradio.net/listen/rap/radio.mp3",
        "encoding": "audio/mpeg",
        "bitrateKbps": 320,
        "sampleRateHz": 48000,
        "channels": "stereo",
        "metadata": "icy"
      },
      "videoStream": {
        "platform": "YouTube",
        "channelUrl": "https://www.youtube.com/@FlowstateRapRadio",
        "liveUrl": "https://www.youtube.com/watch?v=Xg3Z1tsYQNU"
      },
      "directories": [],
      "advertising": {
        "bookingStatus": "check-availability",
        "bookingStatusNote": "The station is on air, but advertising had not been opened for it when this document was written. The availability endpoint is authoritative: HTTP 200 means bookable, HTTP 404 means not yet.",
        "products": ["audio_spot", "day_sponsor", "dedication", "classified"],
        "availabilityCheck": "https://radio.flowstateradio.net/orders/api/availability?station=rap&product=dedication&days=7"
      }
    },
    {
      "id": "rock",
      "name": "Flowstate Rock",
      "status": "planned",
      "genre": "Rock",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "Powerful guitars and driving rhythms - rock that never switches off.",
      "advertising": { "bookingStatus": "not-available", "products": [] }
    },
    {
      "id": "gaming",
      "name": "Flowstate Gaming",
      "status": "planned",
      "genre": "Gaming Music",
      "format": "24/7 live music channel",
      "market": "international",
      "description": "A dedicated home for gaming music, around the clock.",
      "advertising": { "bookingStatus": "not-available", "products": [] }
    }
  ],

  "advertising": {
    "model": "direct booking at a fixed price - no ad network, no programmatic exchange, no auction",
    "currencies": ["USD", "EUR", "CHF"],
    "defaultCurrency": "USD",
    "pricingNote": "The same round figure applies in every currency; amounts are not converted. TWINT is available when paying in CHF. Indicative only - the booking service calculates the authoritative amount at checkout.",
    "priceType": "introductory",
    "priceValidThrough": "2026-09-30",
    "priceValidThroughNote": "Introductory pricing, published as such on flowstateradio.net. Prices on the website are always current and this document is updated together with them.",
    "humanReview": "Every booking is read by a person before it airs. If a booking cannot run, the full amount is refunded.",
    "proofOfBroadcast": "After broadcast the customer receives the exact air time and an MP3 recording of the entry by email.",

    "products": [
      {
        "id": "audio_spot",
        "name": "Audio Spot",
        "category": "audio",
        "audience": "business",
        "bookable": "online",
        "bookingUrl": "https://flowstateradio.net/book-spot.html",
        "description": "Your text, produced in the station's dedicated advertising voice and placed gently between tracks, spread across the day.",
        "pricing": {
          "amount": 2.5,
          "currencies": ["USD", "EUR", "CHF"],
          "unit": "per spot per day",
          "formula": "amount x spotsPerDay x days, then volume discount, then combination discount"
        },
        "duration": { "minDays": 1, "maxDays": 60 },
        "frequency": { "minPerDay": 1, "maxPerDay": 8 },
        "leadTimeDays": 1,
        "leadTimeNote": "Earliest start is the next UTC calendar day. Booked together with a sponsor logo, the earliest start is two days ahead.",
        "creativeSpec": {
          "delivery": "text entered in the booking form; Flowstate produces the voiced spot",
          "customerAudioUpload": false,
          "maxCharacters": 280,
          "approxSpokenSeconds": [18, 20],
          "language": "en",
          "optionalLogo": {
            "description": "An audio spot can be combined with the day-sponsor logo in the live picture.",
            "fileFormat": "image/png",
            "maxBytes": 5242880,
            "minWidthPx": 896,
            "minHeightPx": 336,
            "background": "transparent preferred"
          }
        },
        "discounts": [
          { "id": "days7", "condition": "booked for 7 days or more", "percent": 10 },
          { "id": "days30", "condition": "booked for 30 days or more", "percent": 20 },
          { "id": "combo", "condition": "audio spots combined with the sponsor logo", "percent": 5 }
        ]
      },
      {
        "id": "day_sponsor",
        "name": "Day Sponsor",
        "category": "visual",
        "audience": "business",
        "bookable": "online",
        "bookingUrl": "https://flowstateradio.net/book-spot.html",
        "description": "Your logo in the reserved sponsor space of one station's live picture - visible every minute, around the clock. One sponsor per station and day: the space is yours alone.",
        "pricing": {
          "amount": 16,
          "currencies": ["USD", "EUR", "CHF"],
          "unit": "per station per day",
          "formula": "amount x days, then volume discount"
        },
        "duration": { "minDays": 1, "maxDays": 60 },
        "exclusivity": "one sponsor per station and day",
        "leadTimeDays": 2,
        "leadTimeNote": "The logo goes on air with the station's next overnight restart, so the earliest start is two days ahead.",
        "creativeSpec": {
          "delivery": "logo upload in the booking form; no spoken text",
          "fileFormat": "image/png",
          "maxBytes": 5242880,
          "minWidthPx": 896,
          "minHeightPx": 336,
          "background": "transparent preferred"
        },
        "discounts": [
          { "id": "days7", "condition": "booked for 7 days or more", "percent": 10 },
          { "id": "days30", "condition": "booked for 30 days or more", "percent": 20 }
        ]
      },
      {
        "id": "dedication",
        "name": "Dedication",
        "category": "audio",
        "audience": "listener",
        "bookable": "online",
        "bookingUrl": "https://flowstateradio.net/book-dedication.html",
        "description": "A short greeting to someone, read out between tracks on a live station.",
        "pricing": {
          "amount": 2.5,
          "currencies": ["USD", "EUR", "CHF"],
          "unit": "per broadcast",
          "volumeDiscounts": false
        },
        "scheduling": {
          "model": "daily blocks",
          "blocksPerDay": 6,
          "blockStartHoursUtc": [0, 4, 8, 12, 16, 20],
          "bookingCutoffMinutesBeforeBlock": 60,
          "bookableDaysAhead": 7
        },
        "creativeSpec": {
          "delivery": "four form fields: who it is for, who it is from, the occasion, one optional line",
          "optionalLineMaxCharacters": 40,
          "language": "en"
        }
      },
      {
        "id": "classified",
        "name": "Listener Classified",
        "category": "audio",
        "audience": "listener",
        "bookable": "online",
        "bookingUrl": "https://flowstateradio.net/book-classified.html",
        "description": "One small ad, read out between tracks - for selling something, offering a service, or looking for one.",
        "pricing": {
          "amount": 2.5,
          "currencies": ["USD", "EUR", "CHF"],
          "unit": "per broadcast",
          "volumeDiscounts": false
        },
        "scheduling": {
          "model": "daily blocks",
          "blocksPerDay": 6,
          "blockStartHoursUtc": [0, 4, 8, 12, 16, 20],
          "bookingCutoffMinutesBeforeBlock": 60,
          "bookableDaysAhead": 7
        },
        "creativeSpec": {
          "delivery": "form fields; a website or an email address as contact - no phone numbers",
          "language": "en"
        }
      },
      {
        "id": "website_banner",
        "name": "Website Banner",
        "category": "display",
        "audience": "business",
        "bookable": "on-request",
        "bookingUrl": "https://flowstateradio.net/contact.html",
        "description": "Clean, non-intrusive banner placements on flowstateradio.net - no ad networks, direct booking only.",
        "pricing": { "onRequest": true }
      },
      {
        "id": "timeslot_sponsor",
        "name": "Time Slot Sponsor",
        "category": "audio",
        "audience": "business",
        "bookable": "on-request",
        "bookingUrl": "https://flowstateradio.net/contact.html",
        "description": "A window of the broadcast day, from 30 minutes, opened by your mention. The mechanics exist; the online booking path does not yet, so it is arranged by hand on request.",
        "pricing": { "onRequest": true }
      },
      {
        "id": "newsletter_sponsor",
        "name": "Newsletter Sponsor",
        "category": "email",
        "audience": "business",
        "bookable": "not-available",
        "description": "Planned. The newsletter does not exist yet and is therefore not sold.",
        "pricing": { "onRequest": false }
      },
      {
        "id": "network_partner",
        "name": "Network Partner",
        "category": "partnership",
        "audience": "business",
        "bookable": "not-available",
        "description": "Planned: presence across all stations and the website as a long-term partner - meaningful once more of the network is on air.",
        "pricing": { "onRequest": false }
      }
    ],

    "terms": {
      "url": "https://flowstateradio.net/terms.html",
      "version": "2026-08-draft",
      "summary": "What can and cannot go on air, the right to decline a booking, cancellation and refunds are set out in the booking terms and shown before payment."
    }
  },

  "booking": {
    "channels": [
      { "type": "web", "url": "https://flowstateradio.net/advertise.html", "audience": "business" },
      { "type": "web", "url": "https://flowstateradio.net/book.html", "audience": "listener" },
      { "type": "email", "address": "partners@flowstateradio.net", "audience": "business" }
    ],
    "payment": {
      "provider": "Stripe Checkout",
      "methods": ["card", "TWINT (CHF only)"],
      "currencies": ["USD", "EUR", "CHF"]
    },
    "process": [
      "choose station, product and dates",
      "submit the wording or the logo",
      "pay by card at checkout",
      "human review before broadcast",
      "broadcast",
      "proof of broadcast by email: exact air time and an MP3"
    ],
    "publicEndpoints": [
      {
        "id": "availability",
        "method": "GET",
        "url": "https://radio.flowstateradio.net/orders/api/availability",
        "parameters": {
          "station": "station id, see stations[].id",
          "product": "dedication or classified",
          "days": "days ahead, up to 7"
        },
        "returns": "blocks[], each with blockUtc (ISO timestamp), places {total,left,used} and open (boolean)",
        "notes": [
          "This endpoint also answers whether a station is open for advertising at all: it returns HTTP 404 for a station the booking service does not carry.",
          "Audio spot and day sponsor are day-based products and are not covered by this endpoint."
        ]
      },
      {
        "id": "health",
        "method": "GET",
        "url": "https://radio.flowstateradio.net/orders/health",
        "returns": "readiness of the booking service"
      }
    ],
    "machineBooking": {
      "available": false,
      "note": "There is no booking API for agents yet. Discovery, evaluation and availability are machine-readable today; the booking step itself runs through the web forms above or by email."
    }
  },

  "roadmap": {
    "stage2": [
      "live advertising inventory as JSON: free block places and free sponsor days per station and date",
      "prices served by the booking service instead of a static figure in this document",
      "machine-readable booking: create an order and receive a checkout link, using the same station and product ids as this document"
    ],
    "idStability": "The station ids and product ids in this document are the ids the booking service already uses internally. They are stable and will be reused by any future booking API."
  }
}
