openapi: 3.0.2 info: title: AmpliPi description: | # The links in the description below are tested to work with redoc and may not be portable This is the AmpliPi home audio system's control server. # Configuration This web interface allows you to control and configure your AmpliPi device. At the moment the API is the only way to configure the AmpliPi. ## Try it out! __Using this web interface to test API commands:__ 1. Go to an API request 1. Pick one of the examples 1. Edit it 1. Press the try button, it will send an API command/request to the AmpliPi __Try getting the status:__ 1. Go to [Status -> Get Status](#get-/api) 1. Click the Try button, you will see a response below with the full status/config of the AmpliPi controller __Try changing a zone's name:__ 1. Go to [Zone -> Update Zone](#patch-/api/zones/-zid-) 1. Next to **PATH PARAMETERS** click Zone 2 to fill in Zone 2's id 1. Under **REQUEST BODY** click Example and select "Change Name" 1. Edit the name to what you want to call the zone 1. Click the Try button, you will see a response below with the full status/config of the AmpliPi controller __Try changing a group's name and zones:__ 1. Go to [Group -> Update Group](#patch-/api/groups/-gid-) 1. Next to **PATH PARAMETERS** click Group 1 to fill in Group 1's id 1. Under **REQUEST BODY** click Example and select "Rezone Group" 1. Edit the name to what you want to call the group 1. Edit the zones that belong to the group 1. Click the Try button, you will see a response below with the full status/config of the AmpliPi controller __Try creating a new group:__ 1. Go to [Group -> Create Group](#post-/api/group) 1. Under **REQUEST BODY** click Example and select "Upstairs Group" 1. Edit the group name or zones array 1. Click the Try button, you will see a response below with the new group __Here are some other things that you might want to change:__ - [Stream -> Create new stream](#post-/api/stream) - [Preset -> Create preset](#post-/api/preset) (Have a look at the model to see what can be added here) - [Source -> Set source](#patch-/api/sources/-sid-) (Try updating Source 1's name to "TV") # More Info Check out all of the different things you can do with this API: - [Status](#tag--status) - [Source](#tag--source) - [Zone](#tag--zone) - [Group](#tag--group) - [Stream](#tag--stream) - [Preset](#tag--preset) # OpenAPI This API is documented using the OpenAPI specification version: '1.0' contact: email: info@micro-nova.com name: Micronova url: http://micro-nova.com license: name: GPL url: https://github.com/micro-nova/AmpliPi/blob/master/COPYING servers: - url: '' description: AmpliPi Controller paths: /api: get: tags: - status summary: Get Status description: 'Get the system status and configuration ' operationId: get_status_api_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 /api/load: post: tags: - status summary: Load Config description: 'Load a new configuration (and return the configuration loaded). This will overwrite the current configuration so it is advised to save the previous config from. ' operationId: load_config_api_load_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/reset: post: tags: - status summary: Reset description: 'Reload the current configuration, resetting the firmware in the process. ' operationId: reset_api_reset_post responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 /api/sources: get: tags: - source summary: Get Sources description: 'Get all sources ' operationId: get_sources_api_sources_get responses: '200': description: Successful Response content: application/json: schema: title: Response Get Sources Api Sources Get type: object additionalProperties: type: array items: $ref: '#/components/schemas/Source' example: sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 /api/sources/{sid}: get: tags: - source summary: Get Source description: 'Get Source with id=**sid** ' operationId: get_source_api_sources__sid__get parameters: - description: Source ID required: true schema: title: Sid maximum: 3.0 minimum: 0.0 type: integer description: Source ID name: sid in: path examples: openHAB: value: 0 summary: openHAB Chromecast Audio: value: 1 summary: Chromecast Audio Input 3: value: 2 summary: Input 3 Input 4: value: 3 summary: Input 4 responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Source' examples: stream connected: value: id: 1 name: '1' input: stream=1009 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet state: playing nothing connected: value: id: 2 name: '2' input: '' info: img_url: static/imgs/disconnected.png state: stopped rca connected: value: id: 3 name: '3' input: local info: img_url: static/imgs/rca_inputs.svg state: unknown '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - source summary: Set Source description: 'Update a source''s configuration (source=**sid**) ' operationId: set_source_api_sources__sid__patch parameters: - description: Source ID required: true schema: title: Sid maximum: 3.0 minimum: 0.0 type: integer description: Source ID name: sid in: path examples: openHAB: value: 0 summary: openHAB Chromecast Audio: value: 1 summary: Chromecast Audio Input 3: value: 2 summary: Input 3 Input 4: value: 3 summary: Input 4 requestBody: content: application/json: schema: $ref: '#/components/schemas/SourceUpdate' examples: Update Input to RCA input: value: input: local Update name: value: name: J2 Update Input to Matt and Kim Radio: value: input: stream=10001 required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/sources/{sid}/image/{height}: get: tags: - source summary: Get Image description: 'Get a square jpeg image representing the current media playing on source @sid This was added to support low power touch panels ' operationId: get_image_api_sources__sid__image__height__get parameters: - description: Source ID required: true schema: title: Sid maximum: 3.0 minimum: 0.0 type: integer description: Source ID name: sid in: path examples: openHAB: value: 0 summary: openHAB Chromecast Audio: value: 1 summary: Chromecast Audio Input 3: value: 2 summary: Input 3 Input 4: value: 3 summary: Input 4 - description: Image Height in pixels required: true schema: title: Height maximum: 500.0 minimum: 1.0 type: integer description: Image Height in pixels name: height in: path responses: '200': description: Successful Response content: image/jpg: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/zones: get: tags: - zone summary: Get Zones description: 'Get all zones ' operationId: get_zones_api_zones_get responses: '200': description: Successful Response content: application/json: schema: title: Response Get Zones Api Zones Get type: object additionalProperties: type: array items: $ref: '#/components/schemas/Zone' example: zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 patch: tags: - zone summary: Set Zones description: 'Update a bunch of zones (and groups) with the same configuration changes ' operationId: set_zones_api_zones_patch requestBody: content: application/json: schema: $ref: '#/components/schemas/MultiZoneUpdate' examples: Connect all zones to source 1: value: zones: - 0 - 1 - 2 - 3 - 4 - 5 update: source_id: 0 required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/zones/{zid}: get: tags: - zone summary: Get Zone description: 'Get Zone with id=**zid** ' operationId: get_zone_api_zones__zid__get parameters: - description: Zone ID required: true schema: title: Zid maximum: 35.0 minimum: 0.0 type: integer description: Zone ID name: zid in: path examples: Flur/Küche/Bad: value: 0 summary: Flur/Küche/Bad Wohnzimmer: value: 1 summary: Wohnzimmer Schlafzimmer: value: 2 summary: Schlafzimmer Tino: value: 3 summary: Tino Stella: value: 4 summary: Stella Enzo: value: 5 summary: Enzo responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Zone' examples: Living Room: value: name: Living Room source_id: 1 mute: false vol: -25 disabled: false Dining Room: value: name: Dining Room source_id: 2 mute: true vol: -65 disabled: false '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - zone summary: Set Zone description: 'Update a zone''s configuration (zone=**zid**) ' operationId: set_zone_api_zones__zid__patch parameters: - description: Zone ID required: true schema: title: Zid maximum: 35.0 minimum: 0.0 type: integer description: Zone ID name: zid in: path examples: Flur/Küche/Bad: value: 0 summary: Flur/Küche/Bad Wohnzimmer: value: 1 summary: Wohnzimmer Schlafzimmer: value: 2 summary: Schlafzimmer Tino: value: 3 summary: Tino Stella: value: 4 summary: Stella Enzo: value: 5 summary: Enzo requestBody: content: application/json: schema: $ref: '#/components/schemas/ZoneUpdate' examples: Change Name: value: name: Bedroom Change audio source: value: source-id: 3 Increase Volume: value: vol: -45 Mute: value: mute: true required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/group: post: tags: - group summary: Create Group description: 'Create a new grouping of zones ' operationId: create_group_api_group_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Group' examples: Upstairs Group: value: name: Upstairs zones: - 1 - 2 - 3 - 4 - 5 Downstairs Group: value: name: Downstairs zones: - 6 - 7 - 8 - 9 required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Group' examples: Upstairs Group: value: id: 101 name: Upstairs zones: - 1 - 2 - 3 - 4 - 5 vol_delta: -65 Downstairs Group: value: id: 102 name: Downstairs zones: - 6 - 7 - 8 - 9 vol_delta: -30 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/groups: get: tags: - group summary: Get Groups description: 'Get all groups ' operationId: get_groups_api_groups_get responses: '200': description: Successful Response content: application/json: schema: title: Response Get Groups Api Groups Get type: object additionalProperties: type: array items: $ref: '#/components/schemas/Group' example: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 /api/groups/{gid}: get: tags: - group summary: Get Group description: 'Get Group with id=**gid** ' operationId: get_group_api_groups__gid__get parameters: - description: Stream ID required: true schema: title: Gid minimum: 0.0 type: integer description: Stream ID name: gid in: path examples: {} responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Group' examples: Upstairs Group: value: id: 101 name: Upstairs zones: - 1 - 2 - 3 - 4 - 5 vol_delta: -65 Downstairs Group: value: id: 102 name: Downstairs zones: - 6 - 7 - 8 - 9 vol_delta: -30 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - group summary: Delete Group description: 'Delete a group (group=**gid**) ' operationId: delete_group_api_groups__gid__delete parameters: - description: Stream ID required: true schema: title: Gid minimum: 0.0 type: integer description: Stream ID name: gid in: path examples: {} responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - group summary: Set Group description: 'Update a groups''s configuration (group=**gid**) ' operationId: set_group_api_groups__gid__patch parameters: - description: Stream ID required: true schema: title: Gid minimum: 0.0 type: integer description: Stream ID name: gid in: path examples: {} requestBody: content: application/json: schema: $ref: '#/components/schemas/GroupUpdate' examples: Rezone Group: value: name: Upstairs zones: - 3 - 4 - 5 Change Name: value: name: Upstairs Change audio source: value: source-id: 3 Increase Volume: value: vol_delta: -45 Mute: value: mute: true required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/stream: post: tags: - stream summary: Create Stream description: 'Create a new audio stream - For Pandora the station is the number at the end of the Pandora URL for a ''station'', e.g. 4610303469018478727 from https://www.pandora.com/station/play/4610303469018478727. ''user'' and ''password'' are the account username and password' operationId: create_stream_api_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Stream' examples: Add Beatles Internet Radio Station: value: logo: http://www.beatlesradio.com/content/images/thumbs/0000587.gif name: Beatles Radio type: internetradio url: http://www.beatlesradio.com:8000/stream/1/ Add Classical KING Internet Radio Station: value: logo: https://i.iheart.com/v3/re/assets/images/7bcfd87a-de3e-47d0-b896-be0ed38c9d74.png name: Classical KING FM 98.1 type: internetradio url: http://classicalking.streamguys1.com/king-fm-aac-iheart Add Generic DLNA: value: name: Replace this text with a name you like! type: dlna Add Groove Salad Internet Radio Station: value: logo: https://somafm.com/img3/groovesalad-200.jpg name: Groove Salad type: internetradio url: http://ice2.somafm.com/groovesalad-16-aac Add KEXP Internet Radio Station: value: logo: https://i.iheart.com/v3/re/new_assets/cc4e0a17-5233-4e4b-9b6b-7799904f78ea name: KEXP 90.3 type: internetradio url: http://live-aacplus-64.kexp.org/kexp64.aac Add Matt and Kim Pandora Station: value: name: Matt and Kim Radio password: s79sDDkjf station: '4473713754798410236' type: pandora user: test@micro-nova.com Add MicroNova Spotify: value: name: MicroNova Spotify type: spotify Add Micronova Airplay: value: name: Micronova AP type: shairport Play single file or announcement: value: name: Play NASA Announcement url: https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3 Add FM Radio Station: value: name: WXYZ type: fmradio freq: '100.1' logo: static/imgs/fmradio.png required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Stream' examples: Regina Spektor Radio: value: id: 90890 name: Regina Spektor Radio password: '' station: '4473713754798410236' status: connected type: pandora user: example1@micro-nova.com Matt and Kim Radio (disconnected): value: id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com Shairport (connected): value: id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport Shairport (disconnected): value: id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/streams: get: tags: - stream summary: Get Streams description: 'Get all streams ' operationId: get_streams_api_streams_get responses: '200': description: Successful Response content: application/json: schema: title: Response Get Streams Api Streams Get type: object additionalProperties: type: array items: $ref: '#/components/schemas/Stream' example: streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport /api/streams/{sid}: get: tags: - stream summary: Get Stream description: 'Get Stream with id=**sid** ' operationId: get_stream_api_streams__sid__get parameters: - description: Stream ID required: true schema: title: Sid minimum: 0.0 type: integer description: Stream ID name: sid in: path examples: AmpliPi: value: 1004 summary: AmpliPi - dlna Radio Station, needs user/pass/station-id: value: 1001 summary: Radio Station, needs user/pass/station-id - pandora Groove Salad: value: 1003 summary: Groove Salad - internetradio responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Stream' examples: Regina Spektor Radio: value: id: 90890 name: Regina Spektor Radio password: '' station: '4473713754798410236' status: connected type: pandora user: example1@micro-nova.com Matt and Kim Radio (disconnected): value: id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com Shairport (connected): value: id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport Shairport (disconnected): value: id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - stream summary: Delete Stream description: 'Delete a stream ' operationId: delete_stream_api_streams__sid__delete parameters: - description: Stream ID required: true schema: title: Sid minimum: 0.0 type: integer description: Stream ID name: sid in: path examples: AmpliPi: value: 1004 summary: AmpliPi - dlna Radio Station, needs user/pass/station-id: value: 1001 summary: Radio Station, needs user/pass/station-id - pandora Groove Salad: value: 1003 summary: Groove Salad - internetradio responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - stream summary: Set Stream description: 'Update a stream''s configuration (stream=**sid**) ' operationId: set_stream_api_streams__sid__patch parameters: - description: Stream ID required: true schema: title: Sid minimum: 0.0 type: integer description: Stream ID name: sid in: path examples: AmpliPi: value: 1004 summary: AmpliPi - dlna Radio Station, needs user/pass/station-id: value: 1001 summary: Radio Station, needs user/pass/station-id - pandora Groove Salad: value: 1003 summary: Groove Salad - internetradio requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamUpdate' examples: Change account info: value: password: sd9sk3k30 user: test@micro-nova.com Change name: value: name: Matt and Kim Radio Change pandora radio station: value: station: 0982034049300 Upgrade groove salad stream quality: value: url: http://ice2.somafm.com/groovesalad-64-aac responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/streams/{sid}/station={station}: post: tags: - stream summary: Change Station description: 'Change station on a pandora stream (stream=**sid**) ' operationId: change_station_api_streams__sid__station__station__post parameters: - description: Stream ID required: true schema: title: Sid minimum: 0.0 type: integer description: Stream ID name: sid in: path examples: AmpliPi: value: 1004 summary: AmpliPi - dlna Radio Station, needs user/pass/station-id: value: 1001 summary: Radio Station, needs user/pass/station-id - pandora Groove Salad: value: 1003 summary: Groove Salad - internetradio - description: Number found on the end of a pandora url while playing the station, ie 4610303469018478727 in https://www.pandora.com/station/play/4610303469018478727 required: true schema: title: Pandora Station ID minimum: 0.0 type: integer description: Number found on the end of a pandora url while playing the station, ie 4610303469018478727 in https://www.pandora.com/station/play/4610303469018478727 name: station in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/streams/{sid}/{cmd}: post: tags: - stream summary: Exec Command description: "Executes a comamnd on a stream (stream=**sid**).\n\n Command\ \ options:\n * Play Stream: **play**\n * Pause Stream: **pause**\n * Skip\ \ to next song: **next**\n * Stop Stream: **stop**\n * Like/Love Current\ \ Song: **love**\n * Ban Current Song (pandora only): **ban**\n * Shelve\ \ Current Song (pandora only): **shelve**\n\nCurrently only available with\ \ Pandora streams" operationId: exec_command_api_streams__sid___cmd__post parameters: - description: Stream ID required: true schema: title: Sid minimum: 0.0 type: integer description: Stream ID name: sid in: path examples: AmpliPi: value: 1004 summary: AmpliPi - dlna Radio Station, needs user/pass/station-id: value: 1001 summary: Radio Station, needs user/pass/station-id - pandora Groove Salad: value: 1003 summary: Groove Salad - internetradio - required: true schema: $ref: '#/components/schemas/StreamCommand' name: cmd in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/preset: post: tags: - preset summary: Create Preset description: 'Create a new preset configuration ' operationId: create_preset_api_preset_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Preset' examples: Add Mute All: value: name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Preset' examples: Mute All: value: id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/presets: get: tags: - preset summary: Get Presets description: 'Get all presets ' operationId: get_presets_api_presets_get responses: '200': description: Successful Response content: application/json: schema: title: Response Get Presets Api Presets Get type: object additionalProperties: type: array items: $ref: '#/components/schemas/Preset' example: presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true /api/presets/{pid}: get: tags: - preset summary: Get Preset description: 'Get Preset with id=**pid** ' operationId: get_preset_api_presets__pid__get parameters: - description: Preset ID required: true schema: title: Pid minimum: 0.0 type: integer description: Preset ID name: pid in: path examples: Mute All: value: 10000 summary: Mute All Play Pandora: value: 10001 summary: Play Pandora responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Preset' examples: Mute All: value: id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - preset summary: Delete Preset description: 'Delete a preset ' operationId: delete_preset_api_presets__pid__delete parameters: - description: Preset ID required: true schema: title: Pid minimum: 0.0 type: integer description: Preset ID name: pid in: path examples: Mute All: value: 10000 summary: Mute All Play Pandora: value: 10001 summary: Play Pandora responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - preset summary: Set Preset description: 'Update a preset''s configuration (preset=**pid**) ' operationId: set_preset_api_presets__pid__patch parameters: - description: Preset ID required: true schema: title: Pid minimum: 0.0 type: integer description: Preset ID name: pid in: path examples: Mute All: value: 10000 summary: Mute All Play Pandora: value: 10001 summary: Play Pandora requestBody: content: application/json: schema: $ref: '#/components/schemas/PresetUpdate' examples: Only mute some: value: name: Mute Some state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 5 mute: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/presets/{pid}/load: post: tags: - preset summary: Load Preset description: 'Load a preset configuration ' operationId: load_preset_api_presets__pid__load_post parameters: - description: Preset ID required: true schema: title: Pid minimum: 0.0 type: integer description: Preset ID name: pid in: path examples: Mute All: value: 10000 summary: Mute All Play Pandora: value: 10001 summary: Play Pandora responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/announce: post: tags: - announce summary: Announce description: 'Make an announcement ' operationId: announce_api_announce_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Announcement' examples: Make NASA Announcement: value: media: https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3 required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Status' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House source_id: null vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: Announcement: title: Announcement required: - media type: object properties: media: title: Media type: string description: URL to media to play as the announcement vol: title: Vol maximum: 0.0 minimum: -79.0 type: integer description: Output volume in dB default: -40 source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: Source to announce with default: 3 zones: title: Zones type: array items: type: integer description: Set of zone ids belonging to a group groups: title: Groups type: array items: type: integer description: List of group ids description: 'A PA-like Announcement IF no zones or groups are specified, all available zones are used' examples: Make NASA Announcement: value: media: https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3 Command: title: Command required: - stream_id - cmd type: object properties: stream_id: title: Stream Id type: integer description: Stream to execute the command on cmd: title: Cmd type: string description: Command to execute description: 'A command to execute on a stream ' Group: title: Group required: - name - zones type: object properties: id: title: Id type: integer description: Unique identifier name: title: Name type: string description: Friendly name source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: id of the connected source zones: title: Zones type: array items: type: integer description: Set of zone ids belonging to a group mute: title: Mute type: boolean description: Set to true if output is all zones muted vol_delta: title: Vol Delta maximum: 0.0 minimum: -79.0 type: integer description: Average input volume in dB description: 'A group of zones that can share the same audio input and be controlled as a group ie. Updstairs. Volume, mute, and source_id fields are aggregates of the member zones.' examples: Upstairs Group: value: id: 101 name: Upstairs zones: - 1 - 2 - 3 - 4 - 5 vol_delta: -65 Downstairs Group: value: id: 102 name: Downstairs zones: - 6 - 7 - 8 - 9 vol_delta: -30 creation_examples: Upstairs Group: value: name: Upstairs zones: - 1 - 2 - 3 - 4 - 5 Downstairs Group: value: name: Downstairs zones: - 6 - 7 - 8 - 9 GroupUpdate: title: GroupUpdate type: object properties: name: title: Name type: string description: Friendly name source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: id of the connected source zones: title: Zones type: array items: type: integer description: Set of zone ids belonging to a group mute: title: Mute type: boolean description: Set to true if output is all zones muted vol_delta: title: Vol Delta maximum: 0.0 minimum: -79.0 type: integer description: Average input volume in dB description: 'Reconfiguration of a Group ' examples: Rezone Group: value: name: Upstairs zones: - 3 - 4 - 5 Change Name: value: name: Upstairs Change audio source: value: source-id: 3 Increase Volume: value: vol_delta: -45 Mute: value: mute: true GroupUpdateWithId: title: GroupUpdateWithId required: - id type: object properties: name: title: Name type: string description: Friendly name source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: id of the connected source zones: title: Zones type: array items: type: integer description: Set of zone ids belonging to a group mute: title: Mute type: boolean description: Set to true if output is all zones muted vol_delta: title: Vol Delta maximum: 0.0 minimum: -79.0 type: integer description: Average input volume in dB id: title: Id type: integer description: 'Reconfiguration of a specific Group ' examples: Rezone Group: value: name: Upstairs zones: - 3 - 4 - 5 Change Name: value: name: Upstairs Change audio source: value: source-id: 3 Increase Volume: value: vol_delta: -45 Mute: value: mute: true HTTPValidationError: title: HTTPValidationError type: object properties: detail: title: Detail type: array items: $ref: '#/components/schemas/ValidationError' Info: title: Info type: object properties: config_file: title: Config File type: string default: Uknown version: title: Version type: string default: Unknown mock_ctrl: title: Mock Ctrl type: boolean default: false mock_streams: title: Mock Streams type: boolean default: false description: 'Information about the settings used by the controller ' MultiZoneUpdate: title: MultiZoneUpdate required: - update type: object properties: zones: title: Zones type: array items: type: integer description: Set of zone ids belonging to a group groups: title: Groups type: array items: type: integer description: List of group ids update: $ref: '#/components/schemas/ZoneUpdate' description: 'Reconfiguration of multiple zones specified by zone_ids and group_ids ' examples: Connect all zones to source 1: value: zones: - 0 - 1 - 2 - 3 - 4 - 5 update: source_id: 0 Preset: title: Preset required: - name type: object properties: id: title: Id type: integer description: Unique identifier name: title: Name type: string description: Friendly name state: $ref: '#/components/schemas/PresetState' commands: title: Commands type: array items: $ref: '#/components/schemas/Command' last_used: title: Last Used type: integer description: 'A partial controller configuration the can be loaded on demand. In addition to most of the configuration found in Status, this can contain commands as well that configure the state of different streaming services.' examples: Mute All: value: id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true creation_examples: Add Mute All: value: name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true PresetState: title: PresetState type: object properties: sources: title: Sources type: array items: $ref: '#/components/schemas/SourceUpdateWithId' zones: title: Zones type: array items: $ref: '#/components/schemas/ZoneUpdateWithId' groups: title: Groups type: array items: $ref: '#/components/schemas/GroupUpdateWithId' description: 'A set of partial configuration changes to make to sources, zones, and groups ' PresetUpdate: title: PresetUpdate type: object properties: name: title: Name type: string description: Friendly name state: $ref: '#/components/schemas/PresetState' commands: title: Commands type: array items: $ref: '#/components/schemas/Command' description: 'Changes to a current preset The contents of state and commands will be completely replaced if populated. Merging old and new updates seems too complicated and error prone.' examples: Only mute some: value: name: Mute Some state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 5 mute: true Source: title: Source required: - name type: object properties: id: title: Id type: integer description: Unique identifier name: title: Name type: string description: Friendly name input: title: Input type: string description: "Connected audio source\n\n * Digital Stream ('stream=SID')\ \ where SID is the ID of the connected stream\n * Analog RCA Input ('local')\ \ connects to the RCA inputs associated\n * Nothing ('') behind the scenes\ \ this is muxed to a digital output\n " default: '' info: title: Info allOf: - $ref: '#/components/schemas/SourceInfo' description: Additional info about the current audio playing from the stream (generated during playback description: 'An audio source ' examples: stream connected: value: id: 1 name: '1' input: stream=1009 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet state: playing nothing connected: value: id: 2 name: '2' input: '' info: img_url: static/imgs/disconnected.png state: stopped rca connected: value: id: 3 name: '3' input: local info: img_url: static/imgs/rca_inputs.svg state: unknown SourceInfo: title: SourceInfo required: - name - state type: object properties: name: title: Name type: string state: title: State type: string artist: title: Artist type: string track: title: Track type: string album: title: Album type: string station: title: Station type: string img_url: title: Img Url type: string SourceUpdate: title: SourceUpdate type: object properties: name: title: Name type: string description: Friendly name input: title: Input type: string description: 'Partial reconfiguration of an audio Source ' examples: Update Input to RCA input: value: input: local Update name: value: name: J2 Update Input to Matt and Kim Radio: value: input: stream=10001 SourceUpdateWithId: title: SourceUpdateWithId required: - id type: object properties: name: title: Name type: string description: Friendly name input: title: Input type: string id: title: Id maximum: 4.0 minimum: 0.0 type: integer description: 'Partial reconfiguration of a specific audio Source ' examples: Update Input to RCA input: value: input: local Update name: value: name: J2 Update Input to Matt and Kim Radio: value: input: stream=10001 Status: title: Status type: object properties: sources: title: Sources type: array items: $ref: '#/components/schemas/Source' default: - id: 0 name: '0' input: '' - id: 1 name: '1' input: '' - id: 2 name: '2' input: '' - id: 3 name: '3' input: '' zones: title: Zones type: array items: $ref: '#/components/schemas/Zone' default: - id: 0 name: Zone 1 source_id: 0 mute: true vol: -79 disabled: false - id: 1 name: Zone 2 source_id: 0 mute: true vol: -79 disabled: false - id: 2 name: Zone 3 source_id: 0 mute: true vol: -79 disabled: false - id: 3 name: Zone 4 source_id: 0 mute: true vol: -79 disabled: false - id: 4 name: Zone 5 source_id: 0 mute: true vol: -79 disabled: false - id: 5 name: Zone 6 source_id: 0 mute: true vol: -79 disabled: false groups: title: Groups type: array items: $ref: '#/components/schemas/Group' default: [] streams: title: Streams type: array items: $ref: '#/components/schemas/Stream' default: [] presets: title: Presets type: array items: $ref: '#/components/schemas/Preset' default: [] info: $ref: '#/components/schemas/Info' description: 'Full Controller Configuration and Status ' examples: Status of Jason's AmpliPi: value: groups: - id: 0 mute: false name: Whole House vol_delta: -44 zones: - 0 - 1 - 2 - 3 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - id: 1 mute: true name: KitchLivDining source_id: 0 vol_delta: -49 zones: - 3 - 9 - 10 - 11 presets: - id: 10000 name: Mute All state: zones: - id: 0 mute: true - id: 1 mute: true - id: 2 mute: true - id: 3 mute: true - id: 4 mute: true - id: 5 mute: true sources: - id: 0 input: stream=90890 name: J1 - id: 1 input: stream=44590 name: J2 - id: 2 input: local name: Marc - id: 3 input: local name: Source 4 streams: - id: 90890 info: album: Far (Deluxe Version) artist: Regina Spektor img_url: http://mediaserver-cont-dc6-1-v4v6.pandora.com/images/public/int/2/1/5/4/093624974512_500W_500H.jpg station: Regina Spektor Radio track: Eet name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com - id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com - id: 90892 info: details: No info available name: Pink Radio password: '' station: '4326539910057675260' status: disconnected type: pandora user: example3@micro-nova.com - id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport - id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport info: version: 0.0.1 zones: - disabled: false id: 0 mute: false name: Local source_id: 1 vol: -35 - disabled: false id: 1 mute: false name: Office source_id: 0 vol: -41 - disabled: false id: 2 mute: true name: Laundry Room source_id: 0 vol: -48 - disabled: false id: 3 mute: true name: Dining Room source_id: 0 vol: -44 - disabled: true id: 4 mute: true name: BROKEN source_id: 0 vol: -50 - disabled: false id: 5 mute: true name: Guest Bedroom source_id: 0 vol: -48 - disabled: false id: 6 mute: true name: Main Bedroom source_id: 0 vol: -40 - disabled: false id: 7 mute: true name: Main Bathroom source_id: 0 vol: -44 - disabled: false id: 8 mute: true name: Master Bathroom source_id: 0 vol: -41 - disabled: false id: 9 mute: true name: Kitchen High source_id: 0 vol: -53 - disabled: false id: 10 mute: true name: kitchen Low source_id: 0 vol: -52 - disabled: false id: 11 mute: true name: Living Room source_id: 0 vol: -46 Stream: title: Stream required: - name - type type: object properties: id: title: Id type: integer description: Unique identifier name: title: Name type: string description: Friendly name type: title: Type type: string description: "stream type\n\n * pandora\n * shairport\n * dlna\n * internetradio\n\ \ * spotify\n * plexamp\n * file\n * fmradio\n " user: title: User type: string description: User login password: title: Password type: string description: Password station: title: Station type: string description: Radio station identifier url: title: Url type: string description: Stream url, used for internetradio and file logo: title: Logo type: string description: Icon/Logo url, used for internetradio freq: title: Freq type: string description: FM Frequency (MHz), used for fmradio client_id: title: Client Id type: string description: Plexamp client_id, becomes "identifier" in server.json token: title: Token type: string description: Plexamp token for server.json description: 'Digital stream such as Pandora, Airplay or Spotify ' examples: Regina Spektor Radio: value: id: 90890 name: Regina Spektor Radio password: '' station: '4473713754798410236' status: connected type: pandora user: example1@micro-nova.com Matt and Kim Radio (disconnected): value: id: 90891 info: details: No info available name: Matt and Kim Radio password: '' station: '4610303469018478727' status: disconnected type: pandora user: example2@micro-nova.com Shairport (connected): value: id: 44590 info: details: No info available name: Jason's iPhone status: connected type: shairport Shairport (disconnected): value: id: 4894 info: details: No info available name: Rnay status: disconnected type: shairport creation_examples: Add Beatles Internet Radio Station: value: logo: http://www.beatlesradio.com/content/images/thumbs/0000587.gif name: Beatles Radio type: internetradio url: http://www.beatlesradio.com:8000/stream/1/ Add Classical KING Internet Radio Station: value: logo: https://i.iheart.com/v3/re/assets/images/7bcfd87a-de3e-47d0-b896-be0ed38c9d74.png name: Classical KING FM 98.1 type: internetradio url: http://classicalking.streamguys1.com/king-fm-aac-iheart Add Generic DLNA: value: name: Replace this text with a name you like! type: dlna Add Groove Salad Internet Radio Station: value: logo: https://somafm.com/img3/groovesalad-200.jpg name: Groove Salad type: internetradio url: http://ice2.somafm.com/groovesalad-16-aac Add KEXP Internet Radio Station: value: logo: https://i.iheart.com/v3/re/new_assets/cc4e0a17-5233-4e4b-9b6b-7799904f78ea name: KEXP 90.3 type: internetradio url: http://live-aacplus-64.kexp.org/kexp64.aac Add Matt and Kim Pandora Station: value: name: Matt and Kim Radio password: s79sDDkjf station: '4473713754798410236' type: pandora user: test@micro-nova.com Add MicroNova Spotify: value: name: MicroNova Spotify type: spotify Add Micronova Airplay: value: name: Micronova AP type: shairport Play single file or announcement: value: name: Play NASA Announcement url: https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3 Add FM Radio Station: value: name: WXYZ type: fmradio freq: '100.1' logo: static/imgs/fmradio.png StreamCommand: title: StreamCommand enum: - play - pause - next - prev - stop - love - ban - shelve type: string description: An enumeration. StreamUpdate: title: StreamUpdate type: object properties: name: title: Name type: string description: Friendly name user: title: User type: string password: title: Password type: string station: title: Station type: string url: title: Url type: string logo: title: Logo type: string freq: title: Freq type: string description: 'Reconfiguration of a Stream ' examples: Change account info: value: password: sd9sk3k30 user: test@micro-nova.com Change name: value: name: Matt and Kim Radio Change pandora radio station: value: station: 0982034049300 Upgrade groove salad stream quality: value: url: http://ice2.somafm.com/groovesalad-64-aac ValidationError: title: ValidationError required: - loc - msg - type type: object properties: loc: title: Location type: array items: type: string msg: title: Message type: string type: title: Error Type type: string Zone: title: Zone required: - name type: object properties: id: title: Id type: integer description: Unique identifier name: title: Name type: string description: Friendly name source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: id of the connected source default: 0 mute: title: Mute type: boolean description: Set to true if output is muted default: true vol: title: Vol maximum: 0.0 minimum: -79.0 type: integer description: Output volume in dB default: -79 disabled: title: Disabled type: boolean description: Set to true if not connected to a speaker default: false description: 'Audio output to a stereo pair of speakers, typically belonging to a room ' examples: Living Room: value: name: Living Room source_id: 1 mute: false vol: -25 disabled: false Dining Room: value: name: Dining Room source_id: 2 mute: true vol: -65 disabled: false ZoneUpdate: title: ZoneUpdate type: object properties: name: title: Name type: string description: Friendly name source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: id of the connected source mute: title: Mute type: boolean description: Set to true if output is muted vol: title: Vol maximum: 0.0 minimum: -79.0 type: integer description: Output volume in dB disabled: title: Disabled type: boolean description: Set to true if not connected to a speaker description: 'Reconfiguration of a Zone ' examples: Change Name: value: name: Bedroom Change audio source: value: source-id: 3 Increase Volume: value: vol: -45 Mute: value: mute: true ZoneUpdateWithId: title: ZoneUpdateWithId required: - id type: object properties: name: title: Name type: string description: Friendly name source_id: title: Source Id maximum: 3.0 minimum: 0.0 type: integer description: id of the connected source mute: title: Mute type: boolean description: Set to true if output is muted vol: title: Vol maximum: 0.0 minimum: -79.0 type: integer description: Output volume in dB disabled: title: Disabled type: boolean description: Set to true if not connected to a speaker id: title: Id maximum: 35.0 minimum: 0.0 type: integer description: 'Reconfiguration of a specific Zone ' examples: Change Name: value: name: Bedroom Change audio source: value: source-id: 3 Increase Volume: value: vol: -45 Mute: value: mute: true tags: - name: status description: The status and configuration of the entire system, including sources, zones, groups, and streams. - name: source description: Audio source. Can accept audio input from a local (RCA) connection or any stream. Sources can be connected to one or multiple zones, or connected to nothing at all. - name: zone description: Stereo output to a set of speakers, typically a room. Individually controllable with its own volume control. Can be connected to one of the 4 audio sources. - name: group description: Group of zones. Grouping allows a set of zones to be controlled together. A zone can belong to multiple groups, allowing for different levels of abstraction, e.g. Guest Bedroom can belong to both the 'Upstairs' and 'Whole House' groups. - name: stream description: Digital stream that can be connected to a source, e.g. Pandora, Airplay, Spotify, Internet Radio, DLNA. - name: preset description: A partial system configuration. Used to load specific configurations, such as "Home Theater" mode where the living room speakers are connected to the TV's audio output.