Bizzy Stations API

The Stations API from Bizzy — 2 operation(s) for stations.

Operations 2

GET /v1/stations Find Bizzy stations by name or location #
GET /v1/stations/{id} Read one Bizzy station #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bizzy-fm:bizzy-fm-stations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bizzy-fm-stations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bizzy Public Station Stations API
  version: 1.2.0
  description: 'Read-only access to Bizzy''s full station catalog and public author information. URL versioning uses /v1/; breaking changes require a new major path. Original JSON URLs remain supported aliases. Deprecation policy: https://bizzy.fm/docs/api-policy; no endpoints are currently deprecated. Future deprecation/removal dates use Deprecation (RFC 9745) and Sunset (RFC 8594). No authentication, administrative methods, raw streams or playback actions. Data may be cached for five minutes; availability is not a live playback guarantee. REST responses expose a real per-instance quota with RateLimit fields, and Retry-After on 429.'
  contact:
    name: Misha Naer
    email: hi@mishanaer.com
    url: https://bizzy.fm/contact
servers:
- url: https://bizzy.fm
security: []
tags:
- name: Stations
paths:
  /v1/stations:
    get:
      security: []
      operationId: findStations
      summary: Find Bizzy stations by name or location
      description: Search the full backend catalog, including unavailable stations. Empty query lists all stations. Results are sorted by ID, use next_offset for pagination. Query and pagination are bounded; duplicate parameters are rejected. Unknown query parameters are ignored. No API key required. HEAD returns the same headers without a body.
      parameters:
      - name: query
        in: query
        required: false
        description: Case-insensitive substring of station name or location. Empty lists all stations.
        schema:
          default: ''
          description: Case-insensitive substring of station name or location. Empty lists all stations.
          type: string
          maxLength: 120
      - name: limit
        in: query
        required: false
        description: Maximum number of results, from 1 to 50.
        schema:
          default: 20
          description: Maximum number of results, from 1 to 50.
          type: integer
          minimum: 1
          maximum: 50
      - name: offset
        in: query
        required: false
        description: Number of matching stations to skip; results are sorted by ID.
        schema:
          default: 0
          description: Number of matching stations to skip; results are sorted by ID.
          type: integer
          minimum: 0
          maximum: 100000
      responses:
        '200':
          description: A page of matching stations.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationSearch'
        '400':
          description: Invalid search parameters.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Only GET and HEAD are supported.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Request application/json or */*.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: This instance's REST quota is exhausted. Wait for Retry-After before retrying.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
            Retry-After:
              description: Seconds before retrying.
              schema:
                type: integer
                minimum: 1
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Backend catalog temporarily unavailable; retry after 60 seconds.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
            Retry-After:
              description: Seconds before retrying.
              schema:
                type: integer
                minimum: 1
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Stations
  /v1/stations/{id}:
    get:
      security: []
      operationId: getStation
      summary: Read one Bizzy station
      description: Get a station by its real catalog UUID, including stations marked unavailable. Share listen_url with people. No API key required. HEAD is supported.
      parameters:
      - name: id
        in: path
        required: true
        description: UUID from findStations; names are not unique.
        schema:
          type: string
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          description: Station UUID from the Bizzy catalog. Never invent an ID.
      responses:
        '200':
          description: Public station card.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Station'
        '404':
          description: Station UUID is invalid or the station does not exist.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Only GET and HEAD are supported.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Request application/json or */*.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: This instance's REST quota is exhausted. Wait for Retry-After before retrying.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
            Retry-After:
              description: Seconds before retrying.
              schema:
                type: integer
                minimum: 1
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Backend catalog temporarily unavailable; retry after 60 seconds.
          headers:
            Access-Control-Allow-Origin:
              description: Public browser reads without credentials are allowed from any origin.
              schema:
                type: string
                const: '*'
            Access-Control-Expose-Headers:
              description: Response fields browser clients can read, including current quota and Retry-After on errors.
              schema:
                type: string
                example: Bizzy-API-Version, RateLimit, RateLimit-Policy, Retry-After, Link
            Bizzy-API-Version:
              description: The URL major version served by this response.
              schema:
                type: string
                const: '1'
            RateLimit-Policy:
              description: Per-instance shared REST quota, Structured Fields per IETF draft-ietf-httpapi-ratelimit-headers-11 (not a finalized RFC).
              schema:
                type: string
                example: '"bizzy-rest-instance";q=3600;w=60'
            RateLimit:
              description: 'Current instance quota: r is remaining requests, t is seconds to reset. This is not a distributed per-client allowance.'
              schema:
                type: string
                example: '"bizzy-rest-instance";r=3599;t=60'
            Retry-After:
              description: Seconds before retrying.
              schema:
                type: integer
                minimum: 1
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Stations
components:
  schemas:
    Station:
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          description: Station UUID from the Bizzy catalog. Never invent an ID.
        name:
          type: string
          description: Station name as supplied by the backend.
        location:
          type: string
          description: Backend location, or an empty string if unspecified.
        listen_url:
          type: string
          format: uri
          description: Canonical Bizzy listening page to share with a person; not a raw audio stream.
        availability:
          type: string
          enum:
          - available
          - unavailable
          - unknown
          description: Backend health flag, not a live playback guarantee.
      required:
      - id
      - name
      - location
      - listen_url
      - availability
      additionalProperties: false
    StationSearch:
      type: object
      properties:
        stations:
          maxItems: 50
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                description: Station UUID from the Bizzy catalog. Never invent an ID.
              name:
                type: string
                description: Station name as supplied by the backend.
              location:
                type: string
                description: Backend location, or an empty string if unspecified.
              listen_url:
                type: string
                format: uri
                description: Canonical Bizzy listening page to share with a person; not a raw audio stream.
              availability:
                type: string
                enum:
                - available
                - unavailable
                - unknown
                description: Backend health flag, not a live playback guarantee.
            required:
            - id
            - name
            - location
            - listen_url
            - availability
            additionalProperties: false
        total:
          type: integer
          minimum: 0
          maximum: 9007199254740991
          description: Number of matches in the full backend catalog, including unavailable stations.
        limit:
          type: integer
          minimum: 1
          maximum: 50
        offset:
          type: integer
          minimum: 0
          maximum: 100000
        next_offset:
          anyOf:
          - type: integer
            minimum: 0
            maximum: 9007199254740991
          - type: 'null'
          description: Next page offset, or null at the end. Catalog changes can move results between pages.
      required:
      - stations
      - total
      - limit
      - offset
      - next_offset
      additionalProperties: false
    Error:
      type: object
      required:
      - error
      additionalProperties: false
      properties:
        error:
          type: object
          required:
          - code
          - message
          additionalProperties: false
          properties:
            code:
              type: string
            message:
              type: string
        catalog_url:
          type: string
          format: uri
        about_url:
          type: string
          format: uri
externalDocs:
  description: Bizzy API and MCP documentation
  url: https://bizzy.fm/docs
x-versioning:
  strategy: url-path
  currentMajor: 1
  policy: https://bizzy.fm/docs/api-policy
  deprecated: false