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 2. Edit it 3. Press try button, it will send an API command/request to the AmpliPi __Try using the get status:__ 1. Go to [Status -> Get Status](#get-/api/) 2. 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) 2. Click Example 3. Edit the zones and group name 4. Click the try button, you will see a response with the newly created group __Here are some other things that you might want to change:__ - [Stream -> Create new stream](#post-/api/stream) - [Zone -> Update Zone](#patch-/api/zones/-zid-) (to change the zone name) - [Preset -> Create preset](#post-/api/preset) (Have a look at the model to see what can be added here) # 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: /license 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/: 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/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' /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: '1': value: 0 summary: '1' '2': value: 1 summary: '2' '3': value: 2 summary: '3' '4': value: 3 summary: '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 nothing connected: value: id: 2 name: '2' input: '' rca connected: value: id: 3 name: '3' input: local '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: '1': value: 0 summary: '1' '2': value: 1 summary: '2' '3': value: 2 summary: '3' '4': value: 3 summary: '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 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: 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' /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: Local: value: 0 summary: Local Office: value: 1 summary: Office Laundry Room: value: 2 summary: Laundry Room Dining Room: value: 3 summary: Dining Room BROKEN: value: 4 summary: BROKEN Guest Bedroom: value: 5 summary: Guest Bedroom 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: Local: value: 0 summary: Local Office: value: 1 summary: Office Laundry Room: value: 2 summary: Laundry Room Dining Room: value: 3 summary: Dining Room BROKEN: value: 4 summary: BROKEN Guest Bedroom: value: 5 summary: Guest Bedroom 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 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' /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: Whole House: value: 0 summary: Whole House 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: Whole House: value: 0 summary: Whole House 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: Whole House: value: 0 summary: Whole House requestBody: content: application/json: schema: $ref: '#/components/schemas/GroupUpdate' examples: Change Name: value: name: Upstairs Change audio source: value: source-id: 3 Increase Volume: value: vol_delta: -45 Mute: value: 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/stream: post: tags: - stream summary: Create Stream description: 'Create a new audio stream ' 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 required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Stream' examples: Regina Spektor Radio (playing): value: id: 90890 name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com 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 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' /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: Regina Spektor Radio: value: 90890 summary: Regina Spektor Radio Matt and Kim Radio: value: 90891 summary: Matt and Kim Radio Pink Radio: value: 90892 summary: Pink Radio Jason's iPhone: value: 44590 summary: Jason's iPhone Marc's iPhone: value: 4893 summary: Marc's iPhone Rnay: value: 4894 summary: Rnay Jeremy's Spotify: value: 4895 summary: Jeremy's Spotify Lincoln's Spotify: value: 4896 summary: Lincoln's Spotify Indie Pop Rocks: value: 90893 summary: Indie Pop Rocks Groove Salad: value: 90894 summary: Groove Salad SP_TEST: value: 90895 summary: SP_TEST Trial_DLNA: value: 90896 summary: Trial_DLNA T2: value: 90897 summary: T2 T3: value: 90898 summary: T3 T2.5: value: 90899 summary: T2.5 Jeremy's DLNA: value: 90900 summary: Jeremy's DLNA responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Stream' examples: Regina Spektor Radio (playing): value: id: 90890 name: Regina Spektor Radio password: '' station: '4473713754798410236' status: playing type: pandora user: example1@micro-nova.com 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 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: Regina Spektor Radio: value: 90890 summary: Regina Spektor Radio Matt and Kim Radio: value: 90891 summary: Matt and Kim Radio Pink Radio: value: 90892 summary: Pink Radio Jason's iPhone: value: 44590 summary: Jason's iPhone Marc's iPhone: value: 4893 summary: Marc's iPhone Rnay: value: 4894 summary: Rnay Jeremy's Spotify: value: 4895 summary: Jeremy's Spotify Lincoln's Spotify: value: 4896 summary: Lincoln's Spotify Indie Pop Rocks: value: 90893 summary: Indie Pop Rocks Groove Salad: value: 90894 summary: Groove Salad SP_TEST: value: 90895 summary: SP_TEST Trial_DLNA: value: 90896 summary: Trial_DLNA T2: value: 90897 summary: T2 T3: value: 90898 summary: T3 T2.5: value: 90899 summary: T2.5 Jeremy's DLNA: value: 90900 summary: Jeremy's DLNA 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: Regina Spektor Radio: value: 90890 summary: Regina Spektor Radio Matt and Kim Radio: value: 90891 summary: Matt and Kim Radio Pink Radio: value: 90892 summary: Pink Radio Jason's iPhone: value: 44590 summary: Jason's iPhone Marc's iPhone: value: 4893 summary: Marc's iPhone Rnay: value: 4894 summary: Rnay Jeremy's Spotify: value: 4895 summary: Jeremy's Spotify Lincoln's Spotify: value: 4896 summary: Lincoln's Spotify Indie Pop Rocks: value: 90893 summary: Indie Pop Rocks Groove Salad: value: 90894 summary: Groove Salad SP_TEST: value: 90895 summary: SP_TEST Trial_DLNA: value: 90896 summary: Trial_DLNA T2: value: 90897 summary: T2 T3: value: 90898 summary: T3 T2.5: value: 90899 summary: T2.5 Jeremy's DLNA: value: 90900 summary: Jeremy's DLNA 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 - 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 examples: Regina Spektor Radio: value: 90890 summary: Regina Spektor Radio Matt and Kim Radio: value: 90891 summary: Matt and Kim Radio Pink Radio: value: 90892 summary: Pink Radio Jason's iPhone: value: 44590 summary: Jason's iPhone Marc's iPhone: value: 4893 summary: Marc's iPhone Rnay: value: 4894 summary: Rnay Jeremy's Spotify: value: 4895 summary: Jeremy's Spotify Lincoln's Spotify: value: 4896 summary: Lincoln's Spotify Indie Pop Rocks: value: 90893 summary: Indie Pop Rocks Groove Salad: value: 90894 summary: Groove Salad SP_TEST: value: 90895 summary: SP_TEST Trial_DLNA: value: 90896 summary: Trial_DLNA T2: value: 90897 summary: T2 T3: value: 90898 summary: T3 T2.5: value: 90899 summary: T2.5 Jeremy's DLNA: value: 90900 summary: Jeremy's DLNA 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: "Execute a comamnds 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 - required: true schema: $ref: '#/components/schemas/StreamCommand' name: cmd in: path examples: Regina Spektor Radio: value: 90890 summary: Regina Spektor Radio Matt and Kim Radio: value: 90891 summary: Matt and Kim Radio Pink Radio: value: 90892 summary: Pink Radio Jason's iPhone: value: 44590 summary: Jason's iPhone Marc's iPhone: value: 4893 summary: Marc's iPhone Rnay: value: 4894 summary: Rnay Jeremy's Spotify: value: 4895 summary: Jeremy's Spotify Lincoln's Spotify: value: 4896 summary: Lincoln's Spotify Indie Pop Rocks: value: 90893 summary: Indie Pop Rocks Groove Salad: value: 90894 summary: Groove Salad SP_TEST: value: 90895 summary: SP_TEST Trial_DLNA: value: 90896 summary: Trial_DLNA T2: value: 90897 summary: T2 T3: value: 90898 summary: T3 T2.5: value: 90899 summary: T2.5 Jeremy's DLNA: value: 90900 summary: Jeremy's DLNA 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' /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 Restore last config: value: 9999 summary: Restore last config 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 Restore last config: value: 9999 summary: Restore last config 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 Restore last config: value: 9999 summary: Restore last config 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 Restore last config: value: 9999 summary: Restore last config 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: 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 default: 0 zones: title: Zones uniqueItems: true type: array items: type: integer description: Set of zones belonging to a group mute: title: Mute type: boolean description: Set to true if output is all zones muted default: true vol_delta: title: Vol Delta maximum: 0.0 minimum: -79.0 type: integer description: Average utput volume in dB default: -79 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.' 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 default: 0 zones: title: Zones type: array items: type: integer description: Set of zones belonging to a group mute: title: Mute type: boolean description: Set to true if output is all zones muted default: true vol_delta: title: Vol Delta maximum: 0.0 minimum: -79.0 type: integer description: Average utput volume in dB default: -79 description: 'Reconfiguration of a Group ' GroupUpdate2: title: GroupUpdate2 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 default: 0 zones: title: Zones type: array items: type: integer description: Set of zones belonging to a group mute: title: Mute type: boolean description: Set to true if output is all zones muted default: true vol_delta: title: Vol Delta maximum: 0.0 minimum: -79.0 type: integer description: Average utput volume in dB default: -79 id: title: Id type: integer description: 'Reconfiguration of a specific Group ' 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 ' Preset: title: Preset required: - name - state 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' default: [] 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.' PresetState: title: PresetState type: object properties: sources: title: Sources type: array items: $ref: '#/components/schemas/SourceUpdate2' zones: title: Zones type: array items: $ref: '#/components/schemas/ZoneUpdate2' groups: title: Groups type: array items: $ref: '#/components/schemas/GroupUpdate2' 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.' 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: '' description: 'An audio source ' 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 ' SourceUpdate2: title: SourceUpdate2 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 ' 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 0 source_id: 0 mute: true vol: -79 disabled: false - id: 1 name: Zone 1 source_id: 0 mute: true vol: -79 disabled: false - id: 2 name: Zone 2 source_id: 0 mute: true vol: -79 disabled: false - id: 3 name: Zone 3 source_id: 0 mute: true vol: -79 disabled: false - id: 4 name: Zone 4 source_id: 0 mute: true vol: -79 disabled: false - id: 5 name: Zone 5 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 ' 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 " 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 logo: title: Logo type: string description: Icon/Logo url, used for internetradio info: title: Info type: object description: Additional info about the current audio playing from the stream (generated during playback status: title: Status type: string description: State of the stream description: 'Digital stream such as Pandora, Airplay or Spotify ' StreamCommand: title: StreamCommand enum: - play - pause - next - stop - like - 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 description: 'Reconfiguration of a Stream ' 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 ' 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 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: 'Reconfiguration of a Zone ' ZoneUpdate2: title: ZoneUpdate2 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 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 id: title: Id maximum: 35.0 minimum: 0.0 type: integer description: 'Reconfiguration of a specific Zone ' tags: - name: status description: The status and configuration of the entire system, including source, zones, groups, and streams. - name: source description: Audio source. Can accept sudio 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, ie. Guest Bedroom can belong to both the 'Upstairs' and 'Whole House' groups., - name: stream description: Digital stream that can be connected to a source, ie. 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.