Entwicklerdokumentation

Outreach-Ziele auflisten

GET/sites/{siteId}/outreach
Berechtigung
search:read

Outreach targets, ranked, with why Pages and sites worth asking for a link or a mention: open ones by score, then contacted, added, declined; targets the source no longer lists last, when included. Spam-flagged, script-made and gone targets are left out unless include names them; counts and totals leave out what is hidden. MonoRanks says who and why; it does not send email or look up contacts.

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

Parameter

NameOrtDetails
siteIdPflichtPfadstringWebsite id, from GET /sites.
statusQueryto_contactcontactedaddeddeclinedOnly this status.
sourceQueryai_sourcebest_listlink_gaplost_linkmanualOnly this source.
tagQuerystringat most 40 characters, pattern ^[a-z0-9]+(-[a-z0-9]+)*$Only targets with this tag (one label).
spamQuery1trueInclude targets with a spam score above 60 (same as include=spam).
includeQuerystringHidden groups to list too, comma separated: spam, auto (pages a script made, link gap domains with no linking page, and AI-source pages nobody can be asked about: example addresses, competitors' own pages, home or product pages of much larger sites), gone (no longer listed by the source).
pageQueryintegerdefault 1, min 1Page number, from 1.
perQueryintegerdefault 50, min 1, max 200Rows per page, 1 to 200.

Antwort

200 · application/json

FeldDetails
filtersobject · required; The filters applied
filters.statusto_contact | contacted | added | declined | · required; Status filter
filters.sourceai_source | best_list | link_gap | lost_link | manual | · required; Source filter
filters.tagstring or null · required; Tag filter
filters.spamtrue or false · required; Spam-flagged targets included
filters.includelist of spam | auto | gone · required; Hidden groups included
countsobject · required; Counts
counts.allinteger · required; Targets shown, all statuses
counts.statusobject · required; Targets per status
counts.status.to_contactinteger · required; Targets to_contact
counts.status.contactedinteger · required; Targets contacted
counts.status.addedinteger · required; Targets added
counts.status.declinedinteger · required; Targets declined
counts.sourceobject · required; Targets per source
counts.source.ai_sourceinteger · required; Targets from ai_source
counts.source.best_listinteger · required; Targets from best_list
counts.source.link_gapinteger · required; Targets from link_gap
counts.source.lost_linkinteger · required; Targets from lost_link
counts.source.manualinteger · required; Targets from manual
counts.spamHiddeninteger · required; Spam-flagged targets left out (platform pages included)
counts.platformHiddeninteger · required; Platform pages of much larger sites left out
counts.autoHiddeninteger · required; Script-made pages and link gap domains without a page left out
counts.goneHiddeninteger · required; Targets the source no longer lists, left out
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
targetslist of values · required
targets[].idstring
targets[].sourcestring
targets[].urlstring
targets[].domainstring
targets[].titlestring
targets[].scorenumber
targets[].classstring
targets[].reasonobject
targets[].reason.competitorslist of strings
targets[].reason.domainRanknumber
targets[].reason.ourRanknumber
targets[].reason.spamScorenumber
targets[].reason.outOfnumber
targets[].reason.backlinksnumber
targets[].reason.pageslist of objects
targets[].reason.pages[].competitorstring
targets[].reason.pages[].urlstring
targets[].reason.pages[].anchorstring
targets[].reason.pages[].titlestring
targets[].reason.pageKindstring
targets[].reason.pageKindBystring
targets[].statusstring
targets[].statusAtstring
targets[].statusAutotrue or false
targets[].notestring
targets[].tagslist of strings
targets[].firstSeenstring
targets[].lastSeenstring
targets[].gonetrue or false
targets[].checkobject
targets[].check.atstring
targets[].check.oktrue or false
targets[].check.statusnumber
targets[].check.linksUstrue or false
targets[].check.mentionsUstrue or false
targets[].check.matchedlist of strings
targets[].linkstring
notestring · required; How to read the fields
linkaddress (URL) · required; The Outreach screen in the app

Hinweise

GET /sites/{siteId}/outreach listet Seiten und Websites, die Sie um einen Link oder eine Erwähnung bitten können, sortiert: offene Ziele zuerst nach score (0 bis 100), dann kontaktierte, aufgenommene und abgelehnte. Ziele, die ihre Quelle nicht mehr findet (gone), kommen zuletzt. MonoRanks sendet keine E-Mails und sucht keine Kontaktdaten heraus: Es listet die Ziele, Sie übernehmen die Ansprache und halten fest, was passiert ist.

Was Details
source ai_source (KI-Antworten auf Ihre beobachteten Fragen zitieren die Seite, nennen Sie aber nicht), best_list (eine „Beste X“-Liste, die Ihre Mitbewerber nennt, Sie aber nicht), link_gap (eine Website, die auf zwei oder mehr Ihrer Mitbewerber verlinkt, nicht auf Sie), lost_link (eine starke Website, die nicht mehr auf Sie verlinkt und bei der die Bitte um eine Aktualisierung des Links die Lösung ist) oder manual (von Hand hinzugefügt).
reason sagt warum, mit den Feldern, die die Quelle kennt: zum Beispiel questions, models und timesCited; keyword und position; competitors, domainRank, spamScore und outOf; oder lostAt.
status to_contact, contacted, added oder declined. Filtern Sie mit status und source. counts enthält die Summen pro Status und Quelle.
Spam Ziele mit einem Spam-Score über 60 fehlen, außer Sie übergeben spam=1; counts.spamHidden sagt, wie viele.
Schreiben POST /sites/{siteId}/outreach/{targetId} nimmt status und/oder note (höchstens 2.000 Zeichen; eine leere Notiz löscht sie). Die Änderung wird in der Activity der Website unter dem Besitzer des Schlüssels protokolliert. Status und Notiz bleiben, wenn die Quelle das Ziel aktualisiert.
Von selbst aufgenommen Einmal pro Woche liest MonoRanks jede offene Zielseite erneut, kostenlos. Verlinkt die Seite jetzt auf die Website oder nennt sie, wechselt das Ziel zu added und statusAuto ist true.

Fehler

StatusBedeutung
400Bad request. Codes: bad_status, bad_source, bad_include, bad_tag, 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/outreach"

Beispielantwort

{
  "filters": {
    "status": null,
    "source": null,
    "tag": null,
    "spam": false,
    "include": []
  },
  "counts": {
    "all": 64,
    "status": {
      "to_contact": 51,
      "contacted": 8,
      "added": 3,
      "declined": 2
    },
    "source": {
      "ai_source": 12,
      "best_list": 9,
      "link_gap": 38,
      "lost_link": 4,
      "manual": 1
    },
    "spamHidden": 5,
    "platformHidden": 2,
    "autoHidden": 11,
    "goneHidden": 3
  },
  "total": 64,
  "page": 1,
  "per": 50,
  "hasMore": true,
  "targets": [
    {
      "id": "0b2d4f6a-8c0e-4a2c-9e4a-8c0e2a4c6e8a",
      "source": "link_gap",
      "url": "https://rideguide.example/best-bike-shops/",
      "domain": "rideguide.example",
      "title": "The best online bike shops",
      "score": 82,
      "class": "editorial",
      "reason": {
        "competitors": [
          "bikeworld.example",
          "cyclehub.example"
        ],
        "domainRank": 47,
        "ourRank": 33,
        "spamScore": 4,
        "outOf": 2,
        "backlinks": 5,
        "pages": [
          {
            "competitor": "bikeworld.example",
            "url": "https://rideguide.example/best-bike-shops/",
            "anchor": "Bike World",
            "title": "The best online bike shops"
          }
        ],
        "pageKind": "review",
        "pageKindBy": "ai"
      },
      "status": "contacted",
      "statusAt": "2026-10-02T09:30:00.000Z",
      "statusAuto": false,
      "note": "Emailed the editor on Oct 2.",
      "tags": [
        "gear-review"
      ],
      "firstSeen": "2026-09-14T03:00:00.000Z",
      "lastSeen": "2026-10-05T03:00:00.000Z",
      "gone": false,
      "check": {
        "at": "2026-10-05T03:10:00.000Z",
        "ok": true,
        "status": 200,
        "linksUs": false,
        "mentionsUs": false,
        "matched": []
      },
      "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/outreach?open=0b2d4f6a-8c0e-4a2c-9e4a-8c0e2a4c6e8a"
    }
  ],
  "note": "Pages and sites worth asking for a link or a mention, with why (reason) and a score (0–100, higher first).",
  "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/outreach"
}

Der MCP-Server macht dasselbe mit dem Tool list_outreach_targets.