Entwicklerdokumentation

Keywords auflisten

GET/sites/{siteId}/keywords
Berechtigung
search:read
MCP-Tool
keywords

Keywords with demand, positions and opportunity The website's keywords as the Keywords screen lists them (off-topic suggestions hidden, except in view offtopic). position is the daily Google check (the top 20; once a week the top 100) for tracked keywords, else the Search Console 28-day average. volume, difficulty and cpc are monthly estimates. Also accepted in snake_case (min_volume for minVolume).

Die Beschreibungen kommen aus dem OpenAPI-Dokument und sind auf Englisch.

Parameter

NameOrtDetails
siteIdPflichtPfadstringWebsite id, from GET /sites.
viewQueryalltrackedopportunitiesrisingpositionsnotrankingbrandedofftopicdefault alltracked: starred; opportunities: improve and new; rising: demand up 20% over the last 3 months; positions: 4–15; notranking; branded; offtopic: hidden as off topic.
qQuerystringat most 100 charactersPart of the keyword.
sortQueryvolumepositiondifficultycpcchangekeywordopportunityDefault: position for view tracked, else volume. opportunity: by opportunityScore, as the Opportunity column on the Keywords screen.
dirQueryascdescDefault asc for position and difficulty, else desc (opportunity too). Rows without a value come last.
opportunityQuerydefendimprovenewOnly this opportunity.
sourceQuerysearch_consolediscovermanualcompetitorOnly keywords from this source.
intentQueryinformationalcommercialnavigationaltransactionalOnly this search intent.
minVolumeQueryintegermin 0, max 10000000Only keywords with at least this many monthly searches. Also accepted in snake_case (min_volume for minVolume).
pageQueryintegerdefault 1, min 1Page number, from 1.
perQueryintegerdefault 50, min 1, max 200Rows per page, 1 to 200.

Antwort

200 · application/json

FeldDetails
viewall | tracked | opportunities | rising | positions | notranking | branded | offtopic · required; The view listed
filtersobject · required; The filters applied to the rows
filters.qstring or null · required; Search
filters.intentinformational | commercial | navigational | transactional | · required; Intent filter
filters.minVolumeinteger or null · required; Minimum monthly searches
filters.opportunitydefend | improve | new | · required; Opportunity filter
filters.sourcesearch_console | discover | manual | competitor | · required; Source filter
countsobject · required; The tabs and tiles of the Keywords screen for the whole list, before q and the filters
counts.allinteger · required; All keywords (tab All)
counts.trackedinteger · required; Tracked daily
counts.opportunitiesinteger · required; improve and new
counts.risinginteger · required; Demand up 20% over the last 3 months
counts.positionsinteger · required; Position 4–15
counts.notrankinginteger · required; Not ranking
counts.brandedinteger · required; Containing the brand
counts.offtopicinteger · required; Hidden as off topic
counts.top10integer · required; In the top 10 (tile)
counts.opportunityobject · required; Keywords per opportunity label
counts.opportunity.newinteger · required; Opportunity new
counts.opportunity.improveinteger · required; Opportunity improve
counts.opportunity.defendinteger · required; Opportunity defend
locationobject · required; Where the website's keyword data and daily checks are from
location.locationCodeinteger · required; Google location id
location.locationstring · required; The location by name
location.languageCodestring · required; Language code
location.devicemobile | desktop · required; The device of the daily Google check
totalinteger · required; Rows that match, over all pages
pageinteger · required; This page, from 1
perinteger · required; Rows per page
hasMoretrue or false · required; More rows after this page
keywordslist of values · required
keywords[].idstring
keywords[].keywordstring
keywords[].sourcestring
keywords[].brandedtrue or false
keywords[].clusterstring
keywords[].intentstring
keywords[].locationCodenumber
keywords[].locationstring
keywords[].languageCodestring
keywords[].devicestring
keywords[].volumenumber
keywords[].difficultynumber
keywords[].cpcnumber
keywords[].competitionnumber
keywords[].monthlylist of numbers
keywords[].dataUpdatedAtstring
keywords[].positionnumber
keywords[].positionFromstring
keywords[].gscPositionnumber
keywords[].gscClicksnumber
keywords[].gscImpressionsnumber
keywords[].gscUrlstring
keywords[].trackedtrue or false
keywords[].latestPositionnumber
keywords[].latestUrlstring
keywords[].latestDatestring
keywords[].deepPositionnumber
keywords[].deepDatestring
keywords[].weekAgoPositionnumber
keywords[].bestPositionnumber
keywords[].featureslist of strings
keywords[].opportunitystring
keywords[].opportunityScorenumber
keywords[].relevancenumber
keywords[].relevanceStatusstring
keywords[].offTopictrue or false
keywords[].topicstring
keywords[].relevanceReasonstring
keywords[].relevanceIntentstring
keywords[].actionobject
keywords[].action.idstring
keywords[].action.statusstring
keywords[].action.linkstring
notestring · required; How to read the numbers
linkaddress (URL) · required; The Keywords screen in the app

Fehler

StatusBedeutung
400Bad request. Codes: bad_view, bad_sort, bad_dir, bad_opportunity, bad_intent, bad_source, bad_minVolume, bad_page, bad_per.
401Missing, unknown or revoked key. Codes: missing_key, invalid_key.
403The key lacks the scope, covers another website, or its owner lost access. Codes: missing_scope, other_site, owner_left, no_owner, forbidden.
404Not found. Codes: not_found.
429Too many requests this hour for this key. Codes: rate_limited.

Beispielanfrage

curl \
  -H "Authorization: Bearer mr_ws_…" \
  "https://app.monoranks.com/api/v1/sites/SITE_ID/keywords"

Beispielantwort

{
  "view": "all",
  "filters": {
    "q": null,
    "intent": null,
    "minVolume": null,
    "opportunity": null,
    "source": null
  },
  "counts": {
    "all": 1240,
    "tracked": 48,
    "opportunities": 212,
    "rising": 31,
    "positions": 160,
    "notranking": 702,
    "branded": 12,
    "offtopic": 9,
    "top10": 188,
    "opportunity": {
      "new": 141,
      "improve": 71,
      "defend": 54
    }
  },
  "location": {
    "locationCode": 2840,
    "location": "United States",
    "languageCode": "en",
    "device": "mobile"
  },
  "total": 1240,
  "page": 1,
  "per": 50,
  "hasMore": true,
  "keywords": [
    {
      "id": "2d4f6b8d-0f2b-4d4f-9b6d-0f2b4d6f8b0d",
      "keyword": "gravel bike tires",
      "source": "search_console",
      "branded": false,
      "cluster": "gravel tires",
      "intent": "commercial",
      "locationCode": 2840,
      "location": "United States",
      "languageCode": "en",
      "device": "mobile",
      "volume": 2900,
      "difficulty": 34,
      "cpc": 1.12,
      "competition": 0.81,
      "monthly": [
        2400,
        2400,
        2900,
        2900,
        3600,
        3600,
        3600,
        2900,
        2900,
        2400,
        2400,
        2900
      ],
      "dataUpdatedAt": "2026-10-01T04:12:00.000Z",
      "position": 6,
      "positionFrom": "tracked",
      "gscPosition": 7.4,
      "gscClicks": 118,
      "gscImpressions": 3240,
      "gscUrl": "https://acmebikes.com/tires/gravel/",
      "tracked": true,
      "latestPosition": 6,
      "latestUrl": "https://acmebikes.com/tires/gravel/",
      "latestDate": "2026-10-05",
      "deepPosition": 6,
      "deepDate": "2026-10-05",
      "weekAgoPosition": 8,
      "bestPosition": 5,
      "features": [
        "people_also_ask",
        "images"
      ],
      "opportunity": "improve",
      "opportunityScore": 42.7,
      "relevance": 92,
      "relevanceStatus": "reviewed",
      "offTopic": false,
      "topic": "Tires",
      "relevanceReason": "Acme Bikes sells gravel tires on this page.",
      "relevanceIntent": "commercial",
      "action": {
        "id": "b2e4c6a8-1d3f-4a5b-9c7d-0e2f4a6b8c1d",
        "status": "open",
        "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/actions/b2e4c6a8-1d3f-4a5b-9c7d-0e2f4a6b8c1d"
      }
    }
  ],
  "note": "position: yesterday's Google check for tracked keywords, else the Search Console 28-day average.",
  "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/keywords"
}

Der MCP-Server macht dasselbe mit dem Tool keywords.