addrbookFor publishers
← The evidence ledger

Evidence row 565629

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 73c810ed-9f96-416f-956c-4bafd7034cd6
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
184b80e04d82ec374699452321626241b68cdda0ffcf7198012540606bb0d11a
Leaf
0x02c25959e3dbeb75feacc30a68258eb7c58aeaa576a7722d374a0ab6eb1c3df7

What was observed

{
  "count": 61,
  "tools": [
    {
      "description": "Connect RSS or Atom feeds to the workspace, up to 100 at a time (the workspace reads at most 500): each url is a feed's address, or a page's (a forum, a community, a blog) whose advertised feed is used. Every keyword reading workspace feeds then gets the feed's items holding its term, polled every hour; reading a feed is free, its matches bill like any mention. Each { url } is checked on its own and reported added, already (the workspace reads it) or failed with an error code: feed_unreadable (no feed found, or the site blocks automated readers), feed_login_required (a members-only forum: send it again as { url, auth: { type: \"cookie\", value } } with the person's own sign-in, stored encrypted and read for this workspace alone), feed_login_expired, feed_limit_reached. The first 8 added bring each keyword the newest 10 matching items of the last 30 days.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "feeds": {
            "description": "Up to 100 feeds, each { url } or { url, auth } for a members-only one. Each is checked on its own: one that fails never stops the others.",
            "items": {
              "additionalProperties": false,
              "description": "One feed to connect, with a sign-in when it is members-only.",
              "properties": {
                "auth": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "type": {
                          "const": "cookie",
                          "type": "string"
                        },
                        "value": {
                          "description": "The Cookie header your browser sends to the forum (devtools, Network, the feed's request, Request Headers, cookie).",
                          "maxLength": 8000,
                          "minLength": 1,
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "value"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "The header name, e.g. Api-Key (Discourse) or Authorization.",
                          "maxLength": 100,
                          "minLength": 1,
                          "type": "string"
                        },
                        "type": {
                          "const": "header",
                          "type": "string"
                        },
                        "value": {
                          "description": "Its value.",
                          "maxLength": 8000,
                          "minLength": 1,
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "value"
                      ],
                      "type": "object"
                    }
                  ],
                  "description": "A sign-in for a members-only feed: a cookie, or one header. Write-only: stored encrypted, sent to the feed's own site alone, never shown again. A feed with a sign-in is read for this workspace alone."
                },
                "url": {
                  "description": "A feed's address (https://forum.example.com/posts.rss), or a page's (https://forum.example.com): the feed the page advertises is used.",
                  "maxLength": 500,
                  "minLength": 4,
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "feeds"
        ],
        "type": "object"
      },
      "name": "add_feeds"
    },
    {
      "description": "Start tracking a keyword. kind is \"brand\" (default), \"competitor\" or \"topic\". platforms optionally restricts it to some platforms (default: every platform). New mentions containing the term will be matched, classified and delivered. A multi-word term also matches a post holding its words close together (any order, plurals and spellings like non-profit/nonprofit); such a post is kept and billed only when the classifier scores it relevant. Wrap the term in double quotes, or set matching.exactPhrase, for the exact phrase only. Prefer short terms people actually write (\"fundraising agency\") over sentences (\"looking for a fundraising agency\"). For a common word, narrow it with `matching` (requiredTerms with requiredMode any|all, requiredGroups: combinations where the post must hold every term of at least one, as [[\"weather\",\"alert*\"],[\"tsunami\"]], so one keyword replaces a search per line, excludedTerms, a `*` wildcard at an end of any rule term, excludedAuthors, caseSensitive, exactPhrase, subreddits: { only, excluded } to keep its Reddit posts to some subreddits or out of some): a post the rules reject is never stored or billed. `context` is one sentence the classifier reads for this keyword only (\"Arc is our browser; ignore the geometry word\"). `cap` ({ mentions: N, per: \"day\" | \"week\" | \"month\" }, per defaults to month) is a ceiling on its matched mentions per UTC day, week (from Monday) or month: at the cap it stops matching until the next period starts or until the cap is raised, while its daily keyword charge continues. A daily cap keeps mentions coming every day with a fixed ceiling on spend (N × $0.008 a day at most, plus the keyword). `groupId` puts it in a keyword group (list_groups; default: the workspace's default group); a term may be tracked once per group, so two groups may track the same term as two keywords. `reviewSources` collects reviews: pass each page's link (url: an App Store or Google Play app, a Trustpilot page, a Google Maps place or its maps.app.goo.gl share link) or platform (appstore|googleplay|trustpilot|googlemaps) and id; the app stores also take countries (two-letter codes, default us) and Google Play a language (default en). Every review of the page becomes a mention of this keyword, polled daily, and the last 30 days (newest 100) come in free at once. `feeds` reads RSS or Atom feeds: pass each as { url }, a feed's URL or a page's (a forum, a community, a blog) whose advertised feed is used; a URL with no feed is refused. An item of a feed is a mention of this keyword when it holds the term, polled every hour, and the newest 10 matching items of the last 30 days come in at once (billed like any mention). `platforms: []` makes a reviews-only or feeds-only keyword. `comments` ({ enabled: true, maxPerPost: N }, off by default) reads the comments under its relevant mentions from 30 minutes after each post, as long as its platform's conversations last (a day on Reddit, Hacker News and Bluesky, a week on GitHub, Stack Overflow and DEV, a month on YouTube), $0.008 per comment delivered (comments of fewer than three words are skipped), at most maxPerPost (default 20) per mention; list them with list_mention_comments. `display` ({ languages: { only, excluded }, countries: { only, excluded } }, lowercase ISO 639-1 and ISO 3166-1 alpha-2 codes) chooses which of its mentions you see by the post's language and the author's country: a hidden mention is still matched, classified and billed, but stays out of search_mentions, exports, alerts and digests; a post whose language or country nobody could tell is always shown. On GitHub a keyword also gets events about repositories naming it; matching.repositories chooses them: events (traction: a repository under 30 days old reached 10 stars; stars: a star milestone from 100 up; growth: fast growth in a week; new: every repository created, even with no stars, off by default), minStars and minWeeklyStars (stars gained in 7 days, 25 or more). An event outside the rule is dropped before it is stored, so it is never billed: \"repositories about X with 200+ stars gaining 100 a week\" is { events: [\"stars\",\"growth\"], minStars: 200, minWeeklyStars: 100 }.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cap": {
            "anyOf": [
              {
                "additionalProperties": false,
                "description": "A ceiling on what this keyword may be charged for per day, week or month, mentions and comments together. At the cap it stops matching and receiving comments until the next period starts (UTC), or until the cap is raised or removed. It stays unmuted: it keeps its place and its daily keyword charge; pause it to stop that too.",
                "properties": {
                  "mentions": {
                    "description": "Charged items allowed per period (see per): matched mentions plus the thread comments delivered under them. Every match counts, relevant or not, the look-back a new keyword gets included, because every match bills.",
                    "maximum": 1000000,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "per": {
                    "default": "month",
                    "description": "The period the cap counts in, in UTC: day (from 00:00), week (from Monday 00:00) or month (the calendar month, the default). At the cap the keyword stops until the next period starts, so a daily cap keeps mentions coming every day with a fixed ceiling on spend.",
                    "enum": [
                      "day",
                      "week",
                      "month"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "mentions"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "A mention cap per day, week or month (per, default month); omit or null for none."
          },
          "comments": {
            "additionalProperties": false,
            "description": "Comments under this keyword's mentions; omitted fields are untouched (on create: off, 20 per post).",
            "properties": {
              "enabled": {
                "description": "Read the comments under this keyword's relevant mentions, from 30 minutes after each post, as long as its platform's conversations last (a day to a month). Each comment delivered costs $0.008 (comments of fewer than three words are dropped, never billed) (the comments line of the bill). Off by default.",
                "type": "boolean"
              },
              "maxPerPost": {
                "description": "The newest comments of one thread you receive, 20 by default, 100 at most: the ceiling on what one mention's comments can cost. A comment that names the keyword is a mention too, but only among these newest ones, so it is never billed past the ceiling.",
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "context": {
            "anyOf": [
              {
                "description": "A sentence the classifier reads for this keyword only, on top of the company profile or the group's own description (at most 300 characters): what the term means here, what to ignore. \"Arc is our browser; ignore the geometry word.\" Null clears it.",
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A sentence the classifier reads for this keyword only, on top of the company profile or the group's own description (at most 300 characters): what the term means here, what to ignore. \"Arc is our browser; ignore the geometry word.\" Null clears it."
          },
          "display": {
            "additionalProperties": false,
            "description": "Which of this keyword's mentions you see, by language and country; each list is replaced when sent, kept when omitted. Hidden mentions are still billed.",
            "properties": {
              "countries": {
                "additionalProperties": false,
                "description": "By where the author is (ISO 3166-1 alpha-2); omitted: untouched.",
                "properties": {
                  "excluded": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "us",
                        "ca",
                        "mx",
                        "br",
                        "ar",
                        "co",
                        "cl",
                        "pe",
                        "gb",
                        "ie",
                        "fr",
                        "de",
                        "es",
                        "pt",
                        "it",
                        "nl",
                        "be",
                        "ch",
                        "at",
                        "se",
                        "no",
                        "dk",
                        "fi",
                        "pl",
                        "cz",
                        "ro",
                        "gr",
                        "hu",
                        "ua",
                        "ru",
                        "lt",
                        "lv",
                        "ee",
                        "tr",
                        "il",
                        "ae",
                        "sa",
                        "eg",
                        "ng",
                        "ke",
                        "za",
                        "ma",
                        "in",
                        "pk",
                        "bd",
                        "lk",
                        "np",
                        "cn",
                        "hk",
                        "tw",
                        "jp",
                        "kr",
                        "sg",
                        "my",
                        "id",
                        "ph",
                        "vn",
                        "th",
                        "au",
                        "nz"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  },
                  "only": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "us",
                        "ca",
                        "mx",
                        "br",
                        "ar",
                        "co",
                        "cl",
                        "pe",
                        "gb",
                        "ie",
                        "fr",
                        "de",
                        "es",
                        "pt",
                        "it",
                        "nl",
                        "be",
                        "ch",
                        "at",
                        "se",
                        "no",
                        "dk",
                        "fi",
                        "pl",
                        "cz",
                        "ro",
                        "gr",
                        "hu",
                        "ua",
                        "ru",
                        "lt",
                        "lv",
                        "ee",
                        "tr",
                        "il",
                        "ae",
                        "sa",
                        "eg",
                        "ng",
                        "ke",
                        "za",
                        "ma",
                        "in",
                        "pk",
                        "bd",
                        "lk",
                        "np",
                        "cn",
                        "hk",
                        "tw",
                        "jp",
                        "kr",
                        "sg",
                        "my",
                        "id",
                        "ph",
                        "vn",
                        "th",
                        "au",
                        "nz"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "languages": {
                "additionalProperties": false,
                "description": "By the language of the post (ISO 639-1); omitted: untouched.",
                "properties": {
                  "excluded": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "en",
                        "es",
                        "de",
                        "fr",
                        "pt",
                        "it",
                        "nl",
                        "ca",
                        "pl",
                        "tr",
                        "sv",
                        "da",
                        "ru",
                        "uk",
                        "ar",
                        "hi",
                        "id",
                        "ja",
                        "zh",
                        "ko"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  },
                  "only": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "en",
                        "es",
                        "de",
                        "fr",
                        "pt",
                        "it",
                        "nl",
                        "ca",
                        "pl",
                        "tr",
                        "sv",
                        "da",
                        "ru",
                        "uk",
                        "ar",
                        "hi",
                        "id",
                        "ja",
                        "zh",
                        "ko"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "feeds": {
            "description": "RSS or Atom feeds this keyword reads, at most 20, each { url }: a feed's URL, or a page's (a forum, a community, a blog), in which case the feed the page advertises is used, else a usual address such as /feed or /rss. A URL with no feed behind it is a 400. Each feed is read every hour; an item is a mention of this keyword when it holds the term (with the keyword's matching rules), and only of keywords that named the feed. A newly connected feed brings its newest 10 items of the last 30 days that hold the term, billed like any mention and never sent as instant alerts.",
            "items": {
              "additionalProperties": false,
              "description": "One feed to read.",
              "properties": {
                "url": {
                  "description": "A feed's address (https://forum.example.com/posts.rss), or a page's (https://forum.example.com): the feed the page advertises is used.",
                  "maxLength": 500,
                  "minLength": 4,
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "maxItems": 20,
            "type": "array"
          },
          "groupId": {
            "description": "The group to track it in (grp_...); omit for the workspace's default group. A term may be tracked once per group.",
            "minLength": 1,
            "type": "string"
          },
          "kind": {
            "default": "brand",
            "description": "brand: your own names. competitor: theirs. topic: the space. Drives share of voice and segments.",
            "enum": [
              "brand",
              "competitor",
              "topic"
            ],
            "type": "string"
          },
          "matching": {
            "additionalProperties": false,
            "description": "Omitted fields are untouched; an empty list clears one.",
            "properties": {
              "caseSensitive": {
                "description": "true: the term must appear in the case it was typed (RAG, never rag). Default false.",
                "type": "boolean"
              },
              "exactPhrase": {
                "description": "true: only the exact phrase matches. false (default): a multi-word keyword also matches a post holding its words close together, in any order, plurals and spellings (non-profit, nonprofit) included; such a match is kept and billed only when the classifier scores it relevant. A term sent in double quotes sets this to true.",
                "type": "boolean"
              },
              "excludedAuthors": {
                "description": "Posts by these authors are dropped: profile or post links, @handles, u/names, Bluesky DIDs or display names, stored in canonical form like an alert's muted list.",
                "items": {
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "excludedTerms": {
                "description": "A post containing any of these is dropped. A `*` at the start or the end of an entry is a wildcard (beta.* matches beta.0.1; *bot matches nightlybot).",
                "items": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "repositories": {
                "additionalProperties": false,
                "description": "GitHub only: each field is replaced when sent, kept when omitted; null clears a minimum.",
                "properties": {
                  "events": {
                    "description": "The repository events this keyword takes. traction: a repository created in the last 30 days reached 10 stars. stars: one with 100 stars or more passed a milestone (100, 250, 500, 1,000, 2,000, 5,000 ...). growth: it gained stars fast in a week. new: every repository created, even with no stars (off by default: nearly all of them are noise for a broad keyword). Default: traction, stars, growth. Empty: no repository events.",
                    "items": {
                      "enum": [
                        "new",
                        "traction",
                        "stars",
                        "growth"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "minStars": {
                    "anyOf": [
                      {
                        "maximum": 1000000,
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Only repositories with at least this many stars; null for no minimum."
                  },
                  "minWeeklyStars": {
                    "anyOf": [
                      {
                        "maximum": 1000000,
                        "minimum": 25,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Only repositories that gained at least this many stars in the last 7 days (25 or more). It applies to every event, and one whose last week is not known yet does not pass. null: a growth event needs 100 stars and 20% of the repository's stars in a week, the other events need no growth."
                  }
                },
                "type": "object"
              },
              "requiredGroups": {
                "description": "Combinations of terms, at most 50 of 10 terms each: the post must ALSO contain every term of at least one group (an OR of ANDs). For the keyword inreach, [[\"weather\", \"alert*\"], [\"tsunami\"], [\"flash flood\"]] keeps a post about inReach weather alerts, tsunamis or flash floods, one keyword instead of three. Same phrase and wildcard rules as requiredTerms; when both are set a post must pass both. Empty: no combinations.",
                "items": {
                  "items": {
                    "maxLength": 80,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 10,
                  "minItems": 1,
                  "type": "array"
                },
                "maxItems": 50,
                "type": "array"
              },
              "requiredMode": {
                "description": "any: at least one required term must appear. all: every one must.",
                "enum": [
                  "any",
                  "all"
                ],
                "type": "string"
              },
              "requiredTerms": {
                "description": "The post must ALSO contain these terms, any one of them or all of them per requiredMode. A `*` at the start or the end of an entry is a wildcard (alert* matches alerts and alerting). Empty: no requirement.",
                "items": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "subreddits": {
                "additionalProperties": false,
                "description": "Reddit only, for this keyword alone: each list is replaced when sent, kept when omitted.",
                "properties": {
                  "excluded": {
                    "description": "Replaces the keyword's deny list; [] clears it.",
                    "items": {
                      "maxLength": 100,
                      "minLength": 1,
                      "type": "string"
                    },
                    "maxItems": 50,
                    "type": "array"
                  },
                  "only": {
                    "description": "Replaces the keyword's allowlist; [] clears it.",
                    "items": {
                      "maxLength": 100,
                      "minLength": 1,
                      "type": "string"
                    },
                    "maxItems": 50,
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "platforms": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Platforms to search the term on; omit or null for every platform. [] searches it nowhere: a keyword that only collects reviews or reads feeds, which then needs reviewSources or feeds."
          },
          "readsWorkspaceFeeds": {
            "description": "Whether the keyword also reads the workspace's feeds (GET /v1/feeds); default true. A new keyword reading them gets the look-back of the 8 most recently connected.",
            "type": "boolean"
          },
          "reviewSources": {
            "description": "Review pages this keyword collects, at most 10: App Store and Google Play apps, Trustpilot pages, Google Maps places. Every new review of one is a mention of the keyword, whatever its text says. Polled once a day (per country on the app stores). A newly connected page brings its last 30 days, the newest 100 reviews (per country), free and never sent as instant alerts; after that each review bills like any mention.",
            "items": {
              "additionalProperties": false,
              "description": "A review page whose reviews become this keyword's mentions: its link, or the platform and the id.",
              "properties": {
                "countries": {
                  "description": "App Store and Google Play only: storefronts to read, two-letter codes, at most 20. Default: the one in the link, else us. Each is one more poll a day; the same review seen in two storefronts is one mention. Trustpilot and Google Maps have one page for everyone and take none.",
                  "items": {
                    "pattern": "^[A-Za-z]{2}$",
                    "type": "string"
                  },
                  "maxItems": 20,
                  "minItems": 1,
                  "type": "array"
                },
                "id": {
                  "description": "The id on the platform: the digits after \"id\" on the App Store, the package name on Google Play, the company's domain on Trustpilot (notion.so), a Place ID (ChIJ...) on Google Maps.",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "language": {
                  "description": "Google Play only: the language of the reviews to read (en, es, de, pt-BR); Google Play answers one language at a time. Default: the link's hl, else en.",
                  "maxLength": 10,
                  "minLength": 2,
                  "type": "string"
                },
                "platform": {
                  "description": "appstore (Apple App Store), googleplay (Google Play), trustpilot (a company's Trustpilot page) or googlemaps (a place's Google reviews).",
                  "enum": [
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps"
                  ],
                  "type": "string"
                },
                "url": {
                  "description": "The review page's link: an App Store or Google Play app (https://apps.apple.com/us/app/notion/id1232780281, https://play.google.com/store/apps/details?id=notion.id), a Trustpilot page (https://www.trustpilot.com/review/notion.so) or a Google Maps place (its full link, or a maps.app.goo.gl share link). Or give platform and id.",
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "maxItems": 10,
            "type": "array"
          },
          "term": {
            "description": "The word or phrase to track, case-insensitive. A multi-word term matches as the phrase or as its words close together (see matching.exactPhrase); wrap it in double quotes for the exact phrase only.",
            "maxLength": 80,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "term"
        ],
        "type": "object"
      },
      "name": "add_keyword"
    },
    {
      "description": "Create an alert rule. mode \"instant\" sends each matching mention as it happens; \"hourly\" sends one digest every UTC hour (five minutes past) for the previous hour, nothing when it had no mention over the floor, takes no schedule and no email channel (Slack, Telegram, webhook); \"daily\" sends one digest at schedule.hour in schedule.timezone; \"weekly\" sends one a week on schedule.weekday (0 Sunday to 6 Saturday). filter narrows by keywordIds, platforms, minRelevance (the relevance floor: absent sends relevant mentions only, 40 and up; 0 sends every scored match, noise included), minConfidence, sentiments, intents, excludeAuthors, minFollowers, tags, linkHosts (the hosts a post links to, a host or any subdomain of it). channelIds come from list_channels.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "channelIds": {
            "default": [],
            "description": "Channel ids from GET /v1/channels.",
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "enabled": {
            "default": true,
            "type": "boolean"
          },
          "event": {
            "anyOf": [
              {
                "maxLength": 60,
                "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Custom event name for webhook payloads; null for the mode default."
          },
          "filter": {
            "additionalProperties": false,
            "default": {},
            "properties": {
              "anyOf": {
                "description": "OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own.",
                "items": {
                  "additionalProperties": false,
                  "description": "A group of conditions, all of which must hold: the vocabulary of a view filter, without anyOf.",
                  "properties": {
                    "automated": {
                      "description": "true: only posts that read as machine-made; false: only the rest.",
                      "type": "boolean"
                    },
                    "countries": {
                      "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "excludeAuthors": {
                      "description": "Never these authors: display names, handles or profile URLs.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 200,
                      "type": "array"
                    },
                    "groupIds": {
                      "description": "Only matches of keywords in any of these groups (grp_...).",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "intents": {
                      "description": "Only mentions carrying any of these intent or topic tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "isReply": {
                      "description": "true: only replies and comments; false: only top-level posts.",
                      "type": "boolean"
                    },
                    "keywordIds": {
                      "description": "Only matches of any of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "keywordKinds": {
                      "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                      "items": {
                        "enum": [
                          "brand",
                          "competitor",
                          "topic"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "kind": {
                      "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                      "enum": [
                        "post",
                        "comment",
                        "repository"
                      ],
                      "type": "string"
                    },
                    "languages": {
                      "description": "Only posts in any of these languages (ISO 639-1).",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "linkHosts": {
                      "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "maxFollowers": {
                      "description": "Only authors with at most this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minBookmarks": {
                      "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minConfidence": {
                      "description": "Only mentions whose classifier confidence is at least this.",
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    },
                    "minFollowers": {
                      "description": "Only authors with at least this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minLikes": {
                      "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minQuotes": {
                      "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minRelevance": {
                      "description": "Only mentions scored at least this.",
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReplies": {
                      "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReposts": {
                      "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minViews": {
                      "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "notCountries": {
                      "description": "Never posts whose author is in these countries; an unknown country still passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "notGroupIds": {
                      "description": "Never matches of keywords in these groups.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notIntents": {
                      "description": "Never mentions carrying these tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notKeywordIds": {
                      "description": "Never matches of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notLanguages": {
                      "description": "Never posts in these languages; an unknown language still passes.",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notLinkHosts": {
                      "description": "Never posts linking to these hosts.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notPlatforms": {
                      "description": "Never posts from these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notRatings": {
                      "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "notSentiments": {
                      "description": "Never these sentiments; an unscored mention still passes.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "notSubreddits": {
                      "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notTags": {
                      "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "organization": {
                      "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                      "type": "boolean"
                    },
                    "platforms": {
                      "description": "Only posts from any of these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "q": {
                      "description": "Substring in the post text or the author's name.",
                      "maxLength": 200,
                      "minLength": 1,
                      "type": "string"
                    },
                    "ratings": {
                      "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "relevant": {
                      "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                      "type": "boolean"
                    },
                    "sentiments": {
                      "description": "Only these sentiments.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "status": {
                      "description": "Only mentions in this status: open, ignored, done.",
                      "enum": [
                        "open",
                        "ignored",
                        "done"
                      ],
                      "type": "string"
                    },
                    "subreddits": {
                      "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "tags": {
                      "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "maxItems": 10,
                "minItems": 1,
                "type": "array"
              },
              "automated": {
                "description": "true: only posts that read as machine-made (bots, templated posts); false: only the rest. Omit for both.",
                "type": "boolean"
              },
              "countries": {
                "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). A post whose country is unknown never passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "excludeAuthors": {
                "description": "Never these authors: display names, handles or profile URLs.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "groupIds": {
                "description": "Only keywords in these groups (grp_...): one rule per customer, say.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "intents": {
                "description": "At least one of these intent or topic tags.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "keywordIds": {
                "description": "Only these keywords.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "languages": {
                "description": "Only posts in any of these languages (ISO 639-1: en, es, de). A post whose language is unknown never passes.",
                "items": {
                  "pattern": "^[a-z]{2}$",
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "linkHosts": {
                "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it (octolens.com also matches blog.octolens.com). A post with no links never passes.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "minBookmarks": {
                "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minConfidence": {
                "description": "Only mentions whose classifier confidence is at least this, 0 to 1. A mention without a confidence never passes.",
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "minFollowers": {
                "description": "Only authors with at least this many followers. Unknown reach never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minLikes": {
                "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minQuotes": {
                "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minRelevance": {
                "description": "The rule's relevance floor. Absent, it sends relevant mentions only (scored 40 and up, the classifier's line); lower, down to 0, it also receives the matches the classifier scored as noise; higher, it hears less. Email channels keep the 40 line whatever the rule says. Unclassified mentions never pass.",
                "maximum": 100,
                "minimum": 0,
                "type": "integer"
              },
              "minReplies": {
                "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minReposts": {
                "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minViews": {
                "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "notCountries": {
                "description": "Never posts whose author is in these countries: [\"in\"]. A post whose country is unknown still passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "notRatings": {
                "description": "Never reviews with these star ratings (1 to 5): [5] keeps the five star reviews out. Posts that are not reviews still pass.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "organization": {
                "description": "true: only posts by companies, brands and organizations; false: only posts by people. Omit for both.",
                "type": "boolean"
              },
              "platforms": {
                "description": "Only posts from these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "ratings": {
                "description": "Only app store reviews with any of these star ratings (1 to 5): [1, 2] sends the unhappy ones. Every other post fails it.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "sentiments": {
                "description": "Only these sentiments.",
                "items": {
                  "description": "Classifier sentiment.",
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "tags": {
                "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              }
            },
            "type": "object"
          },
          "mode": {
            "default": "instant",
            "enum": [
              "instant",
              "hourly",
              "daily",
              "weekly"
            ],
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "schedule": {
            "additionalProperties": false,
            "description": "Required for daily and weekly alerts (weekly ones also need schedule.weekday). Hourly alerts take none: they send every UTC hour, so a time of day and a zone are ignored and a weekday is refused.",
            "properties": {
              "hour": {
                "maximum": 23,
                "minimum": 0,
                "type": "integer"
              },
              "minute": {
                "default": 0,
                "maximum": 59,
                "minimum": 0,
                "type": "integer"
              },
              "skipEmpty": {
                "default": true,
                "type": "boolean"
              },
              "timezone": {
                "maxLength": 64,
                "minLength": 1,
                "type": "string"
              },
              "weekday": {
                "description": "Weekly rules: the day it sends, 0 Sunday to 6 Saturday. Required for mode weekly; ignored on daily rules.",
                "maximum": 6,
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "hour",
              "timezone"
            ],
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_alert"
    },
    {
      "description": "Create a keyword group: a name (unique per workspace), optionally your own id for it (externalId, unique too, a customer id say), and optionally its own company description (context: who the business is, what it sells, for whom), which the classifier reads in place of the whole workspace profile (guidelines and competitors included) for this group's keywords, so a rule for the group goes in that text. One group per customer with its description is how a reseller gets each customer judged as itself. Then pass its id as groupId to add_keyword.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "anyOf": [
              {
                "description": "What the classifier reads as \"the company\" for this group's keywords, in place of the WHOLE workspace profile, its relevance guidelines and competitor list included (at most 4000 characters): who the business is, what it sells, for whom, what is not it, and any rule that should apply to this group (\"ignore job posts\"). For a group per customer, the customer's description. Null: the workspace profile, as for every keyword before groups.",
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "What the classifier reads as \"the company\" for this group's keywords, in place of the WHOLE workspace profile, its relevance guidelines and competitor list included (at most 4000 characters): who the business is, what it sells, for whom, what is not it, and any rule that should apply to this group (\"ignore job posts\"). For a group per customer, the customer's description. Null: the workspace profile, as for every keyword before groups."
          },
          "externalId": {
            "anyOf": [
              {
                "description": "Your own id for the group (a customer id, say). Unique per workspace; find the group by it with GET /v1/groups?externalId=.",
                "maxLength": 128,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your own id for the group (a customer id, say). Unique per workspace; find the group by it with GET /v1/groups?externalId=."
          },
          "name": {
            "description": "The group's name: a customer, a campaign, a product. Unique per workspace.",
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_group"
    },
    {
      "description": "Save an audience segment: a name plus a filter (platforms, tags, follower range, minimum mentions or negatives, intents seen, keyword kinds mentioned or never mentioned, first seen within N days, linkHosts they have shared a link to). Evaluated on every read, never materialized. With groupId the segment belongs to that keyword group and is only listed there.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "default": "",
            "maxLength": 500,
            "type": "string"
          },
          "filter": {
            "additionalProperties": false,
            "default": {},
            "properties": {
              "automated": {
                "description": "true: only people whose matched posts are mostly machine-made (bot accounts); false: only the rest.",
                "type": "boolean"
              },
              "intents": {
                "description": "At least one mention carrying any of these intents.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 10,
                "type": "array"
              },
              "keywordKinds": {
                "description": "Mentioned a keyword of any of these kinds.",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "linkHosts": {
                "description": "At least one mention linking to any of these hosts, the host itself or a subdomain of it.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "maxFollowers": {
                "description": "At most this many followers. Unknown reach never matches.",
                "minimum": 0,
                "type": "integer"
              },
              "minFollowers": {
                "description": "At least this many followers. Unknown reach never matches.",
                "minimum": 0,
                "type": "integer"
              },
              "minMentions": {
                "description": "At least this many matched mentions.",
                "minimum": 1,
                "type": "integer"
              },
              "minNegative": {
                "description": "At least this many negative mentions.",
                "minimum": 1,
                "type": "integer"
              },
              "muted": {
                "description": "true: only muted people; false: only unmuted.",
                "type": "boolean"
              },
              "neverKeywordKinds": {
                "description": "Never mentioned a keyword of these kinds.",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "newSinceDays": {
                "description": "First seen within this many days.",
                "maximum": 365,
                "minimum": 1,
                "type": "integer"
              },
              "notIntents": {
                "description": "Nobody whose mentions carry any of these intents.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 10,
                "type": "array"
              },
              "notPlatforms": {
                "description": "Nobody with an account on these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notTags": {
                "description": "Nobody carrying any of these tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "ownerIds": {
                "description": "People owned by any of these members (user ids); \"none\" matches people nobody owns.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "platforms": {
                "description": "People with an account on any of these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "stages": {
                "description": "People at any of these outreach stages.",
                "items": {
                  "description": "Where your workspace stands with the person: not_contacted, contacted, replied, in_talks, customer or not_a_fit.",
                  "enum": [
                    "not_contacted",
                    "contacted",
                    "replied",
                    "in_talks",
                    "customer",
                    "not_a_fit"
                  ],
                  "type": "string"
                },
                "maxItems": 6,
                "type": "array"
              },
              "tags": {
                "description": "People carrying any of these tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              }
            },
            "type": "object"
          },
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_segment"
    },
    {
      "description": "Save a view: a name plus a filter in the vocabulary of search_mentions (keywords or keyword kinds, platforms, status, relevant, sentiments, intents, languages, author countries, author tags, follower range, replies, link hosts, automated, organization, free text), lists any-of, `not` lists none-of, every condition ANDed, plus anyOf for OR: groups of those conditions, at least one of which must hold. Nothing is materialized: the view selects whatever matches when it is read.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "default": "",
            "description": "What the view is for, shown under its name.",
            "maxLength": 500,
            "type": "string"
          },
          "filter": {
            "additionalProperties": false,
            "default": {},
            "description": "The filter; empty selects every mention.",
            "properties": {
              "anyOf": {
                "description": "OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own.",
                "items": {
                  "additionalProperties": false,
                  "description": "A group of conditions, all of which must hold: the vocabulary of a view filter, without anyOf.",
                  "properties": {
                    "automated": {
                      "description": "true: only posts that read as machine-made; false: only the rest.",
                      "type": "boolean"
                    },
                    "countries": {
                      "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "excludeAuthors": {
                      "description": "Never these authors: display names, handles or profile URLs.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 200,
                      "type": "array"
                    },
                    "groupIds": {
                      "description": "Only matches of keywords in any of these groups (grp_...).",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "intents": {
                      "description": "Only mentions carrying any of these intent or topic tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "isReply": {
                      "description": "true: only replies and comments; false: only top-level posts.",
                      "type": "boolean"
                    },
                    "keywordIds": {
                      "description": "Only matches of any of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "keywordKinds": {
                      "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                      "items": {
                        "enum": [
                          "brand",
                          "competitor",
                          "topic"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "kind": {
                      "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                      "enum": [
                        "post",
                        "comment",
                        "repository"
                      ],
                      "type": "string"
                    },
                    "languages": {
                      "description": "Only posts in any of these languages (ISO 639-1).",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "linkHosts": {
                      "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "maxFollowers": {
                      "description": "Only authors with at most this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minBookmarks": {
                      "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minConfidence": {
                      "description": "Only mentions whose classifier confidence is at least this.",
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    },
                    "minFollowers": {
                      "description": "Only authors with at least this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minLikes": {
                      "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minQuotes": {
                      "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minRelevance": {
                      "description": "Only mentions scored at least this.",
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReplies": {
                      "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReposts": {
                      "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minViews": {
                      "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "notCountries": {
                      "description": "Never posts whose author is in these countries; an unknown country still passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "notGroupIds": {
                      "description": "Never matches of keywords in these groups.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notIntents": {
                      "description": "Never mentions carrying these tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notKeywordIds": {
                      "description": "Never matches of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notLanguages": {
                      "description": "Never posts in these languages; an unknown language still passes.",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notLinkHosts": {
                      "description": "Never posts linking to these hosts.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notPlatforms": {
                      "description": "Never posts from these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notRatings": {
                      "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "notSentiments": {
                      "description": "Never these sentiments; an unscored mention still passes.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "notSubreddits": {
                      "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notTags": {
                      "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "organization": {
                      "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                      "type": "boolean"
                    },
                    "platforms": {
                      "description": "Only posts from any of these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "q": {
                      "description": "Substring in the post text or the author's name.",
                      "maxLength": 200,
                      "minLength": 1,
                      "type": "string"
                    },
                    "ratings": {
                      "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "relevant": {
                      "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                      "type": "boolean"
                    },
                    "sentiments": {
                      "description": "Only these sentiments.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "status": {
                      "description": "Only mentions in this status: open, ignored, done.",
                      "enum": [
                        "open",
                        "ignored",
                        "done"
                      ],
                      "type": "string"
                    },
                    "subreddits": {
                      "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "tags": {
                      "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "maxItems": 10,
                "minItems": 1,
                "type": "array"
              },
              "automated": {
                "description": "true: only posts that read as machine-made; false: only the rest.",
                "type": "boolean"
              },
              "countries": {
                "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "excludeAuthors": {
                "description": "Never these authors: display names, handles or profile URLs.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "groupIds": {
                "description": "Only matches of keywords in any of these groups (grp_...).",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "intents": {
                "description": "Only mentions carrying any of these intent or topic tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "isReply": {
                "description": "true: only replies and comments; false: only top-level posts.",
                "type": "boolean"
              },
              "keywordIds": {
                "description": "Only matches of any of these keywords.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "keywordKinds": {
                "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "kind": {
                "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                "enum": [
                  "post",
                  "comment",
                  "repository"
                ],
                "type": "string"
              },
              "languages": {
                "description": "Only posts in any of these languages (ISO 639-1).",
                "items": {
                  "pattern": "^[a-z]{2}$",
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "linkHosts": {
                "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "maxFollowers": {
                "description": "Only authors with at most this many followers; unknown reach never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minBookmarks": {
                "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minConfidence": {
                "description": "Only mentions whose classifier confidence is at least this.",
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "minFollowers": {
                "description": "Only authors with at least this many followers; unknown reach never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minLikes": {
                "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minQuotes": {
                "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minRelevance": {
                "description": "Only mentions scored at least this.",
                "maximum": 100,
                "minimum": 0,
                "type": "integer"
              },
              "minReplies": {
                "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minReposts": {
                "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minViews": {
                "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "notCountries": {
                "description": "Never posts whose author is in these countries; an unknown country still passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "notGroupIds": {
                "description": "Never matches of keywords in these groups.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "notIntents": {
                "description": "Never mentions carrying these tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notKeywordIds": {
                "description": "Never matches of these keywords.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "notLanguages": {
                "description": "Never posts in these languages; an unknown language still passes.",
                "items": {
                  "pattern": "^[a-z]{2}$",
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notLinkHosts": {
                "description": "Never posts linking to these hosts.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notPlatforms": {
                "description": "Never posts from these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notRatings": {
                "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "notSentiments": {
                "description": "Never these sentiments; an unscored mention still passes.",
                "items": {
                  "description": "Classifier sentiment.",
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "notSubreddits": {
                "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                "items": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "notTags": {
                "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "organization": {
                "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                "type": "boolean"
              },
              "platforms": {
                "description": "Only posts from any of these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "q": {
                "description": "Substring in the post text or the author's name.",
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              "ratings": {
                "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "relevant": {
                "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                "type": "boolean"
              },
              "sentiments": {
                "description": "Only these sentiments.",
                "items": {
                  "description": "Classifier sentiment.",
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "status": {
                "description": "Only mentions in this status: open, ignored, done.",
                "enum": [
                  "open",
                  "ignored",
                  "done"
                ],
                "type": "string"
              },
              "subreddits": {
                "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                "items": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "tags": {
                "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              }
            },
            "type": "object"
          },
          "name": {
            "description": "Unique per workspace, case-insensitive.",
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "create_view"
    },
    {
      "description": "Delete an outreach activity logged by mistake. The person's owner and stage stay as they are. An activity logged in a keyword group is found with that groupId.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "activityId": {
            "description": "Activity id (act_...), from list_activities",
            "minLength": 1,
            "type": "string"
          },
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Person id (aut_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id",
          "activityId"
        ],
        "type": "object"
      },
      "name": "delete_activity"
    },
    {
      "description": "Delete an alert rule. Its channels stay and can serve other rules. Irreversible; disabling it (update_alert enabled=false) keeps the rule.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Alert id (feed_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_alert"
    },
    {
      "description": "Stop the workspace reading a feed (fd_..., from list_feeds). Its mentions stay; keywords that name the same feed in their own feeds keep reading it.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Feed id (fd_...), from list_feeds",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_feed"
    },
    {
      "description": "Delete a keyword group and EVERY keyword in it (each as delete_keyword does: its mentions go with it). The default group cannot be deleted. Says how many keywords went.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Group id (grp_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_group"
    },
    {
      "description": "Stop tracking a keyword and delete its mentions (a post also matched by another keyword stays). Alert rules that named it stop naming it; a rule that named only this keyword is disabled rather than widened to every keyword. Irreversible; muting (update_keyword muted=true) keeps the mentions.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Keyword id (kw_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_keyword"
    },
    {
      "description": "Delete a saved segment. Nobody in it is affected. A segment saved in a keyword group is found with that groupId.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Segment id (seg_...), from list_segments",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_segment"
    },
    {
      "description": "Delete a saved view. No mention is affected.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "View id (vw_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "delete_view"
    },
    {
      "description": "Dismiss an attention item (att_... from list_attention): it leaves the open list and does not come back while its condition lasts.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Attention item id (att_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "dismiss_attention"
    },
    {
      "description": "Create a new keyword with an existing one's settings: give the new term (or the same term with another groupId, since a term is tracked once per group). It copies the kind, platforms, context, every matching rule, the monthly mention cap and the comments setting; review apps and feeds only when listed in include (reviewSources, feeds), since two keywords on one app collect and bill every review twice. It is a new keyword: $5 per month, and its last 30 days come in at once.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "The group of the copy (grp_...); omit for the original's group.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "The keyword to copy (kw_...)",
            "minLength": 1,
            "type": "string"
          },
          "include": {
            "description": "Also copy these: reviewSources (its review apps) and feeds (its RSS or Atom feeds). Off by default, since two keywords on one app or feed collect, and bill, every review or item twice.",
            "items": {
              "enum": [
                "reviewSources",
                "feeds"
              ],
              "type": "string"
            },
            "maxItems": 2,
            "type": "array"
          },
          "term": {
            "description": "The term of the copy. The same term as the original only in another group (groupId): a term is tracked once per group. Wrap it in double quotes for the exact phrase only.",
            "maxLength": 80,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "term",
          "id"
        ],
        "type": "object"
      },
      "name": "duplicate_keyword"
    },
    {
      "description": "One alert rule by id: its filter, mode and schedule, channels and delivery stats.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Alert id (feed_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_alert"
    },
    {
      "description": "One table grouped by a dimension `by`: platform, keyword, sentiment, intent, status (open, ignored, done), hour (weekday and hour of day in timezone, for \"when do people talk\"), person (who posted most, with followers), language (ISO 639-1), country (where the authors are, ISO 3166-1 alpha-2; \"unknown\" for posts nobody could place), or subreddit (Reddit posts only: which subreddits your mentions come from). Each row has matched, relevant, share of the window in percent, a sentiment split and, with compare=true, the same group in the period right before. Same window parameters as get_analytics_summary. At most 50 groups, most matched first.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "by": {
            "description": "The dimension to group by: platform, keyword, sentiment (unclassified included), intent (a mention can carry several), status (open, ignored, done), hour (weekday and hour of day in `timezone`), person (who posted; anonymous posts are left out), language (ISO 639-1; \"unknown\" for posts without one, \"other\" for a language the classifier recognised but does not name), country (where the author is, ISO 3166-1 alpha-2; \"unknown\" for posts nobody could place, \"other\" for a place it does not name), subreddit (Reddit posts only, most active first; `share` stays a percent of the whole window, every platform included).",
            "enum": [
              "platform",
              "keyword",
              "sentiment",
              "intent",
              "status",
              "hour",
              "person",
              "language",
              "country",
              "subreddit"
            ],
            "type": "string"
          },
          "compare": {
            "description": "true adds the period of the same length right before the window as `previous`.",
            "type": "boolean"
          },
          "from": {
            "description": "First day, YYYY-MM-DD, inclusive, in `timezone`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "keywordIds": {
            "description": "Only these keyword ids. Repeatable, or comma-separated; omit for every keyword.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "platforms": {
            "description": "Only these platforms. Repeatable, or comma-separated; omit for every platform.",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "range": {
            "description": "Preset window ending today. Ignored when from or to is given. Default 30d.",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.",
            "maxLength": 64,
            "type": "string"
          },
          "to": {
            "description": "Last day, YYYY-MM-DD, inclusive, in `timezone`. Default today.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "required": [
          "by"
        ],
        "type": "object"
      },
      "name": "get_analytics_breakdown"
    },
    {
      "description": "Mentions over time: one point per day or week (bucket; default day up to 90 days) with matched, relevant and sentiment counts, as a single \"total\" series or split with by=\"platform\" or by=\"keyword\" (top 20, the rest as \"other\"). Same window parameters as get_analytics_summary; compare=true adds `previous`, the period right before, points aligned by index.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "bucket": {
            "description": "Point granularity: hour (windows of at most 14 days), day, week (Monday start) or month. Default: day up to 90 days, week beyond.",
            "enum": [
              "hour",
              "day",
              "week",
              "month"
            ],
            "type": "string"
          },
          "by": {
            "description": "Split into one series per platform, per keyword (the top 20 by matched, the rest folded into \"other\") or per sentiment (positive, neutral, negative, unclassified). Omit for one total series.",
            "enum": [
              "platform",
              "keyword",
              "sentiment"
            ],
            "type": "string"
          },
          "compare": {
            "description": "true adds the period of the same length right before the window as `previous`.",
            "type": "boolean"
          },
          "from": {
            "description": "First day, YYYY-MM-DD, inclusive, in `timezone`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "keywordIds": {
            "description": "Only these keyword ids. Repeatable, or comma-separated; omit for every keyword.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "platforms": {
            "description": "Only these platforms. Repeatable, or comma-separated; omit for every platform.",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "range": {
            "description": "Preset window ending today. Ignored when from or to is given. Default 30d.",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.",
            "maxLength": 64,
            "type": "string"
          },
          "to": {
            "description": "Last day, YYYY-MM-DD, inclusive, in `timezone`. Default today.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_analytics_series"
    },
    {
      "description": "Headline counts for a window: matched and relevant mentions, distinct posts and people, sentiment split, buying intent and questions, estimated reach (followers of the people whose count is known), and triage (open, ignored, done, waiting over 24h, handled rate, median time to done). Window: range 7d|30d|90d|365d ending today, or from/to as YYYY-MM-DD; keywordIds and platforms are lists; timezone (IANA) cuts the days, UTC by default; compare=true adds the same counts for the period right before as `previous`. Time axis is the publish date.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "compare": {
            "description": "true adds the period of the same length right before the window as `previous`.",
            "type": "boolean"
          },
          "from": {
            "description": "First day, YYYY-MM-DD, inclusive, in `timezone`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "keywordIds": {
            "description": "Only these keyword ids. Repeatable, or comma-separated; omit for every keyword.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "platforms": {
            "description": "Only these platforms. Repeatable, or comma-separated; omit for every platform.",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "range": {
            "description": "Preset window ending today. Ignored when from or to is given. Default 30d.",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.",
            "maxLength": 64,
            "type": "string"
          },
          "to": {
            "description": "Last day, YYYY-MM-DD, inclusive, in `timezone`. Default today.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_analytics_summary"
    },
    {
      "description": "Read what the classifier knows about the company: name, description, use cases, own accounts, and the composed context it reads to judge relevance (for keywords in a group that carries its own description, the group's text replaces it; see list_groups).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_company"
    },
    {
      "description": "The workspace filters: noise rules applied to every keyword before a mention is stored (excluded terms and authors, excluded GitHub repositories, the subreddits Reddit posts may or may not come from). A post they reject is never classified, delivered or billed. Per-keyword rules live on each keyword (`matching`).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_filters"
    },
    {
      "description": "One keyword group by id, with how many keywords it holds.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Group id (grp_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_group"
    },
    {
      "description": "One keyword by id: term, kind, platforms, matching rules, context, its monthly mention cap and whether it is at it (pausedForCap), stats (mentions, relevant, last 7 days, this month, your feedback) and poll health per platform.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Keyword id (kw_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_keyword"
    },
    {
      "description": "Is a keyword worth what it costs, and what would fix it. Over a trailing window (range 7d, 30d or 90d; default 30d): a status (healthy; noisy = 20 or more scored matches and under 30% relevant; quiet = 7 days or older with nothing relevant; capped; paused; new = under 7 days old) with reasons in plain words, matches, relevant, noise share by platform and week, what it cost, the words and authors over-represented in its noise, and suggestions. Each suggestion has a `patch`: pass it to update_keyword with the keyword id to apply it (lists hold the whole new list), and an `effect` measured by running the matcher's rules over the window's posts (noise and relevant matches it would have removed, cents saved). ai=true adds a context rewritten by a language model (cached a day; 20 model calls an hour per workspace). Read only, never billed, cached 5 minutes.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "ai": {
            "description": "true: also ask a language model for a rewritten context. Default false.",
            "type": "boolean"
          },
          "id": {
            "description": "Keyword id (kw_...)",
            "minLength": 1,
            "type": "string"
          },
          "range": {
            "description": "Trailing window ending today: 7d, 30d (default) or 90d.",
            "enum": [
              "7d",
              "30d",
              "90d"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_keyword_health"
    },
    {
      "description": "Fetch a single mention by id, including its classification (relevance, sentiment, intents, confidence, uncertain, note).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Mention id (mention match id, mm_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_mention"
    },
    {
      "description": "Mention counts for the last N days (default 7), grouped by platform and by sentiment, optionally filtered to one platform or keyword. Unclassified mentions appear under sentiment \"unclassified\".",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "keywordId": {
            "description": "Only count mentions matching this keyword id",
            "type": "string"
          },
          "platform": {
            "description": "Only count mentions from this platform",
            "enum": [
              "bluesky",
              "hackernews",
              "github",
              "stackoverflow",
              "devto",
              "reddit",
              "x",
              "youtube",
              "news",
              "linkedin",
              "tiktok",
              "instagram",
              "appstore",
              "googleplay",
              "trustpilot",
              "googlemaps",
              "rss"
            ],
            "type": "string"
          },
          "sinceDays": {
            "default": 7,
            "description": "Look-back window in days",
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "get_mention_stats"
    },
    {
      "description": "One person from the audience, with their counts, tags, notes and mute for your organization, their outreach (owner, stage, last contacted), plus their public profile (bio, company, location, website and linked accounts) where the platform lists it. GitHub authors are looked up today; profile is null until then. With groupId, the person as that keyword group sees them. Email addresses are not returned over MCP: profile.email is always null (the dashboard and the REST API show it where the person published it).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Audience author id (aut_...), from list_people or a mention's authorId",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_person"
    },
    {
      "description": "The reviews report: App Store, Google Play, Trustpilot and Google reviews the keywords collect, over a window. Totals (reviews, average stars, 1-5 distribution, replies, open 1-2 star reviews), the tags on the unhappy reviews, and one row per review page with its average stars per day or week (bucket). A review matched by two keywords counts once. Same window parameters as get_analytics_summary; compare=true adds the previous period.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "bucket": {
            "description": "Series bucket: day (default up to 90 days) or week.",
            "enum": [
              "day",
              "week"
            ],
            "type": "string"
          },
          "compare": {
            "description": "true adds the period of the same length right before the window as `previous`.",
            "type": "boolean"
          },
          "from": {
            "description": "First day, YYYY-MM-DD, inclusive, in `timezone`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "keywordIds": {
            "description": "Only these keyword ids. Repeatable, or comma-separated; omit for every keyword.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "platforms": {
            "description": "Only these platforms. Repeatable, or comma-separated; omit for every platform.",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "range": {
            "description": "Preset window ending today. Ignored when from or to is given. Default 30d.",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.",
            "maxLength": 64,
            "type": "string"
          },
          "to": {
            "description": "Last day, YYYY-MM-DD, inclusive, in `timezone`. Default today.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_reviews_report"
    },
    {
      "description": "Brand against competitors: every keyword matched in the window with matched, relevant, negative and buy-intent counts and its share of brand plus competitor matches in percent (topics are counted but stay out of the split). Same window parameters as get_analytics_summary; compare=true adds the previous period's matched per keyword.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "compare": {
            "description": "true adds the period of the same length right before the window as `previous`.",
            "type": "boolean"
          },
          "from": {
            "description": "First day, YYYY-MM-DD, inclusive, in `timezone`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "keywordIds": {
            "description": "Only these keyword ids. Repeatable, or comma-separated; omit for every keyword.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "platforms": {
            "description": "Only these platforms. Repeatable, or comma-separated; omit for every platform.",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "range": {
            "description": "Preset window ending today. Ignored when from or to is given. Default 30d.",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the days are cut in (Europe/Madrid). Default UTC. One offset, the zone's at the end of the window, applies to the whole window.",
            "maxLength": 64,
            "type": "string"
          },
          "to": {
            "description": "Last day, YYYY-MM-DD, inclusive, in `timezone`. Default today.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_share_of_voice"
    },
    {
      "description": "The prepaid balance (ledger, pending mention charges, effective), the daily burn and the days it buys, how many keywords run and how many the wallet paused, the matches recorded today and over 30 days, and whether tracking is stopped or the balance is low. Every matched mention bills $0.008 and every active keyword $5 a month, charged daily.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_usage"
    },
    {
      "description": "What the workspace consumed and was charged over a window, in USD cents at list price, grouped by ONE dimension per call: `by` = keyword (the default: days charged, mentions billed, totalCents per keyword, a deleted keyword kept with keyword.removed=true), platform, or day. `range` (7d, 30d, 90d; default 30d) reads a trailing window ending today; `month` (YYYY-MM) reads one calendar month, the shape a bill or a per-customer margin is reconciled against; `from`/`to` (YYYY-MM-DD) any window up to 366 days. `keywordIds`, `groupIds` and `platforms` narrow every number (a keyword-day has no platform, so a platform filter counts mentions and comments only). Every call also returns the window's totals (keyword-days, matched and billed mentions, list-price total, what the ledger actually debited). Rows are paged (limit, offset, total). Answer \"what did keyword X cost\" and \"where does the money go\" from it; get_usage answers \"how much is left\". Each keyword's running-month cost is also on get_keyword as stats.cost.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "by": {
            "default": "keyword",
            "description": "The dimension to group by: day (one row per UTC day of the window), platform, keyword (default: the row a margin is computed from), or group (what a customer or a campaign cost).",
            "enum": [
              "day",
              "platform",
              "keyword",
              "group"
            ],
            "type": "string"
          },
          "from": {
            "description": "First UTC day of a custom window, YYYY-MM-DD, inclusive; with `to` (default today). At most 366 days. Wins over `range` and `month`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "groupIds": {
            "description": "Only these groups (grp_...): a keyword-day by the group it was metered under, a mention or a comment by its keyword's group as it is now. Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "type": "array"
          },
          "keywordIds": {
            "description": "Only these keywords (kw_...), deleted ones included. Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 30,
            "type": "array"
          },
          "limit": {
            "default": 100,
            "description": "Rows per page, 1 to 500 (default 100). Only by=keyword can outgrow a page; a window has at most 90 days and a dozen platforms.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "month": {
            "description": "A calendar month (YYYY-MM, UTC) instead of a trailing window: from its first day to its last, or to today for the running month. A future month is a 400.",
            "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
            "type": "string"
          },
          "offset": {
            "default": 0,
            "description": "Skip this many rows.",
            "minimum": 0,
            "type": "integer"
          },
          "platforms": {
            "description": "Only these platforms. A keyword-day belongs to no platform, so with this filter the keyword line reads 0 and only mentions and comments count. Repeatable, or comma-separated.",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "range": {
            "description": "Trailing window of UTC days ending today: 7d, 30d, 90d (default 30d). Ignored when `month` is given.",
            "enum": [
              "7d",
              "30d",
              "90d"
            ],
            "type": "string"
          },
          "to": {
            "description": "Last UTC day of a custom window, YYYY-MM-DD, inclusive; never after today. Needs `from`.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_usage_breakdown"
    },
    {
      "description": "The outreach log on one person, newest first: every logged contact with who reached out, the channel (email, x, linkedin, bluesky, reddit, github, call, meeting, other), when, and a short note. Check it, and the person's outreach owner, before reaching out so two teammates never contact the same person without knowing. With groupId, the log that keyword group keeps on them.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Audience author id (aut_...), from list_people or a mention's authorId",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "list_activities"
    },
    {
      "description": "List alert rules: what each watches (filter), whether it fires instantly or as an hourly, daily or weekly digest (mode, schedule), and which channels it sends to.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_alerts"
    },
    {
      "description": "What needs a person right now, newest first: a keyword whose mentions spiked in the last hour (mention.spike), whose negative share of the last 24 hours jumped (sentiment.negative_spike), that turned noisy (keyword.noisy), or a channel whose last sends all failed (channel.failing). Detected once an hour; items resolve on their own when the condition is gone. Open items by default; status \"all\" reads the history. Each item has a one-line title, the facts in data, and data.url pointing at the dashboard.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "nextCursor from the previous call.",
            "type": "string"
          },
          "kinds": {
            "description": "Only these kinds.",
            "items": {
              "description": "mention.spike: far more mentions in the last hour than the keyword usually gets. sentiment.negative_spike: the negative share of the last 24 hours jumped. keyword.noisy: most scored matches are noise. channel.failing: the channel's last sends all failed. feed.failing: a workspace feed failed its last 3 hourly reads. feed.recovered: it read again after failing.",
              "enum": [
                "mention.spike",
                "sentiment.negative_spike",
                "keyword.noisy",
                "channel.failing",
                "feed.failing",
                "feed.recovered"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "type": "array"
          },
          "limit": {
            "description": "Items to return, 50 by default.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "status": {
            "description": "open (default), resolved, dismissed, or all.",
            "enum": [
              "open",
              "resolved",
              "dismissed",
              "all"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_attention"
    },
    {
      "description": "List the channels alerts can be sent to: Slack channels, Telegram chats, email address lists, webhooks. Telegram chats connect from the dashboard (Settings, Integrations), not through the API.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_channels"
    },
    {
      "description": "The RSS and Atom feeds the WORKSPACE reads (forums, communities, blogs): every keyword with readsWorkspaceFeeds (the default) gets an item of one of these feeds as a mention when the item holds its term, with its matching rules, billed like any mention. Each feed with when it was connected and how its hourly poll goes. q filters on address or title; limit and offset page, total counts.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 100,
            "description": "Feeds per page, at most 500; default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Feeds to skip, for the next page.",
            "minimum": 0,
            "type": "integer"
          },
          "q": {
            "description": "Only feeds whose address or title contains this text, case-insensitive.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_feeds"
    },
    {
      "description": "The keyword groups of the workspace, the default first: how keywords are grouped (a customer, a campaign, a product). A term may be tracked once per group; every keyword belongs to one; get_usage_breakdown by=group says what each cost. externalId finds the group carrying your own id.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "externalId": {
            "description": "Only the group carrying exactly this externalId.",
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_groups"
    },
    {
      "description": "The tracked keywords of your organization with their stats, poll health, matching rules and context, plus `total`. Without arguments: every keyword, newest first. Search the term and context (q), narrow by kind, status (active, muted by a person, paused by the wallet, noisy: paused by the noise brake, capped at its monthly mention cap), platform or group (groupId), order (sort) and page (limit, offset).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Only keywords in any of these groups (grp_...). Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "kind": {
            "description": "Only these kinds: brand, competitor, topic. Repeatable, or comma-separated.",
            "items": {
              "enum": [
                "brand",
                "competitor",
                "topic"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "limit": {
            "description": "Page size, 1 to 500. Omit for every keyword after `offset`.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Skip this many keywords.",
            "minimum": 0,
            "type": "integer"
          },
          "platform": {
            "description": "Only keywords tracked on any of these platforms: its term searched there (every platform when its platforms are null), or for appstore and googleplay, an app of that store among its reviewSources. Repeatable, or comma-separated.",
            "items": {
              "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "q": {
            "description": "Text to find in the term or in the keyword's context, case-insensitive.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "sort": {
            "default": "newest",
            "description": "newest: created most recently first. oldest: the reverse. term: A to Z. mentions: most matches first. relevant: most relevant matches first. recent: most matches in the last 7 days first. lastMention: newest matched post first, keywords with none last.",
            "enum": [
              "newest",
              "oldest",
              "term",
              "mentions",
              "relevant",
              "recent",
              "lastMention"
            ],
            "type": "string"
          },
          "status": {
            "description": "Only keywords in these states: active, muted, paused, capped. Repeatable, or comma-separated.",
            "items": {
              "description": "active: tracking. muted: switched off by a person. paused: switched off by the wallet for lack of balance. noisy: switched off by the noise brake, mostly irrelevant matches on a workspace running on its welcome credit. capped: at its monthly mention cap until the month turns.",
              "enum": [
                "active",
                "muted",
                "paused",
                "noisy",
                "capped"
              ],
              "type": "string"
            },
            "maxItems": 4,
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "list_keywords"
    },
    {
      "description": "Every movement of the prepaid balance, newest first: the welcome credit, top-ups, refunds, the daily keyword-day and mention debits, adjustments. A debit row carries the UTC day it settled and the cumulative units behind it. Cursor paged (limit up to 100). Adding funds is a checkout on the dashboard's billing page or POST /v1/billing/top-ups on the REST API.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "Opaque cursor from a previous page.",
            "type": "string"
          },
          "limit": {
            "description": "Page size (default 25).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "list_ledger"
    },
    {
      "description": "The people in the workspace with their role (owner, admin, member), email and user id. The user id is the value update_mention assigneeId and update_person ownerId take.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_members"
    },
    {
      "description": "The comments under a mention's post, newest first: the whole thread, whether or not each comment names the keyword, each with its author, text, time, engagement, a light sentiment and intent read, and mentionId when the comment is itself one of your mentions. Filled from 30 minutes after the post and read again while its platform's conversations last (a day on Reddit, Hacker News and Bluesky, a week on GitHub, Stack Overflow and DEV, a month on YouTube) for relevant mentions whose keyword has comments enabled (add_keyword / update_keyword `comments`); empty otherwise. Page with cursor.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "nextCursor from the previous page.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Mention id (mm_...)",
            "minLength": 1,
            "type": "string"
          },
          "limit": {
            "default": 50,
            "description": "Page size, 1 to 100.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "list_mention_comments"
    },
    {
      "description": "The people who wrote mentions matching your keywords: name, profile, platform, how many of their posts matched (and how many scored relevant), their sentiment split, when they were first and last seen, and where your outreach stands (owner, stage, last contacted). Filter by platform or name, find one person by handle or profile link (handle), outreach stage (stages), owner (ownerIds, \"none\" for unowned) or automated (bot accounts, whose posts mostly read machine-made); sort by mentions or recency. With groupId, only the people who mentioned that keyword group's keywords, with that group's own counts, tags, notes, merges and outreach. Use search_mentions with authorId to read what one person said. Email addresses are not returned over MCP: profile.email is always null (the dashboard and the REST API show it where the person published it).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "automated": {
            "description": "true: only people whose matched posts are mostly machine-made (bot accounts); false: only the rest",
            "type": "boolean"
          },
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "handle": {
            "description": "Find one person by an account: a handle (@jane, u/jane) or a profile or post link (https://x.com/jane). Exact, case-insensitive; add platform to pick one platform",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          },
          "intents": {
            "description": "At least one mention carrying any of these intents",
            "items": {
              "maxLength": 40,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array"
          },
          "keywordKinds": {
            "description": "Mentioned a keyword of any of these kinds (brand, competitor, topic)",
            "items": {
              "enum": [
                "brand",
                "competitor",
                "topic"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "limit": {
            "default": 50,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "linkHosts": {
            "description": "At least one mention linking to any of these hosts, the host itself or a subdomain of it (octolens.com also matches blog.octolens.com)",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "maxFollowers": {
            "minimum": 0,
            "type": "integer"
          },
          "minFollowers": {
            "description": "At least this many followers (unknown reach never matches)",
            "minimum": 0,
            "type": "integer"
          },
          "minMentions": {
            "description": "At least this many matched mentions",
            "minimum": 1,
            "type": "integer"
          },
          "minNegative": {
            "description": "At least this many negative mentions",
            "minimum": 1,
            "type": "integer"
          },
          "muted": {
            "description": "true: only muted people; false: only unmuted; omit: everyone",
            "type": "boolean"
          },
          "neverKeywordKinds": {
            "description": "Never mentioned a keyword of these kinds",
            "items": {
              "enum": [
                "brand",
                "competitor",
                "topic"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "newSinceDays": {
            "description": "First seen within this many days",
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "description": "Skip this many people (paging)",
            "minimum": 0,
            "type": "integer"
          },
          "ownerIds": {
            "description": "People owned by any of these members (user ids); \"none\" for people nobody owns",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "platform": {
            "description": "Only people with an account on this platform",
            "enum": [
              "bluesky",
              "hackernews",
              "github",
              "stackoverflow",
              "devto",
              "reddit",
              "x",
              "youtube",
              "news",
              "linkedin",
              "tiktok",
              "instagram",
              "appstore",
              "googleplay",
              "trustpilot",
              "googlemaps",
              "rss"
            ],
            "type": "string"
          },
          "platforms": {
            "description": "People with an account on any of these platforms",
            "items": {
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "q": {
            "description": "Match the display name or the profile handle/url",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "segmentId": {
            "description": "A saved segment (from list_segments) applied on top of the other filters",
            "minLength": 1,
            "type": "string"
          },
          "since": {
            "description": "Only people whose first matched mention is at or after this instant (ISO 8601, or epoch ms): new voices",
            "type": "integer"
          },
          "sort": {
            "default": "mentions",
            "description": "\"mentions\": most matches first; \"recent\": last seen first; \"reach\": most followers first; \"new\": first seen most recently first",
            "enum": [
              "mentions",
              "recent",
              "reach",
              "new"
            ],
            "type": "string"
          },
          "stages": {
            "description": "People at any of these outreach stages (not_contacted, contacted, replied, in_talks, customer, not_a_fit)",
            "items": {
              "description": "Where your workspace stands with the person: not_contacted, contacted, replied, in_talks, customer or not_a_fit.",
              "enum": [
                "not_contacted",
                "contacted",
                "replied",
                "in_talks",
                "customer",
                "not_a_fit"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "type": "array"
          },
          "tag": {
            "description": "Only people carrying this tag",
            "maxLength": 40,
            "minLength": 1,
            "type": "string"
          },
          "tags": {
            "description": "People carrying any of these tags",
            "items": {
              "maxLength": 40,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "list_people"
    },
    {
      "description": "Your saved audience segments (named filters such as \"Influencers\" or \"Switch prospects\"), each with the number of people in it right now, plus presets you can save with create_segment. Pass a segment id to list_people to see its members. With groupId, the segments saved in that keyword group, counted over its own people.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_segments"
    },
    {
      "description": "Your saved views (named filters over mentions such as \"Negative about us\" or \"Needs a reply\"). Pass a view id as viewId to search_mentions to read exactly what it selects.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_views"
    },
    {
      "description": "Record that someone reached out to a person: an email, a DM, a call. The first contact claims an unowned person for whoever reached out and moves not_contacted to contacted; an existing owner and a later stage are kept (set them with update_person). memberId defaults to the signed-in user; with an API key and no memberId the activity is unattributed and claims nobody. Returns the activity and the person as they now read. With groupId the activity, and the owner and stage it moves, are that keyword group's own.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "description": "How they were reached: email, x, linkedin, bluesky, reddit, github, call, meeting or other.",
            "enum": [
              "email",
              "x",
              "linkedin",
              "bluesky",
              "reddit",
              "github",
              "call",
              "meeting",
              "other"
            ],
            "type": "string"
          },
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Person id (aut_...), from list_people or a mention's authorId",
            "minLength": 1,
            "type": "string"
          },
          "memberId": {
            "description": "The member who reached out (user id). Defaults to the signed-in member; an API key that omits it logs an unattributed activity.",
            "minLength": 1,
            "type": "string"
          },
          "note": {
            "default": "",
            "description": "What was sent or said, briefly.",
            "maxLength": 2000,
            "type": "string"
          },
          "occurredAt": {
            "description": "When the contact happened (ISO 8601, or epoch ms). Defaults to now.",
            "type": "integer"
          }
        },
        "required": [
          "channel",
          "id"
        ],
        "type": "object"
      },
      "name": "log_activity"
    },
    {
      "description": "Declare that two accounts are the same person, for your organization only: fold account `id` into person `into`. Their mentions, tags and notes combine; the folded account shows under the person's platforms. With groupId the merge holds in that keyword group only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "The account to fold in (aut_...)",
            "minLength": 1,
            "type": "string"
          },
          "into": {
            "description": "The person to fold it into (aut_...)",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id",
          "into"
        ],
        "type": "object"
      },
      "name": "merge_people"
    },
    {
      "description": "Mute authors on an alert without touching the rest of its filter. Accepts profile or post links, @handles, u/names, Bluesky DIDs or display names; a link is stored as the author's profile. Already muted authors are skipped; an entry that names no person is rejected.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Authors to add to or remove from the alert's muted list.",
        "properties": {
          "authors": {
            "description": "Profile or post links (x.com/name, linkedin.com/in/name, reddit.com/user/name, a post URL), handles (@name, u/name), Bluesky DIDs or display names. A link is stored as the author's profile; a plain name or handle matches that name on every platform.",
            "items": {
              "maxLength": 500,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          },
          "id": {
            "description": "Rule id",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "authors",
          "id"
        ],
        "type": "object"
      },
      "name": "mute_authors"
    },
    {
      "description": "Search tracked mentions for your organization. Filter by keyword, platform, status (open, ignored, done), relevant, minimum relevance, minimum confidence (0 to 1), sentiment, intent, free text (q, the post text or the author name), time range (ISO 8601), one person (personId from list_people), assignee (assigneeId), author reach (minFollowers, maxFollowers), engagement the platform reported (minLikes, minReposts, minReplies, minQuotes, minViews, minBookmarks; a post without the count never passes), review stars (ratings, or notRatings to leave some out), author tags (tags, any-of), the hosts a post links to (linkHosts, any-of, a host or any subdomain of it), Reddit subreddits (subreddits or notSubreddits, names without the r/), replies against top-level posts (isReply), posts against comments (kind: post or comment), whether the post reads as machine-made (automated=true for the bots, false for the rest), where the author is (countries, or notCountries to leave some out, lowercase ISO 3166-1 alpha-2 codes like in, us, de, as the classifier read the profile and the post; an unknown country passes notCountries), whether the author is a company or organization (organization=true for companies, brands and organizations, false for people), the language of the post (languages or notLanguages, ISO 639-1), an alert rule's whole filter (alertId, the same mentions the rule would send), a saved view's filter (viewId, from list_views, ANDed with the rest), the kind of keyword that matched (keywordKinds: brand, competitor, topic), or the keyword's group (groupIds, or notGroupIds to leave groups out; ids from list_groups). Every filter is ANDed; for OR, anyOf takes up to 10 groups of the same conditions (an object each, all its conditions ANDed) and keeps a mention when at least one group holds, on top of the rest: anyOf=[{platforms:[\"reddit\"],sentiments:[\"negative\"]},{intents:[\"buy_intent\"]}]. Snoozed mentions are hidden unless snoozed=true. sort=\"newest\" (default) or \"priority\" (attention score from relevance, author reach, intent and age, over the last 30 days of matches only; each mention carries it as `priority`). Returns 10 mentions by default (limit, up to 100). Each mention nests post, author, classification and triage. A cross-post (the same author posting the same text again for the same keyword within three days, like one announcement in five subreddits) is listed once: the original carries the others in duplicates; includeDuplicates=true lists them separately, each with duplicateOf. A GitHub repository event (a new repository, a star milestone, fast growth) is a mention whose post.kind is repository, with the facts in post.repository (name, event, stars, weeklyStars); kind=repository lists them alone.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "alertId": {
            "description": "Apply an alert rule's filter (an id from GET /v1/alerts) on top of the other filters: the same mentions the rule would send, for a feed-shaped export or a preview. Unknown ids are a 404.",
            "minLength": 1,
            "type": "string"
          },
          "anyOf": {
            "description": "OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own.",
            "items": {
              "additionalProperties": false,
              "description": "A group of conditions, all of which must hold: the vocabulary of a view filter, without anyOf.",
              "properties": {
                "automated": {
                  "description": "true: only posts that read as machine-made; false: only the rest.",
                  "type": "boolean"
                },
                "countries": {
                  "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                  "items": {
                    "enum": [
                      "us",
                      "ca",
                      "mx",
                      "br",
                      "ar",
                      "co",
                      "cl",
                      "pe",
                      "gb",
                      "ie",
                      "fr",
                      "de",
                      "es",
                      "pt",
                      "it",
                      "nl",
                      "be",
                      "ch",
                      "at",
                      "se",
                      "no",
                      "dk",
                      "fi",
                      "pl",
                      "cz",
                      "ro",
                      "gr",
                      "hu",
                      "ua",
                      "ru",
                      "lt",
                      "lv",
                      "ee",
                      "tr",
                      "il",
                      "ae",
                      "sa",
                      "eg",
                      "ng",
                      "ke",
                      "za",
                      "ma",
                      "in",
                      "pk",
                      "bd",
                      "lk",
                      "np",
                      "cn",
                      "hk",
                      "tw",
                      "jp",
                      "kr",
                      "sg",
                      "my",
                      "id",
                      "ph",
                      "vn",
                      "th",
                      "au",
                      "nz"
                    ],
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                },
                "excludeAuthors": {
                  "description": "Never these authors: display names, handles or profile URLs.",
                  "items": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 200,
                  "type": "array"
                },
                "groupIds": {
                  "description": "Only matches of keywords in any of these groups (grp_...).",
                  "items": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "intents": {
                  "description": "Only mentions carrying any of these intent or topic tags.",
                  "items": {
                    "maxLength": 40,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "isReply": {
                  "description": "true: only replies and comments; false: only top-level posts.",
                  "type": "boolean"
                },
                "keywordIds": {
                  "description": "Only matches of any of these keywords.",
                  "items": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "keywordKinds": {
                  "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                  "items": {
                    "enum": [
                      "brand",
                      "competitor",
                      "topic"
                    ],
                    "type": "string"
                  },
                  "maxItems": 3,
                  "type": "array"
                },
                "kind": {
                  "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                  "enum": [
                    "post",
                    "comment",
                    "repository"
                  ],
                  "type": "string"
                },
                "languages": {
                  "description": "Only posts in any of these languages (ISO 639-1).",
                  "items": {
                    "pattern": "^[a-z]{2}$",
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "linkHosts": {
                  "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                  "items": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "maxFollowers": {
                  "description": "Only authors with at most this many followers; unknown reach never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minBookmarks": {
                  "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minConfidence": {
                  "description": "Only mentions whose classifier confidence is at least this.",
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "minFollowers": {
                  "description": "Only authors with at least this many followers; unknown reach never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minLikes": {
                  "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minQuotes": {
                  "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minRelevance": {
                  "description": "Only mentions scored at least this.",
                  "maximum": 100,
                  "minimum": 0,
                  "type": "integer"
                },
                "minReplies": {
                  "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minReposts": {
                  "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "minViews": {
                  "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                  "minimum": 0,
                  "type": "integer"
                },
                "notCountries": {
                  "description": "Never posts whose author is in these countries; an unknown country still passes.",
                  "items": {
                    "enum": [
                      "us",
                      "ca",
                      "mx",
                      "br",
                      "ar",
                      "co",
                      "cl",
                      "pe",
                      "gb",
                      "ie",
                      "fr",
                      "de",
                      "es",
                      "pt",
                      "it",
                      "nl",
                      "be",
                      "ch",
                      "at",
                      "se",
                      "no",
                      "dk",
                      "fi",
                      "pl",
                      "cz",
                      "ro",
                      "gr",
                      "hu",
                      "ua",
                      "ru",
                      "lt",
                      "lv",
                      "ee",
                      "tr",
                      "il",
                      "ae",
                      "sa",
                      "eg",
                      "ng",
                      "ke",
                      "za",
                      "ma",
                      "in",
                      "pk",
                      "bd",
                      "lk",
                      "np",
                      "cn",
                      "hk",
                      "tw",
                      "jp",
                      "kr",
                      "sg",
                      "my",
                      "id",
                      "ph",
                      "vn",
                      "th",
                      "au",
                      "nz"
                    ],
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                },
                "notGroupIds": {
                  "description": "Never matches of keywords in these groups.",
                  "items": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "notIntents": {
                  "description": "Never mentions carrying these tags.",
                  "items": {
                    "maxLength": 40,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "notKeywordIds": {
                  "description": "Never matches of these keywords.",
                  "items": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "notLanguages": {
                  "description": "Never posts in these languages; an unknown language still passes.",
                  "items": {
                    "pattern": "^[a-z]{2}$",
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "notLinkHosts": {
                  "description": "Never posts linking to these hosts.",
                  "items": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "notPlatforms": {
                  "description": "Never posts from these platforms.",
                  "items": {
                    "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                    "enum": [
                      "bluesky",
                      "hackernews",
                      "github",
                      "stackoverflow",
                      "devto",
                      "reddit",
                      "x",
                      "youtube",
                      "news",
                      "linkedin",
                      "tiktok",
                      "instagram",
                      "appstore",
                      "googleplay",
                      "trustpilot",
                      "googlemaps",
                      "rss"
                    ],
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "notRatings": {
                  "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                  "items": {
                    "maximum": 5,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "maxItems": 5,
                  "type": "array"
                },
                "notSentiments": {
                  "description": "Never these sentiments; an unscored mention still passes.",
                  "items": {
                    "description": "Classifier sentiment.",
                    "enum": [
                      "positive",
                      "neutral",
                      "negative"
                    ],
                    "type": "string"
                  },
                  "maxItems": 3,
                  "type": "array"
                },
                "notSubreddits": {
                  "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                  "items": {
                    "maxLength": 60,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "notTags": {
                  "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                  "items": {
                    "maxLength": 40,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "organization": {
                  "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                  "type": "boolean"
                },
                "platforms": {
                  "description": "Only posts from any of these platforms.",
                  "items": {
                    "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                    "enum": [
                      "bluesky",
                      "hackernews",
                      "github",
                      "stackoverflow",
                      "devto",
                      "reddit",
                      "x",
                      "youtube",
                      "news",
                      "linkedin",
                      "tiktok",
                      "instagram",
                      "appstore",
                      "googleplay",
                      "trustpilot",
                      "googlemaps",
                      "rss"
                    ],
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                },
                "q": {
                  "description": "Substring in the post text or the author's name.",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "ratings": {
                  "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                  "items": {
                    "maximum": 5,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "maxItems": 5,
                  "type": "array"
                },
                "relevant": {
                  "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                  "type": "boolean"
                },
                "sentiments": {
                  "description": "Only these sentiments.",
                  "items": {
                    "description": "Classifier sentiment.",
                    "enum": [
                      "positive",
                      "neutral",
                      "negative"
                    ],
                    "type": "string"
                  },
                  "maxItems": 3,
                  "type": "array"
                },
                "status": {
                  "description": "Only mentions in this status: open, ignored, done.",
                  "enum": [
                    "open",
                    "ignored",
                    "done"
                  ],
                  "type": "string"
                },
                "subreddits": {
                  "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                  "items": {
                    "maxLength": 60,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "tags": {
                  "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                  "items": {
                    "maxLength": 40,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                }
              },
              "type": "object"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
          },
          "assigneeId": {
            "description": "Only mentions assigned to this workspace member (user id).",
            "minLength": 1,
            "type": "string"
          },
          "automated": {
            "description": "true: only mentions that read as machine-made (a bot account, a scheduled or templated post, AI-written text); false: only the rest, mentions judged before this existed included. Omitted: everything.",
            "type": "boolean"
          },
          "countries": {
            "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de), as the classifier read the author's profile and the post. A post whose country is unknown never passes.",
            "items": {
              "enum": [
                "us",
                "ca",
                "mx",
                "br",
                "ar",
                "co",
                "cl",
                "pe",
                "gb",
                "ie",
                "fr",
                "de",
                "es",
                "pt",
                "it",
                "nl",
                "be",
                "ch",
                "at",
                "se",
                "no",
                "dk",
                "fi",
                "pl",
                "cz",
                "ro",
                "gr",
                "hu",
                "ua",
                "ru",
                "lt",
                "lv",
                "ee",
                "tr",
                "il",
                "ae",
                "sa",
                "eg",
                "ng",
                "ke",
                "za",
                "ma",
                "in",
                "pk",
                "bd",
                "lk",
                "np",
                "cn",
                "hk",
                "tw",
                "jp",
                "kr",
                "sg",
                "my",
                "id",
                "ph",
                "vn",
                "th",
                "au",
                "nz"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "excludeAuthors": {
            "description": "Hide these authors: display names, handles or profile URLs. Repeatable, or one comma-separated value.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "groupIds": {
            "description": "Only matches of keywords in any of these groups (grp_...). Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "includeDuplicates": {
            "description": "true: list cross-posts (a mention whose duplicateOf is set) as mentions of their own. By default each is listed only in its original's duplicates.",
            "type": "boolean"
          },
          "includeHidden": {
            "description": "true: include mentions their keyword's display lists hide (a language or country it does not show), hidden by default.",
            "type": "boolean"
          },
          "includeMuted": {
            "description": "true: include mentions by people you muted, hidden by default: muted for the workspace, or for the mention's own keyword group.",
            "type": "boolean"
          },
          "intent": {
            "description": "Only mentions carrying this intent or topic tag (buy_intent, question, complaint, praise, comparison, churn_intent, bug_report, pricing, hiring, event, promotional, testimonial, industry_insight, launch, feedback).",
            "type": "string"
          },
          "intents": {
            "description": "Only mentions carrying any of these intent or topic tags.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "isReply": {
            "description": "true: only replies and comments (posts answering another post); false: only top-level posts. Omitted: both.",
            "type": "boolean"
          },
          "keywordId": {
            "description": "Only matches of this keyword.",
            "type": "string"
          },
          "keywordIds": {
            "description": "Only matches of any of these keywords.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "keywordKinds": {
            "description": "Only matches of keywords of any of these kinds: brand, competitor, topic. Repeatable, or comma-separated.",
            "items": {
              "enum": [
                "brand",
                "competitor",
                "topic"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "kind": {
            "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository). Omitted: all.",
            "enum": [
              "post",
              "comment",
              "repository"
            ],
            "type": "string"
          },
          "languages": {
            "description": "Only posts in any of these languages (ISO 639-1: en, es, de). A post whose language is unknown never passes.",
            "items": {
              "pattern": "^[a-z]{2}$",
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "limit": {
            "default": 10,
            "description": "How many mentions to return, 1 to 100. Default 10: narrow the filters before asking for more.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "linkHosts": {
            "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it (octolens.com also matches blog.octolens.com). Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "maxFollowers": {
            "description": "Only authors with at most this many followers. Unknown reach never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minBookmarks": {
            "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minConfidence": {
            "description": "Only mentions whose classifier confidence is at least this, 0 to 1. Mentions without a confidence are excluded.",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "minFollowers": {
            "description": "Only authors with at least this many followers. Unknown reach never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minLikes": {
            "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minQuotes": {
            "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minRelevance": {
            "description": "Only mentions scored at least this; unclassified ones are excluded.",
            "maximum": 100,
            "minimum": 0,
            "type": "integer"
          },
          "minReplies": {
            "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minReposts": {
            "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "minViews": {
            "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
            "minimum": 0,
            "type": "integer"
          },
          "notCountries": {
            "description": "Never posts whose author is in these countries: notCountries=in. A post whose country is unknown still passes.",
            "items": {
              "enum": [
                "us",
                "ca",
                "mx",
                "br",
                "ar",
                "co",
                "cl",
                "pe",
                "gb",
                "ie",
                "fr",
                "de",
                "es",
                "pt",
                "it",
                "nl",
                "be",
                "ch",
                "at",
                "se",
                "no",
                "dk",
                "fi",
                "pl",
                "cz",
                "ro",
                "gr",
                "hu",
                "ua",
                "ru",
                "lt",
                "lv",
                "ee",
                "tr",
                "il",
                "ae",
                "sa",
                "eg",
                "ng",
                "ke",
                "za",
                "ma",
                "in",
                "pk",
                "bd",
                "lk",
                "np",
                "cn",
                "hk",
                "tw",
                "jp",
                "kr",
                "sg",
                "my",
                "id",
                "ph",
                "vn",
                "th",
                "au",
                "nz"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "notGroupIds": {
            "description": "Never matches of keywords in these groups.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "notIntents": {
            "description": "Never mentions carrying these intent or topic tags.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "notKeywordIds": {
            "description": "Never matches of these keywords.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "notLanguages": {
            "description": "Never posts in these languages. A post whose language is unknown still passes.",
            "items": {
              "pattern": "^[a-z]{2}$",
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "notLinkHosts": {
            "description": "Never posts linking to these hosts, the host itself or a subdomain of it.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "notPlatforms": {
            "description": "Never posts from these platforms.",
            "items": {
              "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "notRatings": {
            "description": "Never reviews with these star ratings (1 to 5): notRatings=5 hides the five star reviews. Posts that are not reviews still pass.",
            "items": {
              "maximum": 5,
              "minimum": 1,
              "type": "integer"
            },
            "maxItems": 5,
            "type": "array"
          },
          "notSentiments": {
            "description": "Never these sentiments. A mention the classifier has not scored yet still passes.",
            "items": {
              "description": "Classifier sentiment.",
              "enum": [
                "positive",
                "neutral",
                "negative"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "notSubreddits": {
            "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "notTags": {
            "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "organization": {
            "description": "true: only posts by companies, brands and organizations (a LinkedIn company page, a GitHub organization, a business account); false: only posts by people, mentions judged before this existed included. Omitted: everything.",
            "type": "boolean"
          },
          "personId": {
            "description": "Only this person (an id from /v1/people), merged accounts included. Implies includeMuted.",
            "minLength": 1,
            "type": "string"
          },
          "platform": {
            "description": "Only posts from this platform.",
            "enum": [
              "bluesky",
              "hackernews",
              "github",
              "stackoverflow",
              "devto",
              "reddit",
              "x",
              "youtube",
              "news",
              "linkedin",
              "tiktok",
              "instagram",
              "appstore",
              "googleplay",
              "trustpilot",
              "googlemaps",
              "rss"
            ],
            "type": "string"
          },
          "platforms": {
            "description": "Only posts from any of these platforms.",
            "items": {
              "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
              "enum": [
                "bluesky",
                "hackernews",
                "github",
                "stackoverflow",
                "devto",
                "reddit",
                "x",
                "youtube",
                "news",
                "linkedin",
                "tiktok",
                "instagram",
                "appstore",
                "googleplay",
                "trustpilot",
                "googlemaps",
                "rss"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "q": {
            "description": "Substring search in the post text or the author's name.",
            "type": "string"
          },
          "ratings": {
            "description": "Only app store reviews with any of these star ratings (1 to 5): ratings=1,2 is the unhappy ones. Every other post fails it.",
            "items": {
              "maximum": 5,
              "minimum": 1,
              "type": "integer"
            },
            "maxItems": 5,
            "type": "array"
          },
          "relevant": {
            "description": "true: only mentions the classifier scored relevant; false: only the rest (unclassified included).",
            "type": "boolean"
          },
          "sentiment": {
            "description": "Only this sentiment.",
            "enum": [
              "positive",
              "neutral",
              "negative"
            ],
            "type": "string"
          },
          "sentiments": {
            "description": "Only these sentiments.",
            "items": {
              "description": "Classifier sentiment.",
              "enum": [
                "positive",
                "neutral",
                "negative"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "since": {
            "description": "Only posts published at or after this instant (ISO 8601, or epoch ms).",
            "type": "integer"
          },
          "snoozed": {
            "description": "true: only mentions currently snoozed. Otherwise snoozed mentions stay out until they wake.",
            "type": "boolean"
          },
          "sort": {
            "default": "newest",
            "description": "newest: by match time, newest first. priority: by attention score, highest first; priority ranks the last 30 days of matches only, older ones stay reachable under newest. Cursors are specific to a sort.",
            "enum": [
              "newest",
              "priority"
            ],
            "type": "string"
          },
          "status": {
            "description": "Only mentions in this status. Omit for every status.",
            "enum": [
              "open",
              "ignored",
              "done"
            ],
            "type": "string"
          },
          "subreddits": {
            "description": "Only Reddit posts from any of these subreddits: subreddits=SaaS,startups (names without the r/, any case). Every other post fails it. Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "tags": {
            "description": "Only authors tagged with any of these (exact, case-sensitive), in the workspace's tags or those of the mention's own keyword group. Repeatable, or comma-separated.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "until": {
            "description": "Only posts published at or before this instant (ISO 8601, or epoch ms).",
            "type": "integer"
          },
          "viewId": {
            "description": "Apply a saved view's filter (an id from GET /v1/views) on top of the other filters, every condition ANDed: exactly what the view selects. Unknown ids are a 404.",
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_mentions"
    },
    {
      "description": "Undo a merge: the account becomes its own person again for your organization. A merge made in a keyword group is undone with that groupId.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Audience author id (aut_...), from list_people or a mention's authorId",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "split_person"
    },
    {
      "description": "Unmute authors on an alert without touching the rest of its filter. Name each by the stored entry or any link to that profile or its posts; authors that are not muted are ignored.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Authors to add to or remove from the alert's muted list.",
        "properties": {
          "authors": {
            "description": "Profile or post links (x.com/name, linkedin.com/in/name, reddit.com/user/name, a post URL), handles (@name, u/name), Bluesky DIDs or display names. A link is stored as the author's profile; a plain name or handle matches that name on every platform.",
            "items": {
              "maxLength": 500,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          },
          "id": {
            "description": "Rule id",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "authors",
          "id"
        ],
        "type": "object"
      },
      "name": "unmute_authors"
    },
    {
      "description": "Change an alert: name, enabled, mode, schedule, filter (replaces the whole filter) or channelIds (replaces the whole list).",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "channelIds": {
            "description": "Replaces the whole list.",
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "enabled": {
            "type": "boolean"
          },
          "event": {
            "anyOf": [
              {
                "maxLength": 60,
                "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "filter": {
            "additionalProperties": false,
            "description": "Replaces the whole filter.",
            "properties": {
              "anyOf": {
                "description": "OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own.",
                "items": {
                  "additionalProperties": false,
                  "description": "A group of conditions, all of which must hold: the vocabulary of a view filter, without anyOf.",
                  "properties": {
                    "automated": {
                      "description": "true: only posts that read as machine-made; false: only the rest.",
                      "type": "boolean"
                    },
                    "countries": {
                      "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "excludeAuthors": {
                      "description": "Never these authors: display names, handles or profile URLs.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 200,
                      "type": "array"
                    },
                    "groupIds": {
                      "description": "Only matches of keywords in any of these groups (grp_...).",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "intents": {
                      "description": "Only mentions carrying any of these intent or topic tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "isReply": {
                      "description": "true: only replies and comments; false: only top-level posts.",
                      "type": "boolean"
                    },
                    "keywordIds": {
                      "description": "Only matches of any of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "keywordKinds": {
                      "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                      "items": {
                        "enum": [
                          "brand",
                          "competitor",
                          "topic"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "kind": {
                      "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                      "enum": [
                        "post",
                        "comment",
                        "repository"
                      ],
                      "type": "string"
                    },
                    "languages": {
                      "description": "Only posts in any of these languages (ISO 639-1).",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "linkHosts": {
                      "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "maxFollowers": {
                      "description": "Only authors with at most this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minBookmarks": {
                      "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minConfidence": {
                      "description": "Only mentions whose classifier confidence is at least this.",
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    },
                    "minFollowers": {
                      "description": "Only authors with at least this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minLikes": {
                      "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minQuotes": {
                      "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minRelevance": {
                      "description": "Only mentions scored at least this.",
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReplies": {
                      "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReposts": {
                      "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minViews": {
                      "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "notCountries": {
                      "description": "Never posts whose author is in these countries; an unknown country still passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "notGroupIds": {
                      "description": "Never matches of keywords in these groups.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notIntents": {
                      "description": "Never mentions carrying these tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notKeywordIds": {
                      "description": "Never matches of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notLanguages": {
                      "description": "Never posts in these languages; an unknown language still passes.",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notLinkHosts": {
                      "description": "Never posts linking to these hosts.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notPlatforms": {
                      "description": "Never posts from these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notRatings": {
                      "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "notSentiments": {
                      "description": "Never these sentiments; an unscored mention still passes.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "notSubreddits": {
                      "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notTags": {
                      "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "organization": {
                      "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                      "type": "boolean"
                    },
                    "platforms": {
                      "description": "Only posts from any of these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "q": {
                      "description": "Substring in the post text or the author's name.",
                      "maxLength": 200,
                      "minLength": 1,
                      "type": "string"
                    },
                    "ratings": {
                      "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "relevant": {
                      "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                      "type": "boolean"
                    },
                    "sentiments": {
                      "description": "Only these sentiments.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "status": {
                      "description": "Only mentions in this status: open, ignored, done.",
                      "enum": [
                        "open",
                        "ignored",
                        "done"
                      ],
                      "type": "string"
                    },
                    "subreddits": {
                      "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "tags": {
                      "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "maxItems": 10,
                "minItems": 1,
                "type": "array"
              },
              "automated": {
                "description": "true: only posts that read as machine-made (bots, templated posts); false: only the rest. Omit for both.",
                "type": "boolean"
              },
              "countries": {
                "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). A post whose country is unknown never passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "excludeAuthors": {
                "description": "Never these authors: display names, handles or profile URLs.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "groupIds": {
                "description": "Only keywords in these groups (grp_...): one rule per customer, say.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "intents": {
                "description": "At least one of these intent or topic tags.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "keywordIds": {
                "description": "Only these keywords.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "languages": {
                "description": "Only posts in any of these languages (ISO 639-1: en, es, de). A post whose language is unknown never passes.",
                "items": {
                  "pattern": "^[a-z]{2}$",
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "linkHosts": {
                "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it (octolens.com also matches blog.octolens.com). A post with no links never passes.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "minBookmarks": {
                "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minConfidence": {
                "description": "Only mentions whose classifier confidence is at least this, 0 to 1. A mention without a confidence never passes.",
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "minFollowers": {
                "description": "Only authors with at least this many followers. Unknown reach never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minLikes": {
                "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minQuotes": {
                "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minRelevance": {
                "description": "The rule's relevance floor. Absent, it sends relevant mentions only (scored 40 and up, the classifier's line); lower, down to 0, it also receives the matches the classifier scored as noise; higher, it hears less. Email channels keep the 40 line whatever the rule says. Unclassified mentions never pass.",
                "maximum": 100,
                "minimum": 0,
                "type": "integer"
              },
              "minReplies": {
                "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minReposts": {
                "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minViews": {
                "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "notCountries": {
                "description": "Never posts whose author is in these countries: [\"in\"]. A post whose country is unknown still passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "notRatings": {
                "description": "Never reviews with these star ratings (1 to 5): [5] keeps the five star reviews out. Posts that are not reviews still pass.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "organization": {
                "description": "true: only posts by companies, brands and organizations; false: only posts by people. Omit for both.",
                "type": "boolean"
              },
              "platforms": {
                "description": "Only posts from these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "ratings": {
                "description": "Only app store reviews with any of these star ratings (1 to 5): [1, 2] sends the unhappy ones. Every other post fails it.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "sentiments": {
                "description": "Only these sentiments.",
                "items": {
                  "description": "Classifier sentiment.",
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "tags": {
                "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              }
            },
            "type": "object"
          },
          "id": {
            "description": "Rule id",
            "minLength": 1,
            "type": "string"
          },
          "mode": {
            "enum": [
              "instant",
              "hourly",
              "daily",
              "weekly"
            ],
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "schedule": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "hour": {
                    "maximum": 23,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "minute": {
                    "default": 0,
                    "maximum": 59,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "skipEmpty": {
                    "default": true,
                    "type": "boolean"
                  },
                  "timezone": {
                    "maxLength": 64,
                    "minLength": 1,
                    "type": "string"
                  },
                  "weekday": {
                    "description": "Weekly rules: the day it sends, 0 Sunday to 6 Saturday. Required for mode weekly; ignored on daily rules.",
                    "maximum": 6,
                    "minimum": 0,
                    "type": "integer"
                  }
                },
                "required": [
                  "hour",
                  "timezone"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Daily and weekly alerts. Ignored on an hourly one, except a weekday, which is refused."
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_alert"
    },
    {
      "description": "Update the company profile (name, description, useCases, accounts) or override the classifier context directly. Profile edits recompose the context; an explicit context wins until the next profile edit. The context is the single biggest lever on relevance scoring, so keep it accurate and specific; it does not reach keywords in a group with its own description (update_group for those). Omitted fields are untouched.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "accounts": {
            "additionalProperties": false,
            "properties": {
              "linkedin": {
                "anyOf": [
                  {
                    "maxLength": 200,
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "x": {
                "anyOf": [
                  {
                    "maxLength": 60,
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "type": "object"
          },
          "competitors": {
            "description": "Replaces the whole list; [] clears it.",
            "items": {
              "maxLength": 120,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "context": {
            "description": "Overrides the composed context until the next profile edit.",
            "maxLength": 4000,
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "type": "string"
          },
          "guidelines": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Free-text rules for the classifier; null clears them."
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "useCases": {
            "description": "Replaces the whole list.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "website": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The company website; null clears it."
          }
        },
        "type": "object"
      },
      "name": "update_company"
    },
    {
      "description": "Rename a workspace feed (title; null clears it) or set its sign-in for a members-only forum (auth: { type: 'cookie', value } with the Cookie header the person's signed-in browser sends, or { type: 'header', name, value }). A sign-in is checked by reading the feed with it (feed_login_expired when it does not work), stored encrypted, never shown again, and the feed is then read for this workspace alone; auth: null removes it.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "auth": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "const": "cookie",
                        "type": "string"
                      },
                      "value": {
                        "description": "The Cookie header your browser sends to the forum (devtools, Network, the feed's request, Request Headers, cookie).",
                        "maxLength": 8000,
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "value"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "description": "The header name, e.g. Api-Key (Discourse) or Authorization.",
                        "maxLength": 100,
                        "minLength": 1,
                        "type": "string"
                      },
                      "type": {
                        "const": "header",
                        "type": "string"
                      },
                      "value": {
                        "description": "Its value.",
                        "maxLength": 8000,
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "name",
                      "value"
                    ],
                    "type": "object"
                  }
                ],
                "description": "A sign-in for a members-only feed: a cookie, or one header. Write-only: stored encrypted, sent to the feed's own site alone, never shown again. A feed with a sign-in is read for this workspace alone."
              },
              {
                "type": "null"
              }
            ],
            "description": "Replaces the sign-in (checked by reading the feed with it first); null removes it and the feed is read signed out again."
          },
          "id": {
            "description": "Feed id (fd_...), from list_feeds",
            "minLength": 1,
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your name for the feed; null clears it."
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_feed"
    },
    {
      "description": "Change the workspace filters: excludedTerms (a `*` at an end is a wildcard), excludedAuthors (links, handles, names), excludedRepos (owner/name or a github.com link), subreddits.only (an allowlist; when set, excluded is ignored) and subreddits.excluded. Each list optional; an omitted list is untouched, an empty one clears it. Takes effect on new mentions within a minute.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched; an empty list clears one.",
        "properties": {
          "excludedAuthors": {
            "description": "Replaces the list; [] clears it.",
            "items": {
              "maxLength": 500,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "excludedRepos": {
            "description": "Replaces the list; [] clears it.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "excludedTerms": {
            "description": "Replaces the list; [] clears it.",
            "items": {
              "maxLength": 80,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "subreddits": {
            "additionalProperties": false,
            "description": "Reddit only; an omitted list is untouched.",
            "properties": {
              "excluded": {
                "description": "Replaces the deny list; [] clears it.",
                "items": {
                  "maxLength": 100,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "only": {
                "description": "Replaces the allowlist; [] clears it.",
                "items": {
                  "maxLength": 100,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "name": "update_filters"
    },
    {
      "description": "Rename a keyword group, change your id for it (externalId, null clears) or its company description (context, null clears: the workspace profile applies again; new mentions are judged with it at once). The default group can be renamed but takes no description: it is the workspace itself and reads the company profile (update_company).",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "context": {
            "anyOf": [
              {
                "description": "What the classifier reads as \"the company\" for this group's keywords, in place of the WHOLE workspace profile, its relevance guidelines and competitor list included (at most 4000 characters): who the business is, what it sells, for whom, what is not it, and any rule that should apply to this group (\"ignore job posts\"). For a group per customer, the customer's description. Null: the workspace profile, as for every keyword before groups.",
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Replaces the group's company description; null clears it (the workspace profile applies again). New mentions are judged with it at once; old ones are not rescored. Not on the default group (400 default_group_context): that one is the workspace itself and reads the profile."
          },
          "externalId": {
            "anyOf": [
              {
                "description": "Your own id for the group (a customer id, say). Unique per workspace; find the group by it with GET /v1/groups?externalId=.",
                "maxLength": 128,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Replaces your id for the group; null clears it."
          },
          "id": {
            "description": "Group id (grp_...)",
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "description": "The group's name: a customer, a campaign, a product. Unique per workspace.",
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_group"
    },
    {
      "description": "Change a keyword: rename it (term: the new term is tracked from now on, with no look-back; the keyword keeps its id, its settings and what the old term found), the platforms it is tracked on (platforms: a list, or null for every platform), mute or unmute it, reclassify it (kind), set its classifier context (null clears), or its matching rules (matching: each field optional, an empty list clears one; requiredTerms with requiredMode any|all, requiredGroups (every term of at least one combination), excludedTerms, a `*` wildcard at an end of any rule term, excludedAuthors, caseSensitive, exactPhrase: true for the exact phrase only, false to also match its words close together, subreddits: { only, excluded } for its Reddit posts alone, each list replaced when sent), or its monthly mention cap (cap: { mentions: N, per: \"day\" | \"week\" | \"month\" }, null removes it; a cap above the current period's count resumes a capped keyword at once), or move it to another group (groupId; a 409 when that group already tracks the term), or replace where it collects reviews, App Store, Google Play, Trustpilot or Google Maps (reviewSources: the whole list, [] disconnects them; a newly added app or country brings its last 30 days free), or replace the RSS or Atom feeds it reads (feeds: the whole list of URLs, [] disconnects them; a newly added feed brings its newest 10 matching items of the last 30 days). It also switches comments on or off (comments: { enabled, maxPerPost }; $0.008 per comment delivered), and sets which mentions it shows by language and country (display: { languages: { only, excluded }, countries: { only, excluded } }, each list replaced when sent; hidden mentions are still billed, and the change applies to older mentions too). Rules apply to new mentions only. Returns the updated keyword with its stats. On GitHub a keyword also gets events about repositories naming it; matching.repositories chooses them: events (traction: a repository under 30 days old reached 10 stars; stars: a star milestone from 100 up; growth: fast growth in a week; new: every repository created, even with no stars, off by default), minStars and minWeeklyStars (stars gained in 7 days, 25 or more). An event outside the rule is dropped before it is stored, so it is never billed: \"repositories about X with 200+ stars gaining 100 a week\" is { events: [\"stars\",\"growth\"], minStars: 200, minWeeklyStars: 100 }.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "cap": {
            "anyOf": [
              {
                "additionalProperties": false,
                "description": "A ceiling on what this keyword may be charged for per day, week or month, mentions and comments together. At the cap it stops matching and receiving comments until the next period starts (UTC), or until the cap is raised or removed. It stays unmuted: it keeps its place and its daily keyword charge; pause it to stop that too.",
                "properties": {
                  "mentions": {
                    "description": "Charged items allowed per period (see per): matched mentions plus the thread comments delivered under them. Every match counts, relevant or not, the look-back a new keyword gets included, because every match bills.",
                    "maximum": 1000000,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "per": {
                    "default": "month",
                    "description": "The period the cap counts in, in UTC: day (from 00:00), week (from Monday 00:00) or month (the calendar month, the default). At the cap the keyword stops until the next period starts, so a daily cap keeps mentions coming every day with a fixed ceiling on spend.",
                    "enum": [
                      "day",
                      "week",
                      "month"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "mentions"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Replaces the mention cap and its period (per, default month); null removes it. A cap above the current period's count resumes a capped keyword at once, one at or under it pauses it."
          },
          "comments": {
            "additionalProperties": false,
            "description": "Comments under this keyword's mentions; omitted fields are untouched (on create: off, 20 per post).",
            "properties": {
              "enabled": {
                "description": "Read the comments under this keyword's relevant mentions, from 30 minutes after each post, as long as its platform's conversations last (a day to a month). Each comment delivered costs $0.008 (comments of fewer than three words are dropped, never billed) (the comments line of the bill). Off by default.",
                "type": "boolean"
              },
              "maxPerPost": {
                "description": "The newest comments of one thread you receive, 20 by default, 100 at most: the ceiling on what one mention's comments can cost. A comment that names the keyword is a mention too, but only among these newest ones, so it is never billed past the ceiling.",
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "context": {
            "anyOf": [
              {
                "description": "A sentence the classifier reads for this keyword only, on top of the company profile or the group's own description (at most 300 characters): what the term means here, what to ignore. \"Arc is our browser; ignore the geometry word.\" Null clears it.",
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A sentence the classifier reads for this keyword only, on top of the company profile or the group's own description (at most 300 characters): what the term means here, what to ignore. \"Arc is our browser; ignore the geometry word.\" Null clears it."
          },
          "display": {
            "additionalProperties": false,
            "description": "Which of this keyword's mentions you see, by language and country; each list is replaced when sent, kept when omitted. Hidden mentions are still billed.",
            "properties": {
              "countries": {
                "additionalProperties": false,
                "description": "By where the author is (ISO 3166-1 alpha-2); omitted: untouched.",
                "properties": {
                  "excluded": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "us",
                        "ca",
                        "mx",
                        "br",
                        "ar",
                        "co",
                        "cl",
                        "pe",
                        "gb",
                        "ie",
                        "fr",
                        "de",
                        "es",
                        "pt",
                        "it",
                        "nl",
                        "be",
                        "ch",
                        "at",
                        "se",
                        "no",
                        "dk",
                        "fi",
                        "pl",
                        "cz",
                        "ro",
                        "gr",
                        "hu",
                        "ua",
                        "ru",
                        "lt",
                        "lv",
                        "ee",
                        "tr",
                        "il",
                        "ae",
                        "sa",
                        "eg",
                        "ng",
                        "ke",
                        "za",
                        "ma",
                        "in",
                        "pk",
                        "bd",
                        "lk",
                        "np",
                        "cn",
                        "hk",
                        "tw",
                        "jp",
                        "kr",
                        "sg",
                        "my",
                        "id",
                        "ph",
                        "vn",
                        "th",
                        "au",
                        "nz"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  },
                  "only": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "us",
                        "ca",
                        "mx",
                        "br",
                        "ar",
                        "co",
                        "cl",
                        "pe",
                        "gb",
                        "ie",
                        "fr",
                        "de",
                        "es",
                        "pt",
                        "it",
                        "nl",
                        "be",
                        "ch",
                        "at",
                        "se",
                        "no",
                        "dk",
                        "fi",
                        "pl",
                        "cz",
                        "ro",
                        "gr",
                        "hu",
                        "ua",
                        "ru",
                        "lt",
                        "lv",
                        "ee",
                        "tr",
                        "il",
                        "ae",
                        "sa",
                        "eg",
                        "ng",
                        "ke",
                        "za",
                        "ma",
                        "in",
                        "pk",
                        "bd",
                        "lk",
                        "np",
                        "cn",
                        "hk",
                        "tw",
                        "jp",
                        "kr",
                        "sg",
                        "my",
                        "id",
                        "ph",
                        "vn",
                        "th",
                        "au",
                        "nz"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "languages": {
                "additionalProperties": false,
                "description": "By the language of the post (ISO 639-1); omitted: untouched.",
                "properties": {
                  "excluded": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "en",
                        "es",
                        "de",
                        "fr",
                        "pt",
                        "it",
                        "nl",
                        "ca",
                        "pl",
                        "tr",
                        "sv",
                        "da",
                        "ru",
                        "uk",
                        "ar",
                        "hi",
                        "id",
                        "ja",
                        "zh",
                        "ko"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  },
                  "only": {
                    "description": "Replaces the list; [] clears it.",
                    "items": {
                      "enum": [
                        "en",
                        "es",
                        "de",
                        "fr",
                        "pt",
                        "it",
                        "nl",
                        "ca",
                        "pl",
                        "tr",
                        "sv",
                        "da",
                        "ru",
                        "uk",
                        "ar",
                        "hi",
                        "id",
                        "ja",
                        "zh",
                        "ko"
                      ],
                      "type": "string"
                    },
                    "maxItems": 60,
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "feeds": {
            "description": "Replaces the feeds this keyword reads; [] disconnects them all (their mentions stay). A feed added here is checked now and brings its newest 10 matching items of the last 30 days; one already listed keeps its place.",
            "items": {
              "additionalProperties": false,
              "description": "One feed to read.",
              "properties": {
                "url": {
                  "description": "A feed's address (https://forum.example.com/posts.rss), or a page's (https://forum.example.com): the feed the page advertises is used.",
                  "maxLength": 500,
                  "minLength": 4,
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "maxItems": 20,
            "type": "array"
          },
          "groupId": {
            "description": "Moves the keyword to this group (grp_...). A 409 when that group already tracks the term.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Keyword id",
            "minLength": 1,
            "type": "string"
          },
          "kind": {
            "description": "Reclassify it as brand, competitor or topic.",
            "enum": [
              "brand",
              "competitor",
              "topic"
            ],
            "type": "string"
          },
          "matching": {
            "additionalProperties": false,
            "description": "Omitted fields are untouched; an empty list clears one.",
            "properties": {
              "caseSensitive": {
                "description": "true: the term must appear in the case it was typed (RAG, never rag). Default false.",
                "type": "boolean"
              },
              "exactPhrase": {
                "description": "true: only the exact phrase matches. false (default): a multi-word keyword also matches a post holding its words close together, in any order, plurals and spellings (non-profit, nonprofit) included; such a match is kept and billed only when the classifier scores it relevant. A term sent in double quotes sets this to true.",
                "type": "boolean"
              },
              "excludedAuthors": {
                "description": "Posts by these authors are dropped: profile or post links, @handles, u/names, Bluesky DIDs or display names, stored in canonical form like an alert's muted list.",
                "items": {
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "excludedTerms": {
                "description": "A post containing any of these is dropped. A `*` at the start or the end of an entry is a wildcard (beta.* matches beta.0.1; *bot matches nightlybot).",
                "items": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "repositories": {
                "additionalProperties": false,
                "description": "GitHub only: each field is replaced when sent, kept when omitted; null clears a minimum.",
                "properties": {
                  "events": {
                    "description": "The repository events this keyword takes. traction: a repository created in the last 30 days reached 10 stars. stars: one with 100 stars or more passed a milestone (100, 250, 500, 1,000, 2,000, 5,000 ...). growth: it gained stars fast in a week. new: every repository created, even with no stars (off by default: nearly all of them are noise for a broad keyword). Default: traction, stars, growth. Empty: no repository events.",
                    "items": {
                      "enum": [
                        "new",
                        "traction",
                        "stars",
                        "growth"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "minStars": {
                    "anyOf": [
                      {
                        "maximum": 1000000,
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Only repositories with at least this many stars; null for no minimum."
                  },
                  "minWeeklyStars": {
                    "anyOf": [
                      {
                        "maximum": 1000000,
                        "minimum": 25,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Only repositories that gained at least this many stars in the last 7 days (25 or more). It applies to every event, and one whose last week is not known yet does not pass. null: a growth event needs 100 stars and 20% of the repository's stars in a week, the other events need no growth."
                  }
                },
                "type": "object"
              },
              "requiredGroups": {
                "description": "Combinations of terms, at most 50 of 10 terms each: the post must ALSO contain every term of at least one group (an OR of ANDs). For the keyword inreach, [[\"weather\", \"alert*\"], [\"tsunami\"], [\"flash flood\"]] keeps a post about inReach weather alerts, tsunamis or flash floods, one keyword instead of three. Same phrase and wildcard rules as requiredTerms; when both are set a post must pass both. Empty: no combinations.",
                "items": {
                  "items": {
                    "maxLength": 80,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 10,
                  "minItems": 1,
                  "type": "array"
                },
                "maxItems": 50,
                "type": "array"
              },
              "requiredMode": {
                "description": "any: at least one required term must appear. all: every one must.",
                "enum": [
                  "any",
                  "all"
                ],
                "type": "string"
              },
              "requiredTerms": {
                "description": "The post must ALSO contain these terms, any one of them or all of them per requiredMode. A `*` at the start or the end of an entry is a wildcard (alert* matches alerts and alerting). Empty: no requirement.",
                "items": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "subreddits": {
                "additionalProperties": false,
                "description": "Reddit only, for this keyword alone: each list is replaced when sent, kept when omitted.",
                "properties": {
                  "excluded": {
                    "description": "Replaces the keyword's deny list; [] clears it.",
                    "items": {
                      "maxLength": 100,
                      "minLength": 1,
                      "type": "string"
                    },
                    "maxItems": 50,
                    "type": "array"
                  },
                  "only": {
                    "description": "Replaces the keyword's allowlist; [] clears it.",
                    "items": {
                      "maxLength": 100,
                      "minLength": 1,
                      "type": "string"
                    },
                    "maxItems": 50,
                    "type": "array"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "muted": {
            "description": "A muted keyword stops polling and matching; its mentions stay.",
            "type": "boolean"
          },
          "platforms": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Replaces the platform list; null means every platform, [] none (reviews only, when the keyword has reviewSources)."
          },
          "readsWorkspaceFeeds": {
            "description": "true: the keyword also reads the workspace's feeds (GET /v1/feeds), live from now on. false: its own feeds alone.",
            "type": "boolean"
          },
          "reviewSources": {
            "description": "Replaces the list of apps whose reviews this keyword collects; [] disconnects them all (their reviews stay). An app or country added here gets the free 30-day look-back; one already listed keeps its place.",
            "items": {
              "additionalProperties": false,
              "description": "A review page whose reviews become this keyword's mentions: its link, or the platform and the id.",
              "properties": {
                "countries": {
                  "description": "App Store and Google Play only: storefronts to read, two-letter codes, at most 20. Default: the one in the link, else us. Each is one more poll a day; the same review seen in two storefronts is one mention. Trustpilot and Google Maps have one page for everyone and take none.",
                  "items": {
                    "pattern": "^[A-Za-z]{2}$",
                    "type": "string"
                  },
                  "maxItems": 20,
                  "minItems": 1,
                  "type": "array"
                },
                "id": {
                  "description": "The id on the platform: the digits after \"id\" on the App Store, the package name on Google Play, the company's domain on Trustpilot (notion.so), a Place ID (ChIJ...) on Google Maps.",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "language": {
                  "description": "Google Play only: the language of the reviews to read (en, es, de, pt-BR); Google Play answers one language at a time. Default: the link's hl, else en.",
                  "maxLength": 10,
                  "minLength": 2,
                  "type": "string"
                },
                "platform": {
                  "description": "appstore (Apple App Store), googleplay (Google Play), trustpilot (a company's Trustpilot page) or googlemaps (a place's Google reviews).",
                  "enum": [
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps"
                  ],
                  "type": "string"
                },
                "url": {
                  "description": "The review page's link: an App Store or Google Play app (https://apps.apple.com/us/app/notion/id1232780281, https://play.google.com/store/apps/details?id=notion.id), a Trustpilot page (https://www.trustpilot.com/review/notion.so) or a Google Maps place (its full link, or a maps.app.goo.gl share link). Or give platform and id.",
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "maxItems": 10,
            "type": "array"
          },
          "term": {
            "description": "Renames the keyword: the new term is tracked from now on, with no look-back, and the keyword keeps its id, its settings and the mentions the old term found. Wrap it in double quotes for the exact phrase only. A 409 when its group already tracks the new term.",
            "maxLength": 80,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_keyword"
    },
    {
      "description": "The one write on a mention: status \"ignored\" (not interesting) or \"done\" (handled), \"open\" to put it back; assign it to a workspace member (assigneeId, null to unassign); snooze it out of the feed until an ISO 8601 instant (snoozedUntil, null to wake it); leave an internal note (note, null to clear); or correct the classifier with `relevant` (true or false: your verdict, which sets relevance to 100 or 0 and moves the mention in or out of the relevant feed; null withdraws it) and `sentiment` (a corrected label; null restores the classifier's). Use the verdicts when the user says a mention is noise or was missed. Omitted fields are untouched. Delivery and billing never change.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Every field is optional; omitted fields are untouched.",
        "properties": {
          "assigneeId": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A workspace member (user id), or null to unassign."
          },
          "id": {
            "description": "Mention id (mm_...)",
            "minLength": 1,
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Internal note; null or empty clears it."
          },
          "relevant": {
            "description": "Your verdict on relevance, correcting the classifier: true sets relevance to 100 and puts a filtered mention back in the relevant feed, false sets it to 0 and takes it out; null withdraws the verdict and restores the classifier's score. Never billed or unbilled. A mention still being classified answers 409 classification_pending.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "sentiment": {
            "anyOf": [
              {
                "description": "Classifier sentiment.",
                "enum": [
                  "positive",
                  "neutral",
                  "negative"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Your corrected sentiment; null withdraws the correction and restores the classifier's."
          },
          "snoozedUntil": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 8601 (or epoch ms) until which the mention leaves the feed; null wakes it."
          },
          "status": {
            "description": "ignored or done to handle it; open to put it back.",
            "enum": [
              "open",
              "ignored",
              "done"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_mention"
    },
    {
      "description": "Annotate a person for your organization: replace their tags, set notes, mute/unmute them, or set the outreach owner (ownerId, a member user id; null clears) and stage. Muting hides their posts from the feed and from every channel; ingest and billing are unchanged. With groupId the annotations are that keyword group's own: muted hides the person from the mentions of that group's keywords only (feed, alerts and digests), and the group's tags show on those mentions next to the workspace's. A mute set without groupId hides them for every group.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Audience author id (aut_...)",
            "minLength": 1,
            "type": "string"
          },
          "muted": {
            "description": "true hides their posts from the feed, the alerts and the digests; false shows them again. Without groupId, for every keyword of the workspace; with groupId, for the mentions of that group's keywords only, leaving the workspace's mute as it is.",
            "type": "boolean"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string"
          },
          "ownerId": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The member who owns the contact (user id); null clears."
          },
          "stage": {
            "description": "Where your workspace stands with the person: not_contacted, contacted, replied, in_talks, customer or not_a_fit.",
            "enum": [
              "not_contacted",
              "contacted",
              "replied",
              "in_talks",
              "customer",
              "not_a_fit"
            ],
            "type": "string"
          },
          "tags": {
            "description": "Replaces the whole list.",
            "items": {
              "maxLength": 40,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_person"
    },
    {
      "description": "Rename, describe or refilter a saved segment. `filter` replaces the whole filter. A segment saved in a keyword group is found with that groupId.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Omitted fields are untouched.",
        "properties": {
          "description": {
            "maxLength": 500,
            "type": "string"
          },
          "filter": {
            "additionalProperties": false,
            "description": "Replaces the whole filter.",
            "properties": {
              "automated": {
                "description": "true: only people whose matched posts are mostly machine-made (bot accounts); false: only the rest.",
                "type": "boolean"
              },
              "intents": {
                "description": "At least one mention carrying any of these intents.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 10,
                "type": "array"
              },
              "keywordKinds": {
                "description": "Mentioned a keyword of any of these kinds.",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "linkHosts": {
                "description": "At least one mention linking to any of these hosts, the host itself or a subdomain of it.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "maxFollowers": {
                "description": "At most this many followers. Unknown reach never matches.",
                "minimum": 0,
                "type": "integer"
              },
              "minFollowers": {
                "description": "At least this many followers. Unknown reach never matches.",
                "minimum": 0,
                "type": "integer"
              },
              "minMentions": {
                "description": "At least this many matched mentions.",
                "minimum": 1,
                "type": "integer"
              },
              "minNegative": {
                "description": "At least this many negative mentions.",
                "minimum": 1,
                "type": "integer"
              },
              "muted": {
                "description": "true: only muted people; false: only unmuted.",
                "type": "boolean"
              },
              "neverKeywordKinds": {
                "description": "Never mentioned a keyword of these kinds.",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "newSinceDays": {
                "description": "First seen within this many days.",
                "maximum": 365,
                "minimum": 1,
                "type": "integer"
              },
              "notIntents": {
                "description": "Nobody whose mentions carry any of these intents.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 10,
                "type": "array"
              },
              "notPlatforms": {
                "description": "Nobody with an account on these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notTags": {
                "description": "Nobody carrying any of these tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "ownerIds": {
                "description": "People owned by any of these members (user ids); \"none\" matches people nobody owns.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "platforms": {
                "description": "People with an account on any of these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "stages": {
                "description": "People at any of these outreach stages.",
                "items": {
                  "description": "Where your workspace stands with the person: not_contacted, contacted, replied, in_talks, customer or not_a_fit.",
                  "enum": [
                    "not_contacted",
                    "contacted",
                    "replied",
                    "in_talks",
                    "customer",
                    "not_a_fit"
                  ],
                  "type": "string"
                },
                "maxItems": 6,
                "type": "array"
              },
              "tags": {
                "description": "People carrying any of these tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              }
            },
            "type": "object"
          },
          "groupId": {
            "description": "Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "Segment id (seg_...)",
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_segment"
    },
    {
      "description": "Rename, describe or refilter a saved view. `filter` replaces the whole filter.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 500,
            "type": "string"
          },
          "filter": {
            "additionalProperties": false,
            "description": "Replaces the whole filter.",
            "properties": {
              "anyOf": {
                "description": "OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own.",
                "items": {
                  "additionalProperties": false,
                  "description": "A group of conditions, all of which must hold: the vocabulary of a view filter, without anyOf.",
                  "properties": {
                    "automated": {
                      "description": "true: only posts that read as machine-made; false: only the rest.",
                      "type": "boolean"
                    },
                    "countries": {
                      "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "excludeAuthors": {
                      "description": "Never these authors: display names, handles or profile URLs.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 200,
                      "type": "array"
                    },
                    "groupIds": {
                      "description": "Only matches of keywords in any of these groups (grp_...).",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "intents": {
                      "description": "Only mentions carrying any of these intent or topic tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "isReply": {
                      "description": "true: only replies and comments; false: only top-level posts.",
                      "type": "boolean"
                    },
                    "keywordIds": {
                      "description": "Only matches of any of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "keywordKinds": {
                      "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                      "items": {
                        "enum": [
                          "brand",
                          "competitor",
                          "topic"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "kind": {
                      "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                      "enum": [
                        "post",
                        "comment",
                        "repository"
                      ],
                      "type": "string"
                    },
                    "languages": {
                      "description": "Only posts in any of these languages (ISO 639-1).",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "linkHosts": {
                      "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "maxFollowers": {
                      "description": "Only authors with at most this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minBookmarks": {
                      "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minConfidence": {
                      "description": "Only mentions whose classifier confidence is at least this.",
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    },
                    "minFollowers": {
                      "description": "Only authors with at least this many followers; unknown reach never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minLikes": {
                      "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minQuotes": {
                      "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minRelevance": {
                      "description": "Only mentions scored at least this.",
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReplies": {
                      "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minReposts": {
                      "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "minViews": {
                      "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "notCountries": {
                      "description": "Never posts whose author is in these countries; an unknown country still passes.",
                      "items": {
                        "enum": [
                          "us",
                          "ca",
                          "mx",
                          "br",
                          "ar",
                          "co",
                          "cl",
                          "pe",
                          "gb",
                          "ie",
                          "fr",
                          "de",
                          "es",
                          "pt",
                          "it",
                          "nl",
                          "be",
                          "ch",
                          "at",
                          "se",
                          "no",
                          "dk",
                          "fi",
                          "pl",
                          "cz",
                          "ro",
                          "gr",
                          "hu",
                          "ua",
                          "ru",
                          "lt",
                          "lv",
                          "ee",
                          "tr",
                          "il",
                          "ae",
                          "sa",
                          "eg",
                          "ng",
                          "ke",
                          "za",
                          "ma",
                          "in",
                          "pk",
                          "bd",
                          "lk",
                          "np",
                          "cn",
                          "hk",
                          "tw",
                          "jp",
                          "kr",
                          "sg",
                          "my",
                          "id",
                          "ph",
                          "vn",
                          "th",
                          "au",
                          "nz"
                        ],
                        "type": "string"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "notGroupIds": {
                      "description": "Never matches of keywords in these groups.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notIntents": {
                      "description": "Never mentions carrying these tags.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notKeywordIds": {
                      "description": "Never matches of these keywords.",
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notLanguages": {
                      "description": "Never posts in these languages; an unknown language still passes.",
                      "items": {
                        "pattern": "^[a-z]{2}$",
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notLinkHosts": {
                      "description": "Never posts linking to these hosts.",
                      "items": {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notPlatforms": {
                      "description": "Never posts from these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "notRatings": {
                      "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "notSentiments": {
                      "description": "Never these sentiments; an unscored mention still passes.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "notSubreddits": {
                      "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "notTags": {
                      "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "organization": {
                      "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                      "type": "boolean"
                    },
                    "platforms": {
                      "description": "Only posts from any of these platforms.",
                      "items": {
                        "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                        "enum": [
                          "bluesky",
                          "hackernews",
                          "github",
                          "stackoverflow",
                          "devto",
                          "reddit",
                          "x",
                          "youtube",
                          "news",
                          "linkedin",
                          "tiktok",
                          "instagram",
                          "appstore",
                          "googleplay",
                          "trustpilot",
                          "googlemaps",
                          "rss"
                        ],
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    },
                    "q": {
                      "description": "Substring in the post text or the author's name.",
                      "maxLength": 200,
                      "minLength": 1,
                      "type": "string"
                    },
                    "ratings": {
                      "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                      "items": {
                        "maximum": 5,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "maxItems": 5,
                      "type": "array"
                    },
                    "relevant": {
                      "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                      "type": "boolean"
                    },
                    "sentiments": {
                      "description": "Only these sentiments.",
                      "items": {
                        "description": "Classifier sentiment.",
                        "enum": [
                          "positive",
                          "neutral",
                          "negative"
                        ],
                        "type": "string"
                      },
                      "maxItems": 3,
                      "type": "array"
                    },
                    "status": {
                      "description": "Only mentions in this status: open, ignored, done.",
                      "enum": [
                        "open",
                        "ignored",
                        "done"
                      ],
                      "type": "string"
                    },
                    "subreddits": {
                      "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                      "items": {
                        "maxLength": 60,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 50,
                      "type": "array"
                    },
                    "tags": {
                      "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                      "items": {
                        "maxLength": 40,
                        "minLength": 1,
                        "type": "string"
                      },
                      "maxItems": 20,
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "maxItems": 10,
                "minItems": 1,
                "type": "array"
              },
              "automated": {
                "description": "true: only posts that read as machine-made; false: only the rest.",
                "type": "boolean"
              },
              "countries": {
                "description": "Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "excludeAuthors": {
                "description": "Never these authors: display names, handles or profile URLs.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "groupIds": {
                "description": "Only matches of keywords in any of these groups (grp_...).",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "intents": {
                "description": "Only mentions carrying any of these intent or topic tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "isReply": {
                "description": "true: only replies and comments; false: only top-level posts.",
                "type": "boolean"
              },
              "keywordIds": {
                "description": "Only matches of any of these keywords.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "keywordKinds": {
                "description": "Only matches of keywords of any of these kinds: brand, competitor, topic.",
                "items": {
                  "enum": [
                    "brand",
                    "competitor",
                    "topic"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "kind": {
                "description": "Only posts (post), only comments (comment) or only GitHub repository events (repository).",
                "enum": [
                  "post",
                  "comment",
                  "repository"
                ],
                "type": "string"
              },
              "languages": {
                "description": "Only posts in any of these languages (ISO 639-1).",
                "items": {
                  "pattern": "^[a-z]{2}$",
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "linkHosts": {
                "description": "Only posts linking to any of these hosts, the host itself or a subdomain of it.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "maxFollowers": {
                "description": "Only authors with at most this many followers; unknown reach never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minBookmarks": {
                "description": "Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minConfidence": {
                "description": "Only mentions whose classifier confidence is at least this.",
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "minFollowers": {
                "description": "Only authors with at least this many followers; unknown reach never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minLikes": {
                "description": "Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minQuotes": {
                "description": "Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minRelevance": {
                "description": "Only mentions scored at least this.",
                "maximum": 100,
                "minimum": 0,
                "type": "integer"
              },
              "minReplies": {
                "description": "Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minReposts": {
                "description": "Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "minViews": {
                "description": "Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.",
                "minimum": 0,
                "type": "integer"
              },
              "notCountries": {
                "description": "Never posts whose author is in these countries; an unknown country still passes.",
                "items": {
                  "enum": [
                    "us",
                    "ca",
                    "mx",
                    "br",
                    "ar",
                    "co",
                    "cl",
                    "pe",
                    "gb",
                    "ie",
                    "fr",
                    "de",
                    "es",
                    "pt",
                    "it",
                    "nl",
                    "be",
                    "ch",
                    "at",
                    "se",
                    "no",
                    "dk",
                    "fi",
                    "pl",
                    "cz",
                    "ro",
                    "gr",
                    "hu",
                    "ua",
                    "ru",
                    "lt",
                    "lv",
                    "ee",
                    "tr",
                    "il",
                    "ae",
                    "sa",
                    "eg",
                    "ng",
                    "ke",
                    "za",
                    "ma",
                    "in",
                    "pk",
                    "bd",
                    "lk",
                    "np",
                    "cn",
                    "hk",
                    "tw",
                    "jp",
                    "kr",
                    "sg",
                    "my",
                    "id",
                    "ph",
                    "vn",
                    "th",
                    "au",
                    "nz"
                  ],
                  "type": "string"
                },
                "maxItems": 100,
                "type": "array"
              },
              "notGroupIds": {
                "description": "Never matches of keywords in these groups.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "notIntents": {
                "description": "Never mentions carrying these tags.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notKeywordIds": {
                "description": "Never matches of these keywords.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "notLanguages": {
                "description": "Never posts in these languages; an unknown language still passes.",
                "items": {
                  "pattern": "^[a-z]{2}$",
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notLinkHosts": {
                "description": "Never posts linking to these hosts.",
                "items": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notPlatforms": {
                "description": "Never posts from these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "notRatings": {
                "description": "Never reviews with these star ratings; posts that are not reviews still pass.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "notSentiments": {
                "description": "Never these sentiments; an unscored mention still passes.",
                "items": {
                  "description": "Classifier sentiment.",
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "notSubreddits": {
                "description": "Never Reddit posts from these subreddits; posts from other platforms still pass.",
                "items": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "notTags": {
                "description": "Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "organization": {
                "description": "true: only posts by companies, brands and organizations; false: only posts by people.",
                "type": "boolean"
              },
              "platforms": {
                "description": "Only posts from any of these platforms.",
                "items": {
                  "description": "Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).",
                  "enum": [
                    "bluesky",
                    "hackernews",
                    "github",
                    "stackoverflow",
                    "devto",
                    "reddit",
                    "x",
                    "youtube",
                    "news",
                    "linkedin",
                    "tiktok",
                    "instagram",
                    "appstore",
                    "googleplay",
                    "trustpilot",
                    "googlemaps",
                    "rss"
                  ],
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              },
              "q": {
                "description": "Substring in the post text or the author's name.",
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              "ratings": {
                "description": "Only app store reviews with any of these star ratings; every other post fails it.",
                "items": {
                  "maximum": 5,
                  "minimum": 1,
                  "type": "integer"
                },
                "maxItems": 5,
                "type": "array"
              },
              "relevant": {
                "description": "true: only mentions the classifier scored relevant; false: only the rest.",
                "type": "boolean"
              },
              "sentiments": {
                "description": "Only these sentiments.",
                "items": {
                  "description": "Classifier sentiment.",
                  "enum": [
                    "positive",
                    "neutral",
                    "negative"
                  ],
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "status": {
                "description": "Only mentions in this status: open, ignored, done.",
                "enum": [
                  "open",
                  "ignored",
                  "done"
                ],
                "type": "string"
              },
              "subreddits": {
                "description": "Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.",
                "items": {
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 50,
                "type": "array"
              },
              "tags": {
                "description": "Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.",
                "items": {
                  "maxLength": 40,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 20,
                "type": "array"
              }
            },
            "type": "object"
          },
          "id": {
            "description": "View id (vw_...)",
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "update_view"
    },
    {
      "description": "The workspace this credential acts on, how it authenticated (an API key or an OAuth sign-in), whether it may write, and the person behind it when there is one. Call it once at the start of a session to name the workspace and know whether write tools are available.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "whoami"
    }
  ]
}

What the leaf hashes

{"body":"184b80e04d82ec374699452321626241b68cdda0ffcf7198012540606bb0d11a","id":565629,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138217179000,"prev":null,"subject":"73c810ed-9f96-416f-956c-4bafd7034cd6","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0x02c2be1a43a00df777c77e256b97e08a1d57e1366a4dae865e9b75f3e955a139
  2. 0x1e85980acbb85d31e8fb003b4a56a9b6304fbd38459ddf1d4b01950d5e46800c
  3. 0x5ff73b6ef007ea987fedba4a9bc292a8fbd0a810963b72b153f6216102147841
  4. 0xf08120548b442fbb0e7bb00b486674ef75bbe272bfbe300464e8616adcd06fbd
  5. 0x81e053276071180c6e0fca71eb6626b167c0c84c6c8e6fcf43b131c280a9756f
  6. 0x2b5e6f5ac41d2a457c7e69fe99985232840812320a4d126abba9263c1b91b16a
  7. 0x3607f05f52edc852ffeb8044fe053920bb5e9ff49f1ca6a819da0f402b0b309f
  8. 0x3e713e69ae770599f55cf3886e00e7b4269830a1156e068adae394bc3009fccf
  9. 0x66e8731f8d22a5ec502583f8ad90b534b32becd43f10f391f5bcd4e5c04e8ab3
  10. 0x9dccb519cb2984d5b4533c1b78e03e29964480f14ce1a0877b610ad1575cab3e
  11. 0xca110c77af452531cd72d9dfe28e4dd3c3e60be71c9e7ac05ad2b782f9713bde
  12. 0x05916cc6b98491a0d541e4ecca3d0132fa255184243406b5a8a52bb1b6b63bd0
  13. 0x5b34b9f89512a83faa4bfecec322037670cc1af58e6e94a86fe88934434d7ddf
  14. 0x29e12cb67839430fa64ab8bd05d52bab606f2978d9e6d2fb094fece9438fd4de
  15. 0x2cf27e8a181d60d0dd27c186c2eddfcbb4e8fa71cf66feeb55a4d730e15ee8c4
  16. 0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b
  17. 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON