elementor/get-widget-controls returns a schema-safe summary of the controls a widget type exposes on the current site.
Use it before authoring elementor/add-widget or any settings write, to discover the valid keys and their types.
At a glance
| Ability | elementor/get-widget-controls |
| Toolset | Elementor — toolset/elementor |
| Group | Elementor › Discovery & Guidance |
| Requires | Elementor, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
Control keys are not guessable
Elementor’s control names are internal identifiers, and they do not match the labels in the editor. A heading’s text is title; a text editor’s is editor; a button’s is text. There is no rule.
Writing a key a widget does not recognise is stored and ignored — no error, no effect — so a guess that is wrong looks exactly like a write that did nothing.
The controls are also per site. A widget extended by a third-party plugin has controls that do not exist elsewhere, and a Pro widget has none at all without Pro.
“Schema-safe” means the summary is reduced to what can be described: names, types, and the options where a control has a fixed set. Elementor’s full control definitions contain PHP callbacks and conditional logic that cannot be serialised usefully.
This is the most useful read in the Elementor suite for anything doing authoring, and it is the one most likely to be skipped.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
widget_type | string | Yes | The registered widget type. |
What comes back
| Name | Type | What it is |
|---|---|---|
widget_type | string | The widget inspected. |
controls | array | Each control with its name, type and options. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
What settings does the testimonial widget accept?
It resolves to one call:
{
"ability": "elementor/get-widget-controls",
"parameters": {
"widget_type": "testimonial"
}
}Worth knowing
- Control names do not match editor labels and are not guessable.
- An unrecognised key is stored and ignored, silently.
- Controls are site-specific — third-party plugins add them.
- The call to make before any authoring.
Related abilities
- Add Elementor Widget — what this is for
- Merge Elementor Element Settings — the other consumer
- Get Elementor Official Widget Catalog — what exists
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category