Contact Form 7 keeps each form as a post, addressed by an id you cannot see in the admin without opening the form. Everything else in this suite needs that id.
contact-form-7/list-forms is where you get it — along with the shortcode that embeds each form, how many fields it holds, and how many configuration errors Contact Form 7 has already flagged against it.
At a glance
| Ability | contact-form-7/list-forms |
| Toolset | Contact Form 7 — toolset/contact-form-7 |
| Group | Contact Form 7 › Forms |
| Requires | Contact Form 7, active on the site |
| Capability | manage_options, plus read_contact_forms |
| Safety | Read-only — changes nothing |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
How it works
The shortcode is the part people actually need. A Contact Form 7 form does not render anywhere on its own; it appears only where its shortcode has been pasted. Listing forms gives you that string without opening the editor.
The error count is the other reason to start here. It is Contact Form 7’s own verdict on the form, and a non-zero count means something in the mail or the template is wrong even though the form saves and submits happily. Follow it with contact-form-7/validate-form-config for the detail.
Filter by title substring with search, and page through with limit and offset on sites carrying dozens of forms.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
search | string | No | Title substring filter. |
limit | integer | No — defaults to 100, max 200 | How many forms to return. |
offset | integer | No — defaults to 0 | Where to start, for paging. |
What comes back
| Name | Type | What it is |
|---|---|---|
forms | array | One row per form: id, title, shortcode, field count and error count. |
count | integer | How many forms were returned. |
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:
Which contact forms does this site have, and are any of them misconfigured?
It resolves to one call:
{
"ability": "contact-form-7/list-forms",
"parameters": {}
}Worth knowing
- Read-only and cheap — the right first call in any Contact Form 7 workflow.
- The error count is a count, not the errors.
contact-form-7/validate-form-configreturns what is actually wrong. - A form with no shortcode placed anywhere is invisible to visitors no matter how well it is configured.
Related abilities
- Get Contact Form — everything about one of them
- Find Contact Form — when you know the title but not the id
- Validate Contact Form Configuration — what the error count means
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category