{"files":{"SKILL.md":"---\nname: google-home\ndescription: \"Google Home API skill. Use when working with Google Home for supported_timezones, get_app_device_id, supported_locales. Covers 30 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Google Home\nAPI version: 2.0\n\n## Auth\nApiKey cast-local-authorization-token in header\n\n## Base URL\nhttp://example.com/setup\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /supported_timezones -- timezones\n3. POST /get_app_device_id -- create first get_app_device_id\n\n## Endpoints\n30 endpoints across 18 groups. See references/api-spec.lap for full details.\n\n### Supported_timezones\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /supported_timezones | Timezones |\n\n### Get_app_device_id\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_app_device_id | App Device ID |\n\n### Supported_locales\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /supported_locales | Locales |\n\n### Assistant\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /assistant/check_ready_status | Check Ready Status |\n| POST | /assistant/set_night_mode_params | Night Mode settings |\n| GET | /assistant/alarms | Get Alarms and Timers |\n| POST | /assistant/alarms/delete | Delete Alarms and Timers |\n| POST | /assistant/notifications | Do Not Disturb |\n| POST | /assistant/alarms/volume | Alarm Volume |\n| POST | /assistant/a11y_mode | Accessibility |\n\n### Offer\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /offer | Offer |\n\n### Eureka_info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /eureka_info | Eureka Info |\n\n### Test_internet_download_speed\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /test_internet_download_speed | Test Internet Download Speed |\n\n### Reboot\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /reboot | Reboot and Factory Reset |\n\n### Set_eureka_info\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /set_eureka_info | Set Eureka Info |\n\n### User_eq\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /user_eq/set_equalizer | Set Equalizer Values |\n\n### Bluetooth\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /bluetooth/scan_results | Get Scan Results |\n| POST | /bluetooth/bond | Forget paired device |\n| POST | /bluetooth/discovery | Change Discoverability |\n| POST | /bluetooth/connect | Pair with Speaker |\n| GET | /bluetooth/status | Status |\n| POST | /bluetooth/scan | Scan for devices |\n| GET | /bluetooth/get_bonded | Get Paired Devices |\n\n### Connect_wifi\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /connect_wifi | Connect to Wi-Fi Network |\n\n### Scan_wifi\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /scan_wifi | Scan for Networks |\n\n### Configured_networks\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /configured_networks | Get Saved Networks |\n\n### Forget_wifi\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /forget_wifi | Forget Wi-Fi Network |\n\n### Scan_results\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /scan_results | Get Wi-Fi Scan Results |\n\n### NOTICE.html.gz\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /NOTICE.html.gz | Legal Notice |\n\n### Icon.png\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /icon.png | Chromecast Icon |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all supported_timezones?\" -> GET /supported_timezones\n- \"Create a get_app_device_id?\" -> POST /get_app_device_id\n- \"List all supported_locales?\" -> GET /supported_locales\n- \"Create a check_ready_status?\" -> POST /assistant/check_ready_status\n- \"List all offer?\" -> GET /offer\n- \"List all eureka_info?\" -> GET /eureka_info\n- \"Create a test_internet_download_speed?\" -> POST /test_internet_download_speed\n- \"Create a reboot?\" -> POST /reboot\n- \"Create a set_night_mode_param?\" -> POST /assistant/set_night_mode_params\n- \"Create a set_eureka_info?\" -> POST /set_eureka_info\n- \"List all alarms?\" -> GET /assistant/alarms\n- \"Create a delete?\" -> POST /assistant/alarms/delete\n- \"Create a notification?\" -> POST /assistant/notifications\n- \"Create a volume?\" -> POST /assistant/alarms/volume\n- \"Create a set_equalizer?\" -> POST /user_eq/set_equalizer\n- \"Create a a11y_mode?\" -> POST /assistant/a11y_mode\n- \"List all scan_results?\" -> GET /bluetooth/scan_results\n- \"Create a bond?\" -> POST /bluetooth/bond\n- \"Create a discovery?\" -> POST /bluetooth/discovery\n- \"Create a connect?\" -> POST /bluetooth/connect\n- \"List all status?\" -> GET /bluetooth/status\n- \"Create a scan?\" -> POST /bluetooth/scan\n- \"List all get_bonded?\" -> GET /bluetooth/get_bonded\n- \"Create a connect_wifi?\" -> POST /connect_wifi\n- \"Create a scan_wifi?\" -> POST /scan_wifi\n- \"List all configured_networks?\" -> GET /configured_networks\n- \"Create a forget_wifi?\" -> POST /forget_wifi\n- \"List all NOTICE.html.gz?\" -> GET /NOTICE.html.gz\n- \"List all icon.png?\" -> GET /icon.png\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Google Home\n@base http://example.com/setup\n@version 2.0\n@auth ApiKey cast-local-authorization-token in header\n@endpoints 30\n@hint download_for_search\n@toc supported_timezones(1), get_app_device_id(1), supported_locales(1), assistant(7), offer(1), eureka_info(1), test_internet_download_speed(1), reboot(1), set_eureka_info(1), user_eq(1), bluetooth(7), connect_wifi(1), scan_wifi(1), configured_networks(1), forget_wifi(1), scan_results(1), NOTICE.html.gz(1), icon.png(1)\n\n@group supported_timezones\n@endpoint GET /supported_timezones\n@desc Timezones\n@returns(200)\n\n@endgroup\n\n@group get_app_device_id\n@endpoint POST /get_app_device_id\n@desc App Device ID\n@required {app_id: str}\n@returns(200) {app_device_id: str, certificate: str, signed_data: str}\n@errors {404: Not Found}\n@example_request {\"app_id\":\"E8C28D3C\"}\n\n@endgroup\n\n@group supported_locales\n@endpoint GET /supported_locales\n@desc Locales\n@returns(200)\n\n@endgroup\n\n@group assistant\n@endpoint POST /assistant/check_ready_status\n@desc Check Ready Status\n@required {play_ready_message: bool, user_id: str}\n@returns(200) {can_enroll: bool, enrollment_state: int(int32), error_code: int(int32), ready: bool, retryable: bool}\n@example_request {\"play_ready_message\":true,\"user_id\":\"xxxxx\"}\n\n@endgroup\n\n@group offer\n@endpoint GET /offer\n@desc Offer\n@returns(200) {token: str}\n\n@endgroup\n\n@group eureka_info\n@endpoint GET /eureka_info\n@desc Eureka Info\n@required {params: str, options: str, nonce: int(int32)}\n@returns(200) {aogh: map{aogh_api_version: str}, audio: map{digital: bool}, build_info: map{build_type: int(int32), cast_build_revision: str, cast_control_version: int(int32), preview_channel_state: int(int32), release_track: str, system_build_number: str}, detail: map{icon_list: [map], locale: map{display_string: str}, timezone: map{display_string: str, offset: int(int32)}}, device_info: map{4k_blocked: int(int32), capabilities: map{aogh_supported: bool, assistant_supported: bool, audio_hdr_supported: bool, audio_surround_mode_supported: bool, ble_supported: bool, bluetooth_audio_sink_supported: bool, bluetooth_audio_source_supported: bool, bluetooth_supported: bool, cloudcast_supported: bool, content_filters_supported: bool, display_supported: bool, fdr_supported: bool, hdmi_prefer_50hz_supported: bool, hdmi_prefer_high_fps_supported: bool, hotspot_supported: bool, https_setup_supported: bool, input_management_supported: bool, keep_hotspot_until_connected_supported: bool, multi_user_supported: bool, multichannel_group_supported: bool, multizone_supported: bool, night_mode_supported: bool, night_mode_supported_v2: bool, opencast_supported: bool, preview_channel_supported: bool, reboot_supported: bool, remote_ducking_supported: bool, separate_tts_volume_supported: bool, setup_supported: bool, sleep_mode_supported: bool, stats_supported: bool, system_sound_effects_supported: bool, user_eq_supported: bool, wifi_auto_save_supported: bool, wifi_regulatory_domain_locked: bool, wifi_supported: bool}, cloud_device_id: str, factory_country_code: str, hotspot_bssid: str, local_authorization_token_hash: str, mac_address: str, manufacturer: str, model_name: str, product_name: str, public_key: str, ssdp_udn: str, uma_client_id: str, uptime: num, weave_device_id: str}, multizone: map{audio_output_delay: int(int32), audio_output_delay_hdmi: int(int32), audio_output_delay_oem: int(int32), aux_in_group: str, dynamic_groups: [str], groups: [str], multichannel_status: int(int32)}, name: str, net: map{ethernet_connected: bool, ip_address: str, online: bool}, night_mode_params: map{device_override_do_not_disturb: int(int32), do_not_disturb: bool, enabled: bool, led_brightness: num, volume: num, windows: [map]}, opencast: map{pin_code: str}, opt_in: map{audio_hdr: bool, audio_surround_mode: int(int32), autoplay_on_signal: bool, cloud_ipc: bool, hdmi_prefer_50hz: bool, hdmi_prefer_high_fps: bool, managed_mode: bool, opencast: bool, preview_channel: bool, remote_ducking: bool, stats: bool, ui_flipped: bool, wpa3_support_enabled: bool}, proxy: map{mode: str}, settings: map{closed_caption: map, control_notifications: int(int32), country_code: str, locale: str, network_standby: int(int32), system_sound_effects: bool, time_format: int(int32), timezone: str, wake_on_cast: int(int32)}, setup: map{qr_ssid_suffix: str, setup_state: int(int32), ssid_suffix: str, stats: map{num_check_connectivity: int(int32), num_connect_wifi: int(int32), num_connected_wifi_not_saved: int(int32), num_initial_eureka_info: int(int32), num_obtain_ip: int(int32)}, tos_accepted: bool}, sign: map{certificate: str, intermediate_certs: [str], nonce: str, signed_data: str}, user_eq: map{high_shelf: map{frequency: int(int32), gain_db: int(int32), quality: num}, low_shelf: map{frequency: int(int32), gain_db: int(int32), quality: num}, max_peaking_eqs: int(int32), peaking_eqs: [str]}, version: int(int32), wifi: map{bssid: str, has_changes: bool, noise_level: int(int32), signal_level: int(int32), ssid: str, wpa_configured: bool, wpa_id: int(int32), wpa_state: int(int32)}}\n\n@endgroup\n\n@group test_internet_download_speed\n@endpoint POST /test_internet_download_speed\n@desc Test Internet Download Speed\n@required {url: str}\n@returns(200) {bytes_received: int(int32), response_code: int(int32), time_for_data_fetch: int(int32), time_for_http_response: int(int32)}\n@example_request {\"url\":\"https://storage.googleapis.com/reliability-speedtest/random.txt\"}\n\n@endgroup\n\n@group reboot\n@endpoint POST /reboot\n@desc Reboot and Factory Reset\n@required {params: str}\n@returns(200)\n@example_request {\"params\":\"now\"}\n\n@endgroup\n\n@group assistant\n@endpoint POST /assistant/set_night_mode_params\n@desc Night Mode settings\n@required {enabled: bool, do_not_disturb: bool, led_brightness: num, volume: num, demo_to_user: bool, windows: [map{days!: [int(int32)], length_hours!: int(int32), start_hour!: int(int32)}]}\n@returns(200) {do_not_disturb: bool, enabled: bool, led_brightness: num, volume: num, windows: [map]}\n@example_request {\"enabled\":false,\"do_not_disturb\":true,\"led_brightness\":0.44999998807907104,\"volume\":0.46000000834465027,\"demo_to_user\":true,\"windows\":[{\"length_hours\":8,\"days\":[0,1,2,3,4,5,6],\"start_hour\":22}]}\n\n@endgroup\n\n@group set_eureka_info\n@endpoint POST /set_eureka_info\n@desc Set Eureka Info\n@required {name: str, settings: map{control_notifications!: int(int32)}, opt_in: map{opencast!: bool, preview_channel!: bool, remote_ducking!: bool, stats!: bool}}\n@returns(200)\n@example_request {\"name\":\"Living Room\",\"settings\":{\"control_notifications\":2},\"opt_in\":{\"opencast\":true,\"preview_channel\":true,\"remote_ducking\":true,\"stats\":true}}\n\n@endgroup\n\n@group assistant\n@endpoint GET /assistant/alarms\n@desc Get Alarms and Timers\n@returns(200) {alarm: [map], timer: [map]}\n\n@endpoint POST /assistant/alarms/delete\n@desc Delete Alarms and Timers\n@required {ids: [str]}\n@returns(200) {success: bool}\n@example_request {\"ids\":[\"timer/xxx\",\"alarm/xxx\"]}\n\n@endpoint POST /assistant/notifications\n@desc Do Not Disturb\n@required {Content-Type: str}\n@returns(200) {notifications_enabled: bool}\n\n@endpoint POST /assistant/alarms/volume\n@desc Alarm Volume\n@required {volume: int(int32)}\n@returns(200) {volume: num}\n@example_request {\"volume\":1}\n\n@endgroup\n\n@group user_eq\n@endpoint POST /user_eq/set_equalizer\n@desc Set Equalizer Values\n@required {low_shelf: map{gain_db!: int(int32)}, high_shelf: map{gain_db!: int(int32)}}\n@returns(200)\n@example_request {\"low_shelf\":{\"gain_db\":0},\"high_shelf\":{\"gain_db\":0}}\n\n@endgroup\n\n@group assistant\n@endpoint POST /assistant/a11y_mode\n@desc Accessibility\n@required {hotword_enabled: bool, endpoint_enabled: bool}\n@returns(200) {endpoint_enabled: bool, hotword_enabled: bool}\n@example_request {\"hotword_enabled\":false,\"endpoint_enabled\":false}\n\n@endgroup\n\n@group bluetooth\n@endpoint GET /bluetooth/scan_results\n@desc Get Scan Results\n@returns(200)\n\n@endpoint POST /bluetooth/bond\n@desc Forget paired device\n@required {mac_address: str, bond: bool}\n@returns(200)\n@example_request {\"mac_address\":\"xx:xx:xx:xx:xx:xx\",\"bond\":false}\n\n@endpoint POST /bluetooth/discovery\n@desc Change Discoverability\n@required {enable_discovery: bool}\n@returns(200)\n@example_request {\"enable_discovery\":true}\n\n@endpoint POST /bluetooth/connect\n@desc Pair with Speaker\n@required {mac_address: str, connect: bool, profile: int(int32)}\n@returns(200)\n@example_request {\"mac_address\":\"54:13:79:49:19:22\",\"connect\":true,\"profile\":2}\n\n@endpoint GET /bluetooth/status\n@desc Status\n@returns(200) {audio_mode: int(int32), connecting_devices: [str], connected_devices: [map], remote_sink: map{bond_date: num, device_class: int(int32), device_type: int(int32), last_connect_date: int(int32), mac_address: str, name: str, rssi: int(int32), service_uuids: [str]}, discovery_enabled: bool, scanning_enabled: bool}\n\n@endpoint POST /bluetooth/scan\n@desc Scan for devices\n@required {enable: bool, clear_results: bool, timeout: int(int32)}\n@returns(200)\n@example_request {\"enable\":true,\"clear_results\":true,\"timeout\":60}\n\n@endpoint GET /bluetooth/get_bonded\n@desc Get Paired Devices\n@returns(200)\n\n@endgroup\n\n@group connect_wifi\n@endpoint POST /connect_wifi\n@desc Connect to Wi-Fi Network\n@required {bssid: str, signal_level: int(int32), ssid: str, wpa_auth: int(int32), wpa_cipher: int(int32), enc_passwd: str}\n@returns(200)\n@example_request {\"bssid\":\"5c:0a:xx:xx:xx:xx\",\"signal_level\":-42,\"ssid\":\"myotherssid\",\"wpa_auth\":7,\"wpa_cipher\":4,\"enc_passwd\":\"xxxxxfPY=\"}\n\n@endgroup\n\n@group scan_wifi\n@endpoint POST /scan_wifi\n@desc Scan for Networks\n@returns(200)\n\n@endgroup\n\n@group configured_networks\n@endpoint GET /configured_networks\n@desc Get Saved Networks\n@returns(200)\n\n@endgroup\n\n@group forget_wifi\n@endpoint POST /forget_wifi\n@desc Forget Wi-Fi Network\n@required {wpa_id: int(int32)}\n@returns(200)\n@example_request {\"wpa_id\":0}\n\n@endgroup\n\n@group scan_results\n@endpoint GET /scan_results\n@desc Get Wi-Fi Scan Results\n@returns(200)\n\n@endgroup\n\n@group NOTICE.html.gz\n@endpoint GET /NOTICE.html.gz\n@desc Legal Notice\n@returns(200)\n\n@endgroup\n\n@group icon.png\n@endpoint GET /icon.png\n@desc Chromecast Icon\n@returns(200)\n\n@endgroup\n\n@end\n"}}