MessGEODocs
Get an API key

API reference

Base address https://api.messgeo.com. Download the OpenAPI file.

Account

GET/v1/me

Account, package, key scopes and limits

account:read
GET/v1/me/credits

Credit balance

account:read
GET/v1/me/usage

Daily usage of the account

account:read
PATCH/v1/me/alert-prefs

Update Prompt Tracking mail preferences

account:write
{
    "digest": false,
    "dry_run": false
}
GET/v1/me/packages

Packages, which panel and site each one is bound to, free slots

account:read

Tools

GET/v1/tools

List tools with credit cost

account:read
POST/v1/tools/{slug}/runs

Run a tool. Needs an Idempotency-Key header, spends credits

tools:run
{
    "url": "https://example.com/",
    "dry_run": false
}
GET/v1/runs

List runs

tools:read

Query: tool status since until target limit cursor

GET/v1/runs/{run_id}

Get a run

tools:read

Premium reports

GET/v1/orders

List premium report orders

tools:orders
GET/v1/orders/{order_id}

Get an order

tools:orders
GET/v1/orders/{order_id}/report

Delivered report as HTML

tools:orders

Prompt Tracking: read

GET/v1/panels

List panels

pt:read
GET/v1/panels/{panel_id}

Get a panel

pt:read
GET/v1/panels/{panel_id}/prompts

List prompts

pt:read

Query: active topic

GET/v1/panels/{panel_id}/prompts/{prompt_id}/results

Per engine results of one prompt

pt:read

Query: runs from to

GET/v1/panels/{panel_id}/stats

Visibility per measurement

pt:read

Query: runs from to

GET/v1/panels/{panel_id}/answers

AI answers. Starter gets excerpts in bulk, full text with prompt filter

pt:read

Query: prompt engine limit cursor

GET/v1/panels/{panel_id}/sources

Cited sources

pt:read
GET/v1/panels/{panel_id}/competitors

Competitors

pt:read
GET/v1/panels/{panel_id}/opportunities

Source opportunities

pt:read
GET/v1/panels/{panel_id}/alerts

Alerts

pt:read
GET/v1/panels/{panel_id}/events

Panel events

pt:read
GET/v1/panels/{panel_id}/actions

Actions

pt:read
GET/v1/panels/{panel_id}/export

CSV export, once per minute per key

pt:read

Query: tab format

GET/v1/panels/{panel_id}/setup

Setup state of a draft panel with prompt candidates

pt:read
GET/v1/panels/{panel_id}/prompts/metrics

Rank, first place rate and sentiment per prompt

pt:read
GET/v1/panels/{panel_id}/market

Market map

pt:read
GET/v1/panels/{panel_id}/brand

Brand image and site check

pt:read
GET/v1/panels/{panel_id}/insights

Recommendation cards and focus prompts

pt:read
GET/v1/panels/{panel_id}/engines

Feature rates per engine

pt:read
GET/v1/panels/{panel_id}/sources/gaps

Sources that cite rivals but not you

pt:read
GET/v1/panels/{panel_id}/gsc

Search Console queries

pt:read

Query: sort

GET/v1/panels/{panel_id}/ga4

Visits from AI assistants

pt:read
GET/v1/panels/{panel_id}/integrations

Integration status and connect address

pt:read
GET/v1/panels/{panel_id}/shares

Share links

pt:read

Prompt Tracking: write

POST/v1/panels

Create a panel on a free Pro package. Returns a draft

pt:writePro
{
    "brand": "Acme Ltd",
    "website": "https://example.com/",
    "competitors": [
        "Rival One"
    ],
    "country": "pt",
    "language": "en",
    "dry_run": true
}
PATCH/v1/panels/{panel_id}

Change country, language and engines. Removing an engine deletes its data and needs confirm true

pt:writePro
{
    "country": "tr",
    "language": "tr",
    "engines": [
        "chatgpt",
        "gemini"
    ],
    "confirm": false,
    "dry_run": true
}
DELETE/v1/panels/{panel_id}

Delete a panel and its data. Needs confirm true

pt:writePro
{
    "confirm": true,
    "dry_run": true
}
POST/v1/panels/{panel_id}/prompts

Add prompts, at most 20 per call

pt:writePro
{
    "prompts": [
        {
            "text": "best ai visibility tools for agencies",
            "topic": "tools",
            "tags": [
                "agency"
            ],
            "category": "compare",
            "critical": false
        }
    ],
    "dry_run": true
}
PATCH/v1/panels/{panel_id}/prompts

Turn up to 150 prompts on or off

pt:writePro
{
    "ids": [
        "promptid0000"
    ],
    "active": false,
    "dry_run": true
}
POST/v1/panels/{panel_id}/competitors

Add a competitor

pt:writePro
{
    "name": "Example Ltd",
    "domain": "example.com",
    "aliases": [
        "Example"
    ],
    "dry_run": true
}
POST/v1/panels/{panel_id}/actions

Add an action from a recommendation card

pt:writePro
{
    "key": "invisible_prompts",
    "status": "todo",
    "due": "2026-12-01",
    "remind": true
}
PATCH/v1/panels/{panel_id}/prompts/{prompt_id}

Update a prompt. The text cannot change

pt:writePro
{
    "active": true,
    "topic": "tools",
    "tags": [
        "agency"
    ],
    "category": "buy",
    "critical": true
}
DELETE/v1/panels/{panel_id}/prompts/{prompt_id}

Turn a prompt off. History stays

pt:writePro
DELETE/v1/panels/{panel_id}/competitors/{competitor_id}

Remove a competitor. Needs confirm true

pt:writePro
{
    "confirm": true
}
PUT/v1/panels/{panel_id}/aliases

Replace extra brand names, at most 10

pt:writePro
{
    "aliases": [
        "Former Name",
        "second-domain.com"
    ]
}
POST/v1/panels/{panel_id}/actions/{action_id}/done

Mark an action done

pt:writePro
POST/v1/panels/{panel_id}/actions/{action_id}/undo

Remove an action

pt:writePro
POST/v1/panels/{panel_id}/opportunities/mark

Mark an opportunity

pt:writePro
{
    "url": "https://forum.example/thread/1",
    "state": "added"
}
PATCH/v1/panels/{panel_id}/setup

Edit a draft panel

pt:writePro
{
    "description": "What the business does.",
    "services": [
        "Service"
    ],
    "sector": "Software",
    "competitors": [
        {
            "name": "Rival One",
            "aliases": [
                "Rival"
            ]
        }
    ],
    "aliases": [
        "Former Name"
    ]
}
POST/v1/panels/{panel_id}/shares

Create a password protected share link

pt:writePro
{
    "label": "Agency",
    "password": "at-least-8-chars",
    "sections": [
        "kpi",
        "rivals"
    ]
}
POST/v1/panels/{panel_id}/setup/topics

Add a topic to a draft, generates prompt candidates

pt:writePro
{
    "topic": "Pricing"
}
POST/v1/panels/{panel_id}/setup/approve

Activate the panel and start the first measurement. Needs confirm true

pt:writePro
{
    "prompt_ids": [
        "promptid0000"
    ],
    "critical_ids": [],
    "extra": [
        "another prompt"
    ],
    "engines": [
        "chatgpt"
    ],
    "confirm": true
}
POST/v1/panels/{panel_id}/pause

Pause measurements

pt:writePro
POST/v1/panels/{panel_id}/resume

Resume measurements

pt:writePro
PATCH/v1/panels/{panel_id}/actions/{action_id}

Change the due date

pt:writePro
{
    "due": "2026-12-15"
}
POST/v1/panels/{panel_id}/market/hide

Hide or show a name on the market map

pt:writePro
{
    "name": "Example",
    "undo": false
}
POST/v1/panels/{panel_id}/brand/confirm

Confirm a site check item

pt:writePro
{
    "id": "0000000000000000000000000000000000000000"
}
DELETE/v1/panels/{panel_id}/shares/{share_id}

Revoke a share link. Needs confirm true

pt:writePro
{
    "confirm": true
}
POST/v1/panels/{panel_id}/integrations/{service}/sync

Refresh gsc or ga4 data

pt:writePro
POST/v1/panels/{panel_id}/integrations/{service}/disconnect

Disconnect gsc or ga4. Needs confirm true

pt:writePro
{
    "confirm": true
}