MessGEODocs
Get an API key

Changing data

Writes follow the same rules as your panel, and they use the same capacity and monthly swap allowance.

Preview first

curl -X POST https://api.messgeo.com/v1/panels/PANEL_ID/prompts \
  -H "Authorization: Bearer mgk_xxxxxxxxxx_your_secret" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: my-unique-key-002" \
  -d '{"prompts": [{"text": "best ai visibility tools for agencies"}], "dry_run": true}'

Every write accepts dry_run: true: it shows the effect, writes nothing and does not count towards the monthly quota. An Idempotency-Key makes a repeat safe.

Calls

CallEffect
POST /panels/{panel_id}/promptsAdd prompts, at most 20. New prompts are measured right away, like in the panel
PATCH /panels/{panel_id}/prompts/{prompt_id}Change active state, topic, tags, category, priority. The text cannot change
DELETE /panels/{panel_id}/prompts/{prompt_id}Turn a prompt off. History stays, its stored opportunities are removed
POST /panels/{panel_id}/competitorsAdd a competitor, at most 15 on Starter and 25 on Pro
DELETE /panels/{panel_id}/competitors/{competitor_id}Remove a competitor. Send confirm: true
PUT /panels/{panel_id}/aliasesReplace extra brand names, at most 10
POST /panels/{panel_id}/actions/{action_id}/done, /undoMark an action done or remove it
POST /panels/{panel_id}/opportunities/markMark a source as added or dismissed, or undo
PATCH /me/alert-prefsMail preferences of the account
PATCH /panels/{panel_id}Country, language, engines. Removing an engine needs confirm: true
POST /panels/{panel_id}/pause, /resumePause or resume measurements
DELETE /panels/{panel_id}Delete the panel. Send confirm: true
PATCH /panels/{panel_id}/promptsTurn up to 150 prompts on or off
POST /panels/{panel_id}/actionsAdd or plan an action
POST /panels/{panel_id}/sharesCreate a password protected share link
POST /panels/{panel_id}/integrations/{service}/syncRefresh Search Console or Analytics

Capacity and swaps

A panel can hold as many active prompts as its package allows, and adding up to that level is free. Replacing prompts uses the monthly swap allowance. When this is not enough the call returns 422 prompt_budget_exceeded with reason and remaining, and nothing is written.

What the API cannot change

Payments, subscriptions, deleting the account and admin functions stay in the panel. Connecting Search Console or Analytics needs Google consent in a browser: /integrations returns the address.