rank-math/update-ai-visibility-object updates an AI Visibility brand’s configuration, updates one monitored query, or generates new baseline queries for a brand. It refuses without confirm: true.
Brand and query updates are safely repeatable. Query generation is not.
Before you run it
Two of the three modes are ordinary configuration writes. The third — generating queries — appends rather than replacing and consumes credits every time it runs, so calling it twice produces a longer query list and a smaller balance. Check the balance first with rank-math/get-content-ai-status.
At a glance
| Ability | rank-math/update-ai-visibility-object |
| Toolset | Rank Math — toolset/rank-math |
| Group | Rank Math › Content AI |
| Requires | Rank Math SEO, active on the site |
| Capability | manage_options |
| Safety | One of its three modes spends credits that cannot be refunded, and it refuses to run without confirm: true. |
| 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 |
How it works
The asymmetry is worth stating plainly, because the three modes sit behind one ability and behave very differently.
Updating a brand or a query is an ordinary write: idempotent, free, reversible by writing again.
Generating queries asks Rank Math’s service to produce a baseline set, appends them to whatever is already there, and spends credits. Run it twice and you have twice the queries and less balance — and the duplicates are not detected, because the generated queries are not identical, merely redundant.
Content AI runs on credits bought from Rank Math. Spending somebody’s credits is not something to do as a side effect of a request, so every ability here states plainly whether it spends any, and the ones that do are gated.
The confirmation covers all three modes rather than only the expensive one, which is a deliberate simplification: a single gate that is always present is harder to get wrong than one that appears conditionally.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
mode | string | Yes | Which operation: update a brand, update a query, or generate queries. |
brand_id | integer | Yes | The brand. |
query_id | integer | Required when updating a query | Which query. |
settings | object | Required for the update modes | The values to write. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
mode | string | Which operation ran. |
brand | object | The brand after the change. |
credits_spent | boolean | Whether this call spent credits. |
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:
Add our new competitor to the AI Visibility brand.
It resolves to one call:
{
"ability": "rank-math/update-ai-visibility-object",
"parameters": {
"mode": "update-brand",
"brand_id": 3,
"settings": { "competitors": ["example.com", "another.com"] },
"confirm": true
}
}Worth knowing
- Query generation appends and spends credits. The other two modes do neither.
- Duplicate generated queries are not detected — they are redundant rather than identical.
- Check
credits_spentin the response. - Check the balance before generating.
Related abilities
- Get AI Visibility Brand — read the current configuration
- Get Rank Math Content AI Status — the credit balance
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category