SEOcrawl AI
SEO + AI visibility in chat
- Category
- Marketing
- Primary Subcategory
- SEO Rank Tracking & Keyword Research
Integration details
Description
Bring your whole SEO stack into ChatGPT. SEOcrawl AI connects ChatGPT to your live SEO data: Google Search Console performance (clicks, impressions, CTR, positions), GA4 analytics including the traffic you receive from AI assistants, and SEOcrawl's AI Tracker, which monitors how your brand appears and gets cited across ChatGPT, Claude, Gemini and Perplexity. Compare date ranges, surface winning and losing keywords and pages, drill into any URL or query, and explore your site with advanced filters. Then act on insights without leaving the chat: create and update SEO tasks, add comments, manage tags and tag rules, save Smart Views and log annotations. 43 tools on a hosted, secure OAuth connector — part of the SEOcrawl SEO + GEO platform (https://seocrawl.ai/mcp).
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- SEO Rank Tracking & Keyword Research
- Secondary Subcategories
- None listed
- Brand
- SEOcrawl
- Access
- Account required
- First tracked
- 2026-09-14
- Tool count
- 43
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT SEO Rank Tracking & Keyword Research
View Category43 tools agents can invoke
Create an annotation (chart note) on a property. Requires property (the property UUID or sc-domain URL from list_properties), date (Y-m-d) and note (the annotation text). Optional: description (longer body), category (an existing category name or UUID), taskId (a task UUID to link, from list_tasks). Scope: context controls which URLs the note applies to — sitewide (default, whole property), single (one URL, pass exactly one in urls), or list_of_urls (several explicit URLs in urls; alias: several). urls is a list of full http(s) URLs, required for single/list_of_urls and must be empty for sitewide. The annotation is created as a custom note authored by the calling user. Requires the annotations:write scope. Cost: free. Examples: ```json // create a sitewide note on a single date {"property":"sc-domain:example.com","date":"2026-05-01","note":"Published the new pricing page","description":"Launched the revamped pricing page with annual plans."} ```
Add a comment to a task. ticket_id accepts UUID, ticket slug, or a full browser task URL (property optional when ticket_id is a URL). Cost: 1 credit per call. Examples: ```json // add a comment to a task by its UUID {"ticketId":"00000000-0000-0000-0000-000000000001","body":"Reviewed the draft, looks good to ship.","property":"sc-domain:example.com"} ```
Manually apply a tag to specific keywords and/or pages, on top of any auto-assignment rules. Pass keywords (exact keyword strings → tags them as a keyword tag) and/or urls (exact page URLs → tags them as a page tag); at least one is required. The tag is created for the relevant type if it does not exist yet. Use remove_tag to undo. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // tag a single keyword with the Brand tag {"property":"sc-domain:example.com","tag":"Brand","keywords":["example brand"]} ```
Compare two Google Search Console date ranges for a property. Period A accepts a preset (last_7_days, last_28_days, last_3_months, last_year) or absolute dates (periodAFrom/periodATo in Y-m-d). Period B is always absolute (periodBFrom/periodBTo). Returns per-metric clicks/impressions/ctr/position with values for both periods plus diff and change_pct. Optional filters: country (ISO-3166 alpha-3, e.g. "usa") and device ("desktop"/"mobile"/"tablet") compare that slice only; the applied filters are echoed back under "filters". Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 6 credits per call. Examples: ```json // compare two absolute Search Console periods for mobile traffic {"property":"sc-domain:example.com","periodAFrom":"2026-05-01","periodATo":"2026-05-28","periodBFrom":"2026-04-01","periodBTo":"2026-04-28","device":"mobile"} ```
Compare two Google Analytics 4 date ranges for a property. Period A accepts a preset (last_7_days, last_28_days, last_3_months, last_year) or absolute dates (periodAFrom/periodATo in Y-m-d). Period B is always absolute (periodBFrom/periodBTo). Returns per-metric sessions/users/new_users/conversions/engagement_rate with values for both periods plus diff and change_pct. `data_start_date` is the earliest synced day, so a 0 for either period that predates it reads as a coverage gap, not a real zero; the latest synced day is the `data_freshness.last_complete_date` on every response. Pass the project ID (UUID) or URL from list_ga4_properties. Cost: 6 credits per call. Examples: ```json // compare two absolute GA4 periods for a property {"property":"sc-domain:example.com","periodAFrom":"2026-05-01","periodATo":"2026-05-28","periodBFrom":"2026-04-01","periodBTo":"2026-04-28"} ```
Create a Smart View on a property from a set of tags. A Smart View is a named, saved tag selection that appears in the SEOcrawl UI exactly like a natively-created one and can be edited there. type is "keyword" (a view over keywords, using keyword tags) or "page" (a view over pages, using page tags). tags is the list of tag names to include — read them from list_tags. Returns the created view with view_id, name, type and tags. Use list_smart_views to read them back and delete_smart_view to remove one. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // create a keyword Smart View grouping the Brand tag {"property":"sc-domain:example.com","name":"Brand keywords","tags":["Brand"],"type":"keyword"} ```
Create a tag on a property. type is "keyword" (tags keywords), "url" (tags pages) or "both" (creates one of each). Optional color is a hex string (e.g. "#3366ff") used by the SEOcrawl UI. Tag identity is name + type, so creating an existing tag just updates its color. Returns the created tag(s) with tag_id, name, type and color. Use list_tags to read them back and the tags filter on get_top_keywords / get_top_pages / list_winners_losers to query by them. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // create a keyword tag named Brand with a custom color {"property":"sc-domain:example.com","name":"Brand","type":"keyword","color":"#3366ff"} ```
Create an auto-assignment rule that tags every matching keyword or page — current and future. field is "keyword" or "url"; match is contains | not_contains | exact | starts_with | ends_with | regex; value is the pattern (a safe RE2 regex when match=regex). Example: field=keyword, match=contains, value="chess" tags every keyword containing "chess". The rule applies worldwide (all countries). Tagging of existing items runs asynchronously, so the tag/members may take a moment to appear in list_tags; the rule itself is created immediately. One rule per tag+field. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // auto-tag every keyword containing the brand term {"property":"sc-domain:example.com","tag":"Brand","field":"keyword","match":"contains","value":"example brand"} ```
Create a task on a property. Requires title. Optional: description, assignee user id, priority (1-5, default 3), taskbox (column UUID or a status keyword: todo, in_progress, qa, done — case-insensitive; default TO-DO column), due_date (YYYY-MM-DD, the task Goal Date). Cost: 2 credits per call. Examples: ```json // create a task in the TO-DO column with a goal date {"property":"sc-domain:example.com","title":"Optimize the pricing page meta description","taskbox":"todo","dueDate":"2026-05-28"} ```
Delete a custom annotation (chart note) by its id. Pass annotationId (the UUID returned by add_annotation or list_annotations). Only custom notes on a property you can edit are deletable — official/global notes are rejected. Returns { id, deleted: true }. Requires the annotations:write scope. Cost: free. Examples: ```json // delete a custom annotation by its UUID {"annotationId":"00000000-0000-0000-0000-000000000001"} ```
Delete a Smart View from a property. viewId is the view_id returned by create_smart_view / list_smart_views. Only Smart Views are deletable through this tool — a regular applied filter id returns not_found. Deletion is permanent and removes the view from the SEOcrawl UI too; the underlying tags are not affected. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // delete a Smart View by its id {"property":"sc-domain:example.com","viewId":"00000000-0000-0000-0000-000000000001"} ```
Delete a tag from a property entirely: unassigns it from every keyword/page and removes the tag itself. type is "keyword", "url" or "both". The built-in Brand / Non-Brand tags cannot be deleted. This does not delete auto-assignment rules that target the tag (use delete_tag_rule for those). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // Delete a custom tag from both keywords and pages. {"property":"sc-domain:example.com","name":"Brand","type":"both"} ```
Delete an auto-assignment rule by its rule_id (from list_tag_rules). This stops future auto-tagging for that pattern; keywords/pages already carrying the tag keep it (use remove_tag or delete_tag to unassign). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // Delete one auto-tagging rule by its rule_id. {"property":"sc-domain:example.com","ruleId":"00000000-0000-0000-0000-000000000001"} ```
Get a single annotation (chart note) by its id. Pass annotationId (the UUID returned by add_annotation or list_annotations). Returns the date (Y-m-d), note text, description, category, linked task_id, author email, and the property it belongs to (null for global/official notes). Use list_annotations to find an id. Cost: free. Examples: ```json // Fetch one annotation by the UUID from list_annotations. {"annotationId":"00000000-0000-0000-0000-000000000001"} ```
List comments of a task, with nested replies. ticket_id accepts UUID, ticket slug, or a full browser task URL (property optional when ticket_id is a URL). Cost: 1 credit per call. Examples: ```json // List comments and replies for one task. {"ticketId":"00000000-0000-0000-0000-000000000001","property":"sc-domain:example.com"} ```
Get AI/LLM referral traffic for a Google Analytics 4 property, broken down by engine (ChatGPT, OpenAI, Perplexity, Gemini, Claude, Copilot, Deepseek, …) detected from the GA4 session source/medium. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or absolute dates (from/to in Y-m-d), with the immediately preceding period for comparison. Each engine returns sessions, key events, average session duration and the percentage change of each vs the previous period. Pass the project ID (UUID) or URL from list_ga4_properties. Cost: 3 credits per call. Examples: ```json // AI/LLM referral traffic for the last 28 days. {"property":"sc-domain:example.com","range":"last_28_days"} ```
Get Google Analytics 4 summary metrics (sessions, users, new users, conversions, engagement rate, sessions per user) for a property over a date range, with the immediately preceding period for comparison. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Each metric returns current, prev and delta. `data_synced` is false when the property has no synced GA4 data yet, so an all-zero result is not mistaken for real zeros. `data_start_date` is the earliest synced day: when the requested range — or its preceding period — predates it, the zeros are a coverage gap, not real zeros (e.g. a prev of 0 because the previous period is before `data_start_date`). The latest synced day is the `data_freshness.last_complete_date` on every response. Pass the project ID (UUID) or URL from list_ga4_properties. Cost: 3 credits per call. Examples: ```json // GA4 summary metrics for the last 28 days vs the prior period. {"property":"sc-domain:example.com","range":"last_28_days"} ```
Get Google Analytics 4 traffic (sessions) for a property broken down by acquisition source. Set dimension to "source_medium" (default) for session source/medium, or "channel" for the GA4 default channel grouping. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or absolute dates (from/to in Y-m-d). Rows are sorted by sessions descending and capped by `limit` (default 25, max 100); each row returns name, sessions and share_pct — the share of sessions attributed to that dimension for the period. Note: for source_medium the attributed sessions total can be slightly below the property's overall sessions (a GA4 attribution-scope quirk), so share_pct is relative to that attributed total, not to total property sessions; the channel dimension matches the overall sessions total. `data_synced` is false when the property has no synced GA4 data yet. Pass the project ID (UUID) or URL from list_ga4_properties. Cost: 3 credits per call. Examples: ```json // GA4 sessions by default channel grouping for the last 28 days. {"property":"sc-domain:example.com","range":"last_28_days","dimension":"channel"} ```
Get Google Search Console summary metrics (clicks, impressions, CTR, position) for a property. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Optional filters: country (ISO-3166 alpha-3, e.g. "usa") and device ("desktop"/"mobile"/"tablet") return totals for that slice only; the applied filters are echoed back under "filters". Also returns a branded_breakdown that splits keyword-level clicks/impressions/ctr/position into branded vs non-branded (driven by the property Brand tag; null when no Brand tag is configured). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 3 credits per call. Examples: ```json // GSC summary for US traffic over the last 28 days. {"property":"sc-domain:example.com","range":"last_28_days","country":"usa"} ```
Get daily Google Search Console metrics (clicks, impressions, CTR, position) for one or more search query keywords within a property. Pass a single keyword (keyword) or up to 50 at once (keywords array — mutually exclusive with keyword); the bulk form returns a results array with one daily series per keyword, keyed by the input. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 3 credits per call. Examples: ```json // Daily GSC metrics for a single keyword over the last 28 days. {"property":"sc-domain:example.com","keyword":"best running shoes","range":"last_28_days"} ```
Get daily Google Search Console metrics (clicks, impressions, CTR, position) for one or more page URLs within a property. Pass a single page (url) or up to 50 at once (urls array — mutually exclusive with url); the bulk form returns a results array with one daily series per URL, keyed by the input. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 3 credits per call. Examples: ```json // Daily GSC metrics for a single page over the last 28 days. {"property":"sc-domain:example.com","url":"https://example.com/pricing","range":"last_28_days"} ```
Get the AI Tracker (Brand Radar) visibility detail for a single prompt: per-engine mention rate with the trend vs the immediately preceding period. For each engine it returns runs (engine executions in range), mentions (runs where the brand was mentioned), mention_rate (%), prev_mention_rate (%) and mention_rate_delta (percentage points). totals aggregate across engines. Use list_prompts to find prompt_id, list_prompt_runs to read individual answers and list_prompt_citations for cited sources. Date range: a preset (last_7_days, last_28_days, last_3_months, last_year) or absolute from/to (Y-m-d); defaults to last_28_days. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 2 credits per call. Examples: ```json // per-engine mention rate and trend for one prompt over the last 28 days {"property":"sc-domain:example.com","promptId":"00000000-0000-0000-0000-000000000001","range":"last_28_days"} ```
Get a single task. ticket_id accepts UUID, ticket slug, or a full browser task URL (property optional when ticket_id is a URL). Cost: 1 credit per call. Examples: ```json // Fetch one task by its ticket_id within a property. {"ticketId":"00000000-0000-0000-0000-000000000001","property":"sc-domain:example.com"} ```
List top keywords of a property ranked by a chosen metric with period-over-period comparison. Accepts date range presets (last_7_days, last_28_days, last_3_months, last_year) or absolute dates (from/to). Optional filters: country, device, search_type (web), position_min/max, branded (true|false), tags (array of tag names from list_tags — keeps only keywords carrying any of those tags). position_min/position_max keep only keywords whose current-period average position falls in that range, applied regardless of sort (e.g. quick-wins 4-10, striking-distance 11-20); not combinable with country/device yet. tags cannot be combined with branded. Returns all four metrics per keyword (position is always present), a property-level summary (including a branded_breakdown splitting totals into branded vs non-branded), and cursor pagination. Pass property ID or sc-domain URL from list_properties. Cost: 5 credits per call. Examples: ```json // Top 25 keywords by clicks over the last 28 days. {"property":"sc-domain:example.com","range":"last_28_days","sortBy":"clicks","limit":25} ```
List top pages of a property ranked by a chosen metric with period-over-period comparison. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Sort by clicks, impressions, position, or ctr. Returns all four metrics per page (clicks, impressions, ctr, position — each with current value, previous-period value, diff, and change_pct) and cursor pagination. Optional filters: country (ISO-3166 alpha-3, e.g. "usa"), device ("desktop"/"mobile"/"tablet"), position_min/position_max to keep only pages whose current-period average position falls in that range (applied regardless of sort, not combinable with country/device yet), and tags (array of page tag names from list_tags — keeps only pages carrying any of those tags). Position is returned on every row. The applied filters are echoed back under "filters". Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 5 credits per call. Examples: ```json // Top 25 pages by clicks over the last 28 days. {"property":"sc-domain:example.com","range":"last_28_days","sortBy":"clicks","limit":25} ```
Report the live health of the MCP backend per surface (gsc, ga4, site_audit, ai_tracker, task_board) and per backing store (mysql, clickhouse, mongodb, redis). Each entry is {status: ok|degraded|down, last_check_at, sample_error}. Poll this before launching a multi-step workflow so a broken endpoint is visible up front. Takes no arguments. Cost: free. Examples: ```json // check backend health before running a workflow [] ```
List annotations (chart notes) for a property within a date range, newest first. Pass property (the UUID or sc-domain URL from list_properties). Date range: either range (last_7_days, last_28_days, last_3_months, last_year) or absolute from/to (Y-m-d); defaults to last_3_months when omitted. Optional: search (substring match on the note text), page and limit (pagination; limit capped at 200). Use a returned id with get_annotation for full detail. Cost: free. Examples: ```json // Recent annotations for a property over the last 3 months. {"property":"sc-domain:example.com","range":"last_3_months","limit":25} ```
List the Google Analytics 4 properties connected to the authenticated user's projects. Each entry returns the project `id` and `url` (use either as the `property` argument for the other GA4 tools), the human title, the underlying GA4 `ga4_property_id`, and `connected_at`. Only projects with a connected GA4 property are returned. Cost: 1 credit per call. Examples: ```json // List all GA4 properties connected to the authenticated user. [] ```
List the search query keywords that drive clicks/impressions to a specific page URL of a property, ranked by a chosen metric with period-over-period comparison. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Sort by clicks, impressions, position, or ctr. Returns all four metrics per keyword, a page-level summary, and cursor pagination (pass the returned next_cursor to fetch the next page). position_min/position_max keep only keywords whose current-period average position falls in that range, applied regardless of sort (position is returned on every row). The optional country/device parameters are accepted and echoed in filters but not yet applied to results. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties, and the full page URL. Cost: 5 credits per call. Examples: ```json // Keywords driving traffic to a page over the last 28 days. {"property":"sc-domain:example.com","url":"https://example.com/pricing","range":"last_28_days","sortBy":"clicks"} ```
List the pages (URLs) of a property that earn clicks/impressions for a specific search query keyword, ranked by a chosen metric with period-over-period comparison. Accepts a date range as presets (last_7_days, last_28_days, last_3_months, last_year) or as absolute dates (from/to in Y-m-d format). Sort by clicks, impressions, position, or ctr. Returns all four metrics per page, a keyword-level summary, and cursor pagination (pass the returned next_cursor to fetch the next page). position_min/position_max keep only pages whose current-period average position falls in that range, applied regardless of sort (position is returned on every row). The optional country/device parameters are accepted and echoed in filters but not yet applied to results. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 5 credits per call. Examples: ```json // Pages ranking for a keyword over the last 28 days. {"property":"sc-domain:example.com","keyword":"best running shoes","range":"last_28_days","sortBy":"clicks"} ```
List the sources the AI engines cited when answering a single AI Tracker (Brand Radar) prompt, aggregated over the date range. Returns own_domain (the property domain), domains (each cited host with is_own_domain and url_count, ordered by first appearance) and urls (each cited URL with its domain and is_own_domain) — so you can see which pages earn citations and which competitors win them. Use list_prompt_runs for the individual answers. Date range: a preset (last_7_days, last_28_days, last_3_months, last_year) or absolute from/to (Y-m-d); defaults to last_28_days. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 2 credits per call. Examples: ```json // cited domains and URLs for one prompt over the last 28 days {"property":"sc-domain:example.com","promptId":"00000000-0000-0000-0000-000000000001","range":"last_28_days"} ```
List the individual AI Tracker (Brand Radar) runs for a single prompt — one row per engine execution. Each item has run_id, date (ISO-8601), engine, mentioned / mentioned_in_text flags and a response_excerpt (up to 600 chars of the AI answer, with response_truncated when cut). Use get_prompt_detail for the aggregate per-engine mention rate and list_prompt_citations for the cited sources. Optional engine (chatgpt, openai, claude, anthropic, gemini, perplexity; chatgpt/openai and claude/anthropic are the same engine) filters to one engine. Date range: a preset (last_7_days, last_28_days, last_3_months, last_year) or absolute from/to (Y-m-d); defaults to last_28_days. Ordered oldest-first; paginated via limit (max 200) and the opaque next_cursor. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 2 credits per call. Examples: ```json // the individual runs of one prompt over the last 28 days {"property":"sc-domain:example.com","promptId":"00000000-0000-0000-0000-000000000001","range":"last_28_days","limit":25} ```
List the AI Tracker (Brand Radar) prompts a property is tracking. Each item has prompt_id, prompt_text, engines_tracked (the LLM engines the prompt runs against), last_run_at (ISO-8601, all-time most recent run, null if never run) and runs_in_range (number of recorded engine executions inside the date window). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Date range scopes runs_in_range only (not which prompts are returned): either range (last_7_days, last_28_days, last_3_months, last_year) or absolute from/to (Y-m-d); defaults to last_28_days when omitted. Optional engine (chatgpt, openai, claude, anthropic, gemini, perplexity) filters to prompts tracking that engine (chatgpt/openai and claude/anthropic are treated as the same engine). Optional q filters to prompts whose text contains it (case-insensitive substring). For per-engine mention rate use get_prompt_detail, for individual answers list_prompt_runs, for cited sources list_prompt_citations. Paginated via limit (max 200) and the opaque next_cursor in the response. Cost: 2 credits per call. Examples: ```json // AI Tracker prompts mentioning "books" over the last 28 days. {"property":"sc-domain:example.com","range":"last_28_days","q":"books","limit":25} ```
List GSC properties (projects) available to the authenticated user. Cost: 1 credit per call. Examples: ```json // list every GSC property the authenticated user can access. [] ```
List the keyword and page Smart Views defined for a property. Each item carries view_id, name, type (keyword|page) and the tag names it groups. Use create_smart_view to add one and delete_smart_view to remove one; per-tag member counts are available from list_tags. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // list every keyword and page Smart View defined for the property. {"property":"sc-domain:example.com"} ```
List the auto-assignment rules of a property — the patterns that tag keywords/pages automatically (see create_tag_rule). Optionally filter by tag. Each rule returns rule_id, tag, field (keyword|url), country and its conditions (match + value). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // list the auto-assignment rules targeting the Priority Pages tag. {"property":"sc-domain:example.com","tag":"Priority Pages"} ```
List the tags defined for a property — both keyword tags and page tags — so agents can slice GSC data by a custom taxonomy. Each item carries tag_id, name, type (keyword|page), color, rule_count (auto-assignment rules targeting the tag) and member_count (keywords or pages currently carrying it). Pass the returned tag names to the "tags" filter on get_top_keywords, get_top_pages and list_winners_losers. Provide the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // list every keyword and page tag defined for the property. {"property":"sc-domain:example.com"} ```
List the task board columns (taskboxes) for a property: id, name, status (todo/in_progress/done) and order. Use a returned taskbox id (or the status keyword) with create_task/update_task to move a task into that column — including the usually-empty DONE column. Cost: 1 credit per call. Examples: ```json // list the task board columns for the property. {"property":"sc-domain:example.com"} ```
List tasks for a property. Filter by status (open/done), assignee user id, taskbox (column UUID or a status keyword: todo, in_progress, qa, done), parent (a ticket UUID, slug, or browser URL — returns that ticket's subtasks), or q (case-insensitive title search, min 2 chars). Paginated via next_cursor in the response. Cost: 2 credits per call. Examples: ```json // list open tasks in the IN PROGRESS column. {"property":"sc-domain:example.com","status":"open","taskbox":"in_progress","limit":25} ```
List the biggest movers (winners and losers) of a property between two periods, with deltas pre-computed so agents skip drilling each item. Choose dimension=keywords or pages and metric=clicks|impressions|position. Period A accepts a preset (last_7_days, last_28_days, last_3_months, last_year) or absolute dates (periodAFrom/periodATo in Y-m-d). Period B is optional: when omitted it defaults to the period of the same length immediately preceding period A; pass periodBFrom/periodBTo for an arbitrary comparison window. direction=up returns gainers, down returns decliners, both returns the largest movers either way. For position a lower value is better, so a positive diff always means improvement. Optional filters: country (ISO-3166 alpha-3, e.g. "usa") and device ("desktop"/"mobile"/"tablet") rank movers within that slice only; position_min/position_max keep only movers whose period-A average position falls in that range (not combinable with country/device yet); tags (array of tag names from list_tags, matched against the chosen dimension — keyword tags for dimension=keywords, page tags for dimension=pages) keeps only movers carrying any of those tags. The applied filters are echoed back under "filters". Results are sorted by diff and capped at limit. Note: an item must have data in period A to appear, so entities that dropped to zero in period A are not listed. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 5 credits per call. Examples: ```json // biggest keyword click decliners over the last 28 days vs the prior period. {"property":"sc-domain:example.com","dimension":"keywords","range":"last_28_days","metric":"clicks","direction":"down","limit":25} ```
Find pages from the site audit (crawler) that match technical SEO criteria. Use this to answer questions like "which pages have no canonical tag?", "list all 404 pages", or "show pages missing an H1". Filters: status_code (e.g. 404), no_canonical (true → pages with missing canonical tag), missing_h1 (true → pages missing H1 heading), check_title (any audit check title as shown in the UI, e.g. "Title Tag too short"). Sorting: health (default), status_code, url, depth. Returns url, status_code, title, indexability, performance_score (= health), last_crawled_at, count_errors, count_warnings, check_description (when a check filter is active). Requires at least one completed crawl for the property. Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 5 credits per call. Examples: ```json // list 404 pages found by the latest site audit crawl. {"property":"sc-domain:example.com","statusCode":404,"limit":25} ```
Remove a tag from specific keywords and/or pages (the inverse of apply_tag). Pass keywords (exact keyword strings) and/or urls (exact page URLs); at least one is required. This only unassigns the tag from those items — it does not delete the tag itself or touch auto-assignment rules (use delete_tag to remove a tag entirely). Pass the property ID (UUID) or URL (sc-domain:...) from list_properties. Cost: 1 credit per call. Examples: ```json // unassign the Priority Pages tag from a single page. {"property":"sc-domain:example.com","tag":"Priority Pages","urls":["https://example.com/pricing"]} ```
Partially update a task. ticket_id accepts UUID, ticket slug, or a full browser task URL (property optional when ticket_id is a URL). Provide any combination of title, description, assignee (user id), priority (1-5), taskbox (column UUID or a status keyword: todo, in_progress, qa, done — case-insensitive, e.g. taskbox="done" moves the task to the DONE column), due_date (YYYY-MM-DD, the task Goal Date), unassign=true to clear assignee, or clear_due_date=true to clear the due date. Cost: 2 credits per call. Examples: ```json // move a task to the IN PROGRESS column and set its priority. {"ticketId":"00000000-0000-0000-0000-000000000001","property":"sc-domain:example.com","taskbox":"in_progress","priority":3} ```
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are SEOcrawl AI alternatives on ChatGPT?
As of 2026-09-14, SEOcrawl AI competes with Able SEO by VibeSEO, AccuRanker Search Intelligence, Advanced Web Ranking, Ahrefs, Appskyline, Grow My Website, GSC SEO & Content Planner, GSC Wizard, Keyword.com, PagePulse, SE Ranking, Semji, Semrush, SEO with Distribb, Serpstat, SignalSumo, SiteGuru, Ubersuggest, vidIQ, Windsor.ai Search Console, ラッコキーワード in ChatGPT SEO Rank Tracking & Keyword Research, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.