Get Integration
ha_get_integrationRetrieve Home Assistant integration config entries with pagination and filtering; for a specific entry, get options, schema, diagnostics, and subentries.
Instructions
Get integration (config entry) information with pagination.
Without an entry_id: Lists all configured integrations with optional filters. With an entry_id: Returns detailed information including full options/configuration.
EXAMPLES:
List all integrations: ha_get_integration()
Paginate: ha_get_integration(offset=50)
Search: ha_get_integration(query="zigbee")
Get specific entry: ha_get_integration(entry_id="abc123")
Get entry with editable fields: ha_get_integration(entry_id="abc123", include_schema=True)
Get entry with diagnostics dump: ha_get_integration(entry_id="abc123", include_diagnostics=True)
Get device-scoped diagnostics: ha_get_integration(entry_id="abc123", include_diagnostics=True, device_id="dev123")
Get the parsed KNX ETS project (group-address table): ha_get_integration(entry_id="", include_knx_project=True)
Walk a sub-tree: ha_get_integration(entry_id="abc123", include_diagnostics=True, diagnostics_data_path="")
Paginate a large list: ha_get_integration(entry_id="abc123", include_diagnostics=True, diagnostics_data_path="", diagnostics_data_limit=10, diagnostics_data_offset=20)
List config subentries: ha_get_integration(entry_id="abc123", include_subentries=True)
Inspect subentry create schema: ha_get_integration(entry_id="abc123", include_subentry_schema=True, subentry_type="conversation")
Inspect subentry reconfigure schema: ha_get_integration(entry_id="abc123", include_subentry_schema=True, subentry_type="conversation", subentry_id="sub123")
List template entries: ha_get_integration(domain="template")
STATES: 'loaded', 'setup_error', 'setup_retry', 'not_loaded', 'failed_unload', 'migration_error'.
OPTIONS: options reflect the entry's persisted values; a field that
was never set may be absent (rather than shown at its schema default).
Values that match a secrets.yaml entry are returned as
"**redacted**". Use include_schema=True to see every editable
field and its default/type. Nested option sections (e.g. a template
helper's advanced_options) are additively flattened one level —
each section's leaf keys are copied to the top of options (mirroring
the OptionsFlow-derived read) while the raw nested section is preserved
for fidelity, and an existing top-level key is never overwritten.
Each entry carries:
log_level: the canonical Python logger level name (DEBUG/INFO/WARNING/ERROR/CRITICAL) when the integration has alogger.set_leveloverride, or"DEFAULT"(uppercase sentinel) when no override is set.log_level_raw: the original numeric level (e.g.10for DEBUG) when HA returned an int,Noneotherwise (no override set, or HA provided a level name as a string).
This is distinct from the add-on side, where ha_get_app returns
Supervisor's lowercase "default" literal — do not cross-compare.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries to return per page in list mode (default: 50) | |
| query | No | When listing, search by domain or title. Uses exact substring matching by default; set exact_match=False for fuzzy. | |
| domain | No | Filter by integration domain (e.g. 'template', 'group'). When set, includes the full options/configuration for each entry. | |
| offset | No | Number of entries to skip for pagination (default: 0) | |
| entry_id | No | Config entry ID to get details for. If omitted, lists all integrations. | |
| device_id | No | Optional. When set with include_diagnostics=True, returns the device-scoped diagnostics dump for that specific device under the integration (rather than the full integration dump). Some integrations only expose config-entry-level dumps; others expose both. | |
| exact_match | No | Use exact substring matching for query filter (default: True). Set to False for fuzzy matching when the query may contain typos. | |
| subentry_id | No | Existing subentry ID used with include_subentry_schema=True to inspect a reconfigure flow. | |
| subentry_type | No | Integration-defined subentry type used with include_subentry_schema=True. | |
| include_schema | No | When entry_id is set, also return the options flow schema (available fields and their types). Use before ha_config_set_helper to understand what can be updated. Only applies when supports_options=true. | |
| include_options | No | Include the options object for each entry. Automatically enabled when domain filter is set. For UI-created flow-based helpers (template, group, utility_meter, derivative, ...), the current config — template body, group members, source entity, etc. — is surfaced here by probing the options flow. Prefer this over include_schema when you only need to read the current values; use include_schema when you also need the field types or selector metadata. | |
| diagnostics_fields | No | Optional list of top-level keys to keep from the diagnostics data payload (e.g. ['home_assistant', 'issues']). Trims the payload before it hits the LLM context budget. Accepts a JSON list or comma-separated string. Only applies when include_diagnostics=True and the data payload is a dict. Unknown keys are silently dropped and surfaced via the omitted_fields sub-key. | |
| include_subentries | No | When entry_id is set, include config subentries for the integration entry. Useful for integrations that expose conversation agents, devices, or other extension points as subentries. | |
| include_diagnostics | No | When entry_id is set, also fetch the integration's diagnostics dump — integration-defined JSON (commonly includes redacted config, device list, state snapshots; exact top-level keys vary by integration). The canonical artifact users grab via Settings → Devices & Services → [integration] → ⋯ → Download diagnostics. Use when triaging integration bugs or filing ha_report_issue for a specific integration. Payloads can be large (Hue ~290 KB, ZHA/MQTT/ESPHome several MB) — pair with diagnostics_fields or diagnostics_truncate_at_bytes to fit the LLM context budget. | |
| include_knx_project | No | When entry_id is a KNX config entry, also return the parsed ETS project: the full group-address table (address, name, DPT, description) under knx_project.group_addresses, plus the group-range hierarchy and project metadata. This is the parsed-project GA table that is NOT in the diagnostics dump; per-entity GA assignments are already covered by include_diagnostics (config_store / configuration_yaml). Ignored (with a warning) when the entry is not a KNX integration. The KNX integration exposes a single project, so the result is the same regardless of which KNX entry_id is used. | |
| diagnostics_data_path | No | Optional dotted path into the diagnostics data sub-tree (e.g. '<list-valued path>' for per-device records, 'home_assistant.version' for HA core version; the exact key path varies by integration version). Walks into the post-fields payload. Resolution failures replace data with null and surface data_path_error. Use this when the interesting payload lives several levels deep — top-level diagnostics_fields can't address sub-trees on integrations where the bulk lives under one key (ZHA, MQTT, ESPHome). Only applies when include_diagnostics=True. | |
| show_advanced_options | No | When include_subentry_schema=True, ask older Home Assistant versions to expose advanced flow options. No-op on HA 2026.6+; pending removal before HA 2027.6. | |
| diagnostics_data_limit | No | Pagination window size for list-valued diagnostics_data_path results. When set with a list-resolved path, swaps data for a pagination envelope {path, items, offset, limit, total, has_more}. Default None returns the full resolved value. Workflow: probe with a list-valued diagnostics_data_path and diagnostics_data_limit=10 to walk a large list one page at a time (the exact path varies by integration version). Only applies when include_diagnostics=True. | |
| diagnostics_data_offset | No | Pagination start index (default 0) for list-valued diagnostics_data_path results. Ignored when diagnostics_data_path is unset, diagnostics_data_limit is unset, or the resolved value is not a list. Only applies when include_diagnostics=True. | |
| include_subentry_schema | No | When entry_id is set, return introspection-only config subentry schema information; no subentry is created. Pair with subentry_type, and optionally subentry_id for reconfigure schema. | |
| diagnostics_truncate_at_bytes | No | Optional byte cap on the serialized diagnostics payload (after diagnostics_fields and diagnostics_data_path have been applied). On hit, drops data and emits truncated=true, bytes_total, byte_cap, plus available_fields (when the capped value is a dict). Recommended starting point: 20000 bytes. Only applies when include_diagnostics=True. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||