Developers

Zinn® SEO abilities reference

Zinn® SEO registers its actions with the WordPress Abilities API. The same abilities are MCP tools on the site's own server and REST routes under /wp-json/wp-abilities/v1. This page is generated from the plugin's own registry.

User guide: connect an AI app

Endpoints

MCP over HTTP (streamable)

https://example.com/wp-json/zinn-seo/v1/mcp

MCP over WP-CLI (standard input and output)

wp mcp-adapter serve --server=zinn-seo --user=<login>

REST: list the abilities

/wp-json/wp-abilities/v1/abilities?category=zinn-seo

REST: run an ability

/wp-json/wp-abilities/v1/abilities/<name>/run

Authentication and permissions

HTTP requests authenticate with a WordPress application password (HTTP Basic). Connecting to the MCP server needs the capability shown below; every ability then checks its own permission, per object. Read-only abilities run with GET and their input in the query string; the others with POST and a JSON body {"input": {…}}.

Examples

# REST: run an ability
curl -u your-username:your-application-password \
  "https://example.com/wp-json/wp-abilities/v1/abilities/zinn-seo/export-settings/run"
# MCP (JSON-RPC over HTTP, after "initialize")
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"zinn-seo-export-settings","arguments":{}}}

All abilities

Generated from the plugin's abilities.json, which is itself generated from a running site; a test fails when the two disagree.

AbilityWhat it doesEditionRESTPermissionParameters
zinn-seo/accept-import
zinn-seo-accept-import
Accept the differences
Accepts the differences found as intended.
Free editionPOST …/abilities/zinn-seo/accept-import/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/add-content-ideas
zinn-seo-add-content-ideas
Add ideas to the content plan (Pro)
Adds up to 100 ideas to the content plan. Each idea has a working title, and may have a phrase, an angle, a kind, a due date (YYYY-MM-DD), a keyword list, a length in words and a voice.
Pro editionPOST …/abilities/zinn-seo/add-content-ideas/runthe REST route's own per-item permission checkideas: array (required), dry_run: boolean
zinn-seo/add-linked-site
zinn-seo-add-linked-site
Add one of your other sites (Agency)
Adds another site the owner runs (url, label). Its public posts and pages are read in the background for link suggestions.
Pro editionPOST …/abilities/zinn-seo/add-linked-site/runthe REST route's own per-item permission checkurl: string (required), label: string, dry_run: boolean
zinn-seo/advance-seo-tests
zinn-seo-advance-seo-tests
Move SEO tests on (Pro)
Moves running tests to their next phase when it is due, and returns them.
Pro editionPOST …/abilities/zinn-seo/advance-seo-tests/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/analyse-page
zinn-seo-analyse-page
Analyse a page draft
Runs the checks on draft values (content, title, slug, focus keyphrase, SEO title and description …) and returns the results; store true keeps the score.
Free editionPOST …/abilities/zinn-seo/analyse-page/runthe REST route's own per-item permission checkid: string (required), content: string, title: string, slug: string, excerpt: string, seo_title: string, seo_desc: string, focus: string, related: string, cornerstone: boolean, noindex: boolean, store: boolean, dry_run: boolean
zinn-seo/apply-search-suggestion
zinn-seo-apply-search-suggestion
Apply a title or description (Pro)
Sets a page's (post_id) SEO title or description (field) to a value.
Pro editionPOST …/abilities/zinn-seo/apply-search-suggestion/runthe REST route's own per-item permission checkpost_id: integer (required), field: title|desc (required), value: string (required), dry_run: boolean
zinn-seo/ask-seo-data
zinn-seo-ask-seo-data
Ask your SEO data a question (Pro)
Answers a question in plain words from this site's own SEO data (question; history: the conversation so far).
Pro editionPOST …/abilities/zinn-seo/ask-seo-data/runthe REST route's own per-item permission checkquestion: string (required), history: array, dry_run: boolean
zinn-seo/assign-keyword-list
zinn-seo-assign-keyword-list
Give a keyword list to posts
Gives a keyword list to posts (add: post ids) or takes it off them (remove: post ids). Only posts the person may edit change.
Free editionPOST …/abilities/zinn-seo/assign-keyword-list/runthe REST route's own per-item permission checkid: string (required), add: array, remove: array, dry_run: boolean
zinn-seo/begin-import
zinn-seo-begin-import
Start a move from another SEO plugin
Starts copying from a source plugin in the background (source, overwrite).
Free editionPOST …/abilities/zinn-seo/begin-import/runthe REST route's own per-item permission checksource: string (required), overwrite: boolean, dry_run: boolean
zinn-seo/build-semantic-index
zinn-seo-build-semantic-index
Index the site for meaning-based links (Pro)
Builds the meaning-based link index in the background.
Pro editionPOST …/abilities/zinn-seo/build-semantic-index/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/bulk-apply-fields
zinn-seo-bulk-apply-fields
Set one value on every matching page
Sets the same fields on every post or term matching the filters, in the background, as one batch that can be undone.
Free editionPOST …/abilities/zinn-seo/bulk-apply-fields/runthe REST route's own per-item permission checkobject: post|term, type: string, status: string, search: string, missing: string, robots: string, discover: boolean, term: integer, fields: object (required), dry_run: boolean
zinn-seo/bulk-redirects
zinn-seo-bulk-redirects
Change many redirects
Deletes, enables, disables or groups the redirects with these ids.
Free editionPOST …/abilities/zinn-seo/bulk-redirects/runthe REST route's own per-item permission checkids: array (required), action: delete|enable|disable|group (required), group: string, dry_run: boolean
zinn-seo/bulk-update-fields
zinn-seo-bulk-update-fields
Change SEO fields of many pages
Saves the fields of many posts or terms at once (rows: id and fields). Each row is checked as on the editor screen; every change can be undone as one batch.
Free editionPOST …/abilities/zinn-seo/bulk-update-fields/runthe REST route's own per-item permission checkobject: post|term, rows: array (required), dry_run: boolean
zinn-seo/cancel-scheduled-change
zinn-seo-cancel-scheduled-change
Cancel a scheduled change (Pro)
Cancels one scheduled change of a page.
Pro editionPOST …/abilities/zinn-seo/cancel-scheduled-change/runthe REST route's own per-item permission checkid: string (required), entry: string (required), dry_run: boolean
zinn-seo/check-all-pages-indexed
zinn-seo-check-all-pages-indexed
Check every page is indexed
Starts, pauses, resumes or cancels an index check of every page, on credits.
Free editionPOST …/abilities/zinn-seo/check-all-pages-indexed/runthe REST route's own per-item permission checkaction: start|pause|resume|cancel, dry_run: boolean
zinn-seo/check-content-coverage
zinn-seo-check-content-coverage
Check a draft against its guidelines (Pro)
Scores text (or the saved post) against one post's guidelines: each term marked missing, too few, too many or right, and the heading count.
Pro editionPOST …/abilities/zinn-seo/check-content-coverage/runthe REST route's own per-item permission checkpost: integer (required), text: string, headings: integer, dry_run: boolean
zinn-seo/check-domain-move
zinn-seo-check-domain-move
Check a move from another domain
Checks what moving from another domain (from) to this site needs: which old addresses redirect where.
Free editionGET …/abilities/zinn-seo/check-domain-move/runmanage_options (the REST route's own check)from: string (required)
zinn-seo/check-import
zinn-seo-check-import
Compare pages before switching
Compares real pages with both plugins to prove nothing is lost (keep: keep the comparison).
Free editionPOST …/abilities/zinn-seo/check-import/runthe REST route's own per-item permission checkkeep: boolean, dry_run: boolean
zinn-seo/check-index
zinn-seo-check-index
Check if Google indexed an address
Inspects one address in Search Console (url).
Free editionPOST …/abilities/zinn-seo/check-index/runthe REST route's own per-item permission checkurl: string (required), dry_run: boolean
zinn-seo/check-originality
zinn-seo-check-originality
Check a draft for copied text (Pro)
Checks a post or pasted text for sentences copied from other sites, on the site owner's Zinn® credits (post or text; count: sentences).
Pro editionPOST …/abilities/zinn-seo/check-originality/runedit_post (the REST route's own check)post: integer, text: string, count: integer, dry_run: boolean
zinn-seo/check-pages-after-update
zinn-seo-check-pages-after-update
Check the pages' SEO output
Reads the home page and newest posts and pages again and reports any title, description, canonical, robots or structured data that changed.
Pro editionPOST …/abilities/zinn-seo/check-pages-after-update/runupdate_plugins (the REST route's own check)dry_run: boolean
zinn-seo/check-pages-indexed
zinn-seo-check-pages-indexed
Check pages are indexed
Checks whether addresses (urls) are in Google's index, on credits.
Free editionPOST …/abilities/zinn-seo/check-pages-indexed/runthe REST route's own per-item permission checkurls: array (required), dry_run: boolean
zinn-seo/check-redirects
zinn-seo-check-redirects
Check redirects
Checks every redirect for chains and loops, and (targets) whether targets answer.
Free editionPOST …/abilities/zinn-seo/check-redirects/runthe REST route's own per-item permission checktargets: boolean, dry_run: boolean
zinn-seo/check-server-rules
zinn-seo-check-server-rules
Check server rules (Pro)
Checks draft server rules (text) without saving them.
Pro editionPOST …/abilities/zinn-seo/check-server-rules/runthe REST route's own per-item permission checktext: string (required), dry_run: boolean
zinn-seo/check-site-index
zinn-seo-check-site-index
Check the whole site's index
Starts, pauses, resumes or cancels inspecting every page in Search Console.
Free editionPOST …/abilities/zinn-seo/check-site-index/runthe REST route's own per-item permission checkaction: start|pause|resume|cancel (required), dry_run: boolean
zinn-seo/choose-ai-model
zinn-seo-choose-ai-model
Choose the AI model for a task
Chooses the model one AI task (feature: writer, proofread or image) uses (choice, one of the models listed for it; empty goes back to the automatic choice).
Free editionPOST …/abilities/zinn-seo/choose-ai-model/runthe REST route's own per-item permission checkfeature: writer|proofread|image (required), choice: string (required), dry_run: boolean
zinn-seo/choose-google-properties
zinn-seo-choose-google-properties
Choose the Google properties
Chooses the Search Console property and Analytics stream this site reports on.
Free editionPOST …/abilities/zinn-seo/choose-google-properties/runthe REST route's own per-item permission checksearch_console_property: string, analytics_property: string, business_location: string, dry_run: boolean
zinn-seo/clear-missing-pages
zinn-seo-clear-missing-pages
Clear the missing pages log
Deletes one entry (hash) or every entry (all) of the 404 log.
Free editionPOST …/abilities/zinn-seo/clear-missing-pages/runthe REST route's own per-item permission checkkind: 404|404b, hash: string, all: boolean, dry_run: boolean
zinn-seo/clear-site-searches
zinn-seo-clear-site-searches
Clear the site search log
Deletes one entry (hash) or every entry (all).
Free editionPOST …/abilities/zinn-seo/clear-site-searches/runthe REST route's own per-item permission checkkind: search|search0, hash: string, all: boolean, dry_run: boolean
zinn-seo/comment-on-task
zinn-seo-comment-on-task
Comment on an SEO task (Agency)
Adds a comment (text) to a task.
Pro editionPOST …/abilities/zinn-seo/comment-on-task/runthe REST route's own per-item permission checkid: string (required), text: string (required), dry_run: boolean
zinn-seo/complete-task
zinn-seo-complete-task
Mark an SEO task done (Agency)
Marks a task done, or open again with done false.
Pro editionPOST …/abilities/zinn-seo/complete-task/runthe REST route's own per-item permission checkid: string (required), done: boolean, dry_run: boolean
zinn-seo/connect-bing
zinn-seo-connect-bing
Connect Bing Webmaster Tools
Connects Bing with the site owner's Bing API key (key). The key is never returned.
Free editionPOST …/abilities/zinn-seo/connect-bing/runthe REST route's own per-item permission checkkey: string (required), dry_run: boolean
zinn-seo/connect-edge
zinn-seo-connect-edge
Connect Cloudflare (Pro)
Connects Cloudflare with the owner's API token (token). The token is never returned.
Pro editionPOST …/abilities/zinn-seo/connect-edge/runthe REST route's own per-item permission checktoken: string (required), dry_run: boolean
zinn-seo/connect-support
zinn-seo-connect-support
Connect to support
Connects this site to Zinn Digital® support (name, email, consent).
Free editionPOST …/abilities/zinn-seo/connect-support/runmanage_options (the REST route's own check)email: string (required), name: string, consent: boolean (required), dry_run: boolean
zinn-seo/control-ai-bulk
zinn-seo-control-ai-bulk
Pause, resume or cancel an AI bulk run (Pro)
Controls a running AI job (job, action).
Pro editionPOST …/abilities/zinn-seo/control-ai-bulk/runthe REST route's own per-item permission checkjob: ai-bulk|ai-accept|ai-map (required), action: pause|resume|cancel (required), dry_run: boolean
zinn-seo/control-job
zinn-seo-control-job
Start, pause, resume or cancel a background job
Runs action (start, pause, resume or cancel) on one background job (id).
Free editionPOST …/abilities/zinn-seo/control-job/runthe REST route's own per-item permission checkid: string (required), action: start|pause|resume|cancel (required), dry_run: boolean
zinn-seo/copy-import
zinn-seo-copy-import
Copy from another SEO plugin
Copies a source plugin's data now (source, overwrite).
Free editionPOST …/abilities/zinn-seo/copy-import/runthe REST route's own per-item permission checksource: string (required), overwrite: boolean, dry_run: boolean
zinn-seo/count-import
zinn-seo-count-import
Count what a move would copy
Counts what moving from a source plugin would copy (source, overwrite). Nothing changes.
Free editionPOST …/abilities/zinn-seo/count-import/runthe REST route's own per-item permission checksource: string (required), overwrite: boolean, dry_run: boolean
zinn-seo/create-faq-from-questions
zinn-seo-create-faq-from-questions
Turn questions into an FAQ
Creates an FAQ block draft (items: question and answer; post_id or a new title).
Free editionPOST …/abilities/zinn-seo/create-faq-from-questions/runedit_posts (the REST route's own check)items: array (required), post_id: integer, title: string, dry_run: boolean
zinn-seo/create-glossary-page
zinn-seo-create-glossary-page
Make the glossary page (Pro)
Creates a draft page that lists the glossary with its structured data.
Pro editionPOST …/abilities/zinn-seo/create-glossary-page/runpublish_pages (the REST route's own check)dry_run: boolean
zinn-seo/create-keyword-list
zinn-seo-create-keyword-list
Create a keyword list
Creates a keyword list from a label, a colour and its phrases.
Free editionPOST …/abilities/zinn-seo/create-keyword-list/runthe REST route's own per-item permission checklabel: string, color: blue|green|amber|red|purple|teal|grey, phrases: array|string, dry_run: boolean
zinn-seo/create-redirect
zinn-seo-create-redirect
Create a redirect
Creates a redirect: source, target, code (301, 302, 307, 308, 410, 451), regex, group, note.
Free editionPOST …/abilities/zinn-seo/create-redirect/runthe REST route's own per-item permission checksource: string, target: string, code: 301|302|307|308|410|451, regex: boolean, enabled: boolean, group: string, note: string, position: integer, dry_run: boolean
zinn-seo/create-task
zinn-seo-create-task
Create an SEO task (Agency)
Creates a task: title, detail, url, issue, assignee (a user id) and due date.
Pro editionPOST …/abilities/zinn-seo/create-task/runthe REST route's own per-item permission checktitle: string (required), detail: string, url: string, issue: string, assignee: integer, due: string, dry_run: boolean
zinn-seo/create-writer-draft
zinn-seo-create-writer-draft
Save a written draft as a post
Saves a reviewed draft as a draft post: draft holds title, excerpt, intro paragraphs, sections (heading and paragraphs), seo_title and seo_desc; options hold post_type, phrase and kwlist. Nothing is published.
Free editionPOST …/abilities/zinn-seo/create-writer-draft/runedit_posts (the REST route's own check)draft: object (required), options: object, dry_run: boolean
zinn-seo/decide-ai-redirects
zinn-seo-decide-ai-redirects
Accept or reject AI redirects (Pro)
Accepts (creates the redirects) or rejects the suggestions with these ids.
Pro editionPOST …/abilities/zinn-seo/decide-ai-redirects/runthe REST route's own per-item permission checkids: array (required), action: accept|reject (required), dry_run: boolean
zinn-seo/decide-ai-suggestion
zinn-seo-decide-ai-suggestion
Accept or reject an AI suggestion
Accepts (optionally with edited fields) or rejects one item's suggestion for a task.
Free editionPOST …/abilities/zinn-seo/decide-ai-suggestion/runedit_post (the REST route's own check)id: string (required), task: string (required), action: accept|reject (required), fields: object, dry_run: boolean
zinn-seo/delete-content-idea
zinn-seo-delete-content-idea
Delete an idea from the content plan (Pro)
Deletes one idea from the plan; a draft already written from it stays.
Pro editionPOST …/abilities/zinn-seo/delete-content-idea/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/delete-keyword-list
zinn-seo-delete-keyword-list
Delete a keyword list
Deletes one keyword list; the posts it was given to are not changed.
Free editionPOST …/abilities/zinn-seo/delete-keyword-list/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/delete-redirect
zinn-seo-delete-redirect
Delete a redirect
Deletes one redirect.
Free editionPOST …/abilities/zinn-seo/delete-redirect/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/delete-seo-test
zinn-seo-delete-seo-test
Delete an SEO test (Pro)
Deletes a finished test's record.
Pro editionPOST …/abilities/zinn-seo/delete-seo-test/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/delete-task
zinn-seo-delete-task
Delete an SEO task (Agency)
Deletes a task and its comments.
Pro editionPOST …/abilities/zinn-seo/delete-task/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/disable-cdn
zinn-seo-disable-cdn
Switch the Zinn® CDN off
Switches the Zinn® CDN off: the site serves its own files again at once.
Free editionPOST …/abilities/zinn-seo/disable-cdn/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/disconnect-bing
zinn-seo-disconnect-bing
Disconnect Bing
Disconnects Bing Webmaster Tools.
Free editionPOST …/abilities/zinn-seo/disconnect-bing/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/disconnect-edge
zinn-seo-disconnect-edge
Disconnect Cloudflare (Pro)
Disconnects Cloudflare and turns the edge features off.
Pro editionPOST …/abilities/zinn-seo/disconnect-edge/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/disconnect-google
zinn-seo-disconnect-google
Disconnect Google
Disconnects Google Search Console and Analytics from this site.
Free editionPOST …/abilities/zinn-seo/disconnect-google/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/disconnect-google-docs
zinn-seo-disconnect-google-docs
Disconnect the Google Docs add-on (Pro)
Revokes the person's Google Docs add-on key: their add-on can no longer send drafts to this site.
Pro editionPOST …/abilities/zinn-seo/disconnect-google-docs/runedit_posts (the REST route's own check)dry_run: boolean
zinn-seo/disconnect-support
zinn-seo-disconnect-support
Disconnect from support
Disconnects this site from support.
Free editionPOST …/abilities/zinn-seo/disconnect-support/runmanage_options (the REST route's own check)dry_run: boolean
zinn-seo/dismiss-finding
zinn-seo-dismiss-finding
Hide a finding
Hides one finding (id) for some days, or for good.
Free editionPOST …/abilities/zinn-seo/dismiss-finding/runthe REST route's own per-item permission checkid: string (required), days: integer, dry_run: boolean
zinn-seo/dismiss-notices
zinn-seo-dismiss-notices
Dismiss notices
Dismisses notices (ids, or all).
Free editionPOST …/abilities/zinn-seo/dismiss-notices/runthe REST route's own per-item permission checkids: array, all: boolean, dry_run: boolean
zinn-seo/draft-content-ideas
zinn-seo-draft-content-ideas
Write drafts from planned ideas (Pro)
Writes a draft post for each chosen idea (ids, up to 500) in the background, on the site owner's AI. Nothing is published.
Pro editionPOST …/abilities/zinn-seo/draft-content-ideas/runthe REST route's own per-item permission checkids: array (required), dry_run: boolean
zinn-seo/draft-custom-block
zinn-seo-draft-custom-block
Draft a custom block with AI (Pro)
Drafts a custom block from one sentence describing it.
Pro editionPOST …/abilities/zinn-seo/draft-custom-block/runthe REST route's own per-item permission checksentence: string (required), dry_run: boolean
zinn-seo/draft-from-brief
zinn-seo-draft-from-brief
Write a page from a brief (Pro)
Creates a draft page from a content brief (brief).
Pro editionPOST …/abilities/zinn-seo/draft-from-brief/runedit_posts (the REST route's own check)brief: object (required), dry_run: boolean
zinn-seo/draft-from-keyword
zinn-seo-draft-from-keyword
Draft a page for a keyword (Pro)
Creates a draft from a keyword row (row), against a competitor (rival), as a post type (type).
Pro editionPOST …/abilities/zinn-seo/draft-from-keyword/runedit_posts (the REST route's own check)row: object (required), rival: string, type: string, dry_run: boolean
zinn-seo/draw-social-cards
zinn-seo-draw-social-cards
Draw social card images (Pro)
Draws a social card image for every post in the background.
Pro editionPOST …/abilities/zinn-seo/draw-social-cards/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/enable-cdn
zinn-seo-enable-cdn
Switch the Zinn® CDN on
Switches the Zinn® CDN on for this site, a paid Zinn® service on the site owner's account.
Free editionPOST …/abilities/zinn-seo/enable-cdn/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/estimate-authority-check
zinn-seo-estimate-authority-check
Price an authority check
Says what checking these metrics from this source would cost (metrics, cadence_days).
Free editionPOST …/abilities/zinn-seo/estimate-authority-check/runthe REST route's own per-item permission checksource: string (required), metrics: array, cadence_days: 1|7|30, dry_run: boolean
zinn-seo/export-server-redirects
zinn-seo-export-server-redirects
Export redirects as server rules (Pro)
Returns the redirects as rules for one server (kind: apache or nginx).
Pro editionGET …/abilities/zinn-seo/export-server-redirects/runthe REST route's own per-item permission checkkind: string (required)
zinn-seo/export-settings
zinn-seo-export-settings
Export the SEO settings
Returns this site's settings as a file another site can import. Nothing secret is included.
Free editionGET …/abilities/zinn-seo/export-settings/runthe REST route's own per-item permission checknone
zinn-seo/find-local-business
zinn-seo-find-local-business
Find the business for local tracking (Pro)
Finds the business on the map to track.
Pro editionPOST …/abilities/zinn-seo/find-local-business/runthe REST route's own per-item permission checkquery: string (required), geo_id: string, dry_run: boolean
zinn-seo/find-places
zinn-seo-find-places
Find a business on the map
Finds businesses for the local tools (query, location, language, lat, lng).
Free editionPOST …/abilities/zinn-seo/find-places/runthe REST route's own per-item permission checkquery: string (required), location: string, language: string, lat: number, lng: number, dry_run: boolean
zinn-seo/find-test-pages
zinn-seo-find-test-pages
Find pages to test (Pro)
Finds pages for a test (search).
Pro editionGET …/abilities/zinn-seo/find-test-pages/runthe REST route's own per-item permission checksearch: string
zinn-seo/fix-conflict
zinn-seo-fix-conflict
Fix an SEO conflict
Applies the fix for one conflict (id). It can be undone.
Free editionPOST …/abilities/zinn-seo/fix-conflict/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/fix-crawl-waste
zinn-seo-fix-crawl-waste
Stop crawl waste (Pro)
Turns one crawl budget fix (what) on or off (on).
Pro editionPOST …/abilities/zinn-seo/fix-crawl-waste/runthe REST route's own per-item permission checkwhat: string (required), on: boolean, dry_run: boolean
zinn-seo/fix-redirect-chains
zinn-seo-fix-redirect-chains
Fix redirect chains
Points every chained redirect straight at its final target.
Free editionPOST …/abilities/zinn-seo/fix-redirect-chains/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/generate-image
zinn-seo-generate-image
Create a picture with AI (Pro)
Draws a picture from a prompt into the media library, with alt text, a caption and a file name, in a size, on the owner's own AI key or Zinn® credits (funding). For a picture still being drawn, ask again with its run.
Pro editionPOST …/abilities/zinn-seo/generate-image/runedit_post and upload_files (the REST route's own check)post: integer, prompt: string (required), alt: string, caption: string, filename: string, size: landscape|square|portrait, funding: auto|own|credits, model: string, run: string, dry_run: boolean
zinn-seo/generate-pages
zinn-seo-generate-pages
Make pages from a spreadsheet (Agency)
Creates one page per spreadsheet row from the plan, each with its own SEO title and description; thin rows are held back. Undo removes the whole run.
Pro editionPOST …/abilities/zinn-seo/generate-pages/runpublish_pages (the REST route's own check)csv: string, url: string, plan: object, dry_run: boolean
zinn-seo/get-ad-earnings
zinn-seo-get-ad-earnings
Read ad earnings per page
Returns each page's ad earnings in minor units beside its Google clicks and average position.
Pro editionGET …/abilities/zinn-seo/get-ad-earnings/runthe REST route's own per-item permission checkdays: 7|28|90, fresh: boolean
zinn-seo/get-address-change
zinn-seo-get-address-change
Read the address change state
Returns the site's permalink structure, category and tag bases, and any address change in progress with its redirects.
Free editionGET …/abilities/zinn-seo/get-address-change/runmanage_options (the REST route's own check)none
zinn-seo/get-affiliate-clicks
zinn-seo-get-affiliate-clicks
Read affiliate clicks (Pro)
Returns clicks per day for one affiliate link (id) or for all of them (id 0), over the last days.
Pro editionGET …/abilities/zinn-seo/get-affiliate-clicks/runthe REST route's own per-item permission checkid: integer, days: integer
zinn-seo/get-affiliate-jobs
zinn-seo-get-affiliate-jobs
Read the affiliate link jobs (Pro)
Returns the progress of the two background jobs: finding affiliate links in every post (index) and checking every destination (check).
Pro editionGET …/abilities/zinn-seo/get-affiliate-jobs/runthe REST route's own per-item permission checknone
zinn-seo/get-ai-bulk
zinn-seo-get-ai-bulk
Read the AI bulk run (Pro)
Returns the running or last AI bulk job and what it did.
Pro editionGET …/abilities/zinn-seo/get-ai-bulk/runthe REST route's own per-item permission checknone
zinn-seo/get-ai-settings
zinn-seo-get-ai-settings
Read the AI settings
Returns how AI is paid for (the site owner's own key, Zinn® credits or automatic), which tasks are available, and what is waiting for review.
Free editionGET …/abilities/zinn-seo/get-ai-settings/runthe REST route's own per-item permission checknone
zinn-seo/get-ai-suggestions
zinn-seo-get-ai-suggestions
Read one item's AI suggestions
Returns the suggestions waiting for one post or term.
Free editionGET …/abilities/zinn-seo/get-ai-suggestions/runedit_post (the REST route's own check)id: string (required)
zinn-seo/get-ai-visitors
zinn-seo-get-ai-visitors
Read visits from AI assistants
Returns visits sent by AI assistants per assistant, landing page and day, from Google Analytics and the site's own count.
Pro editionGET …/abilities/zinn-seo/get-ai-visitors/runthe REST route's own per-item permission checkdays: 7|28|90, fresh: boolean
zinn-seo/get-alert-channels
zinn-seo-get-alert-channels
Read the alert channels (Agency)
Lists where SEO alerts go: e-mail and chat channels (Slack, Teams, Discord, Telegram, webhook), each with its state. Secrets are never returned.
Pro editionGET …/abilities/zinn-seo/get-alert-channels/runthe REST route's own per-item permission checknone
zinn-seo/get-authority
zinn-seo-get-authority
Read authority scores
Returns the site's domain rating and authority scores from every connected source, and the competitors tracked.
Free editionGET …/abilities/zinn-seo/get-authority/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/get-authority-history
zinn-seo-get-authority-history
Read authority history
Returns one metric's history from one source (source, metric; days).
Free editionGET …/abilities/zinn-seo/get-authority-history/runthe REST route's own per-item permission checksource: string (required), metric: string (required), days: integer
zinn-seo/get-bing
zinn-seo-get-bing
Read Bing Webmaster Tools
Returns Bing clicks, impressions and crawl state (days).
Free editionGET …/abilities/zinn-seo/get-bing/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/get-bing-data
zinn-seo-get-bing-data
Read Bing crawl and link data
Returns the crawl problems Bing reported, Bing's daily crawl figures, the pages with links and, in Pro, the hourly crawl rate.
Free editionGET …/abilities/zinn-seo/get-bing-data/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/get-bulk-choices
zinn-seo-get-bulk-choices
List bulk editing filters
Returns the post types, statuses and terms the bulk filters accept.
Free editionGET …/abilities/zinn-seo/get-bulk-choices/runthe REST route's own per-item permission checknone
zinn-seo/get-business-listing
zinn-seo-get-business-listing
Read one business listing (Pro)
Returns one listing's details (service).
Pro editionGET …/abilities/zinn-seo/get-business-listing/runthe REST route's own per-item permission checkservice: string (required)
zinn-seo/get-cdn
zinn-seo-get-cdn
Read the Zinn® CDN state
Says whether the site's images, CSS and JavaScript are served from the Zinn® CDN, what it costs and what the site is doing now.
Free editionGET …/abilities/zinn-seo/get-cdn/runthe REST route's own per-item permission checknone
zinn-seo/get-change-timeline
zinn-seo-get-change-timeline
See which changes moved rankings (Pro)
Returns SEO changes beside search performance over time (days, page).
Pro editionGET …/abilities/zinn-seo/get-change-timeline/runthe REST route's own per-item permission checkdays: integer, fresh: boolean, page: string
zinn-seo/get-check-results
zinn-seo-get-check-results
Read a check's results
Returns the latest results of one check (tool).
Free editionGET …/abilities/zinn-seo/get-check-results/runthe REST route's own per-item permission checktool: string (required)
zinn-seo/get-check-run
zinn-seo-get-check-run
Read a check run
Returns one run's state and results.
Free editionGET …/abilities/zinn-seo/get-check-run/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-cleanup
zinn-seo-get-cleanup
Read the clean-up settings
Returns every clean-up switch (head tags, feeds, address parameters, search spam, previews) with what it removes.
Free editionGET …/abilities/zinn-seo/get-cleanup/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/get-comment-spam
zinn-seo-get-comment-spam
Read the comment honeypot
Returns how many spam comments the invisible honeypot stopped and its settings.
Free editionGET …/abilities/zinn-seo/get-comment-spam/runthe REST route's own per-item permission checknone
zinn-seo/get-connection
zinn-seo-get-connection
Read the Zinn® account connection
Says whether this site is connected to a Zinn® account, and to which.
Free editionGET …/abilities/zinn-seo/get-connection/runthe REST route's own per-item permission checknone
zinn-seo/get-content-guidelines
zinn-seo-get-content-guidelines
Read a post's content guidelines (Pro)
Returns the content guidelines brought in for one post (pasted from Surfer, Clearscope, MarketMuse, Frase, Semrush or another tool, or fetched from Surfer or Frase) and how well the post follows them.
Pro editionGET …/abilities/zinn-seo/get-content-guidelines/runthe REST route's own per-item permission checkpost: string (required)
zinn-seo/get-content-plan-drafting
zinn-seo-get-content-plan-drafting
Read the drafting job (Pro)
Returns the progress of the background job writing drafts from the plan.
Pro editionGET …/abilities/zinn-seo/get-content-plan-drafting/runthe REST route's own per-item permission checknone
zinn-seo/get-crawl-log
zinn-seo-get-crawl-log
Read crawler visits (Pro)
Lists search and AI crawler visits (bot, search) and crawl budget waste.
Pro editionGET …/abilities/zinn-seo/get-crawl-log/runthe REST route's own per-item permission checkbot: string, search: string
zinn-seo/get-crawlers
zinn-seo-get-crawlers
Read AI crawler rules
Returns which search and AI crawlers may read the site and how often each visited.
Free editionGET …/abilities/zinn-seo/get-crawlers/runthe REST route's own per-item permission checknone
zinn-seo/get-credits
zinn-seo-get-credits
Read the Zinn® credit balance
Returns the credit balance, what each check costs, what is held for running checks and the forecast for scheduled ones.
Free editionGET …/abilities/zinn-seo/get-credits/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/get-csv-export
zinn-seo-get-csv-export
Export SEO fields as a spreadsheet (Pro)
Returns what can be exported and a download address for a CSV of every page's SEO fields.
Pro editionGET …/abilities/zinn-seo/get-csv-export/runthe REST route's own per-item permission checknone
zinn-seo/get-diagnostics
zinn-seo-get-diagnostics
Read the site diagnostics
Returns the diagnostics a support ticket would carry: versions, active plugins, limits and recent errors.
Free editionGET …/abilities/zinn-seo/get-diagnostics/runmanage_options (the REST route's own check)none
zinn-seo/get-disavow
zinn-seo-get-disavow
Read the disavow list (Pro)
Returns the domains and addresses to disavow.
Pro editionGET …/abilities/zinn-seo/get-disavow/runthe REST route's own per-item permission checknone
zinn-seo/get-disavow-file
zinn-seo-get-disavow-file
Make the disavow file (Pro)
Returns the disavow file text for Google.
Pro editionGET …/abilities/zinn-seo/get-disavow-file/runthe REST route's own per-item permission checknone
zinn-seo/get-duplicates-summary
zinn-seo-get-duplicates-summary
Count duplicates
Counts duplicate titles, descriptions, H1s and keyphrases.
Free editionGET …/abilities/zinn-seo/get-duplicates-summary/runthe REST route's own per-item permission checknone
zinn-seo/get-edge
zinn-seo-get-edge
Read the Cloudflare connection (Pro)
Returns whether Cloudflare is connected and which edge features are on.
Pro editionGET …/abilities/zinn-seo/get-edge/runthe REST route's own per-item permission checknone
zinn-seo/get-fields
zinn-seo-get-fields
Read a page's SEO fields
Returns the SEO fields of one post or term (object: post or term; id).
Free editionGET …/abilities/zinn-seo/get-fields/runthe REST route's own per-item permission checkobject: string (required), id: string (required)
zinn-seo/get-glossary
zinn-seo-get-glossary
Read the glossary (Pro)
Returns the glossary terms and their definitions.
Pro editionGET …/abilities/zinn-seo/get-glossary/runedit_posts (the REST route's own check)none
zinn-seo/get-google-connection
zinn-seo-get-google-connection
Read the Google connection
Says whether Google Search Console and Analytics are connected and which properties are used (choices: list the properties to choose from).
Free editionGET …/abilities/zinn-seo/get-google-connection/runthe REST route's own per-item permission checkchoices: boolean, fresh: boolean
zinn-seo/get-google-docs-connection
zinn-seo-get-google-docs-connection
Read the Google Docs connection (Pro)
Says whether the person has a Google Docs add-on key for this site. The key is never returned.
Pro editionGET …/abilities/zinn-seo/get-google-docs-connection/runedit_posts (the REST route's own check)none
zinn-seo/get-google-indexing
zinn-seo-get-google-indexing
Read Google indexing for jobs and live streams
Returns whether job and live stream pages are sent to Google's Indexing API.
Free editionGET …/abilities/zinn-seo/get-google-indexing/runthe REST route's own per-item permission checknone
zinn-seo/get-head
zinn-seo-get-head
Read the SEO tags of a post or term (Pro)
Returns the tags the plugin prints for one post, term or user (kind, id).
Pro editionGET …/abilities/zinn-seo/get-head/runthe REST route's own per-item permission checkkind: string (required), id: string (required)
zinn-seo/get-head-for-url
zinn-seo-get-head-for-url
Read the SEO tags of an address (Pro)
Returns the exact title, meta, social and structured data tags the plugin prints for an address on this site.
Pro editionGET …/abilities/zinn-seo/get-head-for-url/runthe REST route's own per-item permission checkurl: string (required)
zinn-seo/get-images
zinn-seo-get-images
Read image SEO
Counts images without alt text or with poor file names, and the running job.
Free editionGET …/abilities/zinn-seo/get-images/runthe REST route's own per-item permission checknone
zinn-seo/get-import
zinn-seo-get-import
Read the move from another SEO plugin
Returns which SEO plugins were found, what each holds and where a move stands.
Free editionGET …/abilities/zinn-seo/get-import/runthe REST route's own per-item permission checknone
zinn-seo/get-index-checks
zinn-seo-get-index-checks
Read index checks
Returns which pages Google has indexed according to the last checks.
Free editionGET …/abilities/zinn-seo/get-index-checks/runthe REST route's own per-item permission checknone
zinn-seo/get-index-coverage
zinn-seo-get-index-coverage
Read Google index coverage
Returns which pages Google has indexed and why others are not (page).
Free editionGET …/abilities/zinn-seo/get-index-coverage/runthe REST route's own per-item permission checkpage: integer
zinn-seo/get-index-run
zinn-seo-get-index-run
Read an index check run
Returns one index run's progress and results.
Free editionGET …/abilities/zinn-seo/get-index-run/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-indexing
zinn-seo-get-indexing
Read instant indexing
Returns the IndexNow and Google indexing state and the last submissions.
Free editionGET …/abilities/zinn-seo/get-indexing/runthe REST route's own per-item permission checknone
zinn-seo/get-indexing-log
zinn-seo-get-indexing-log
Read the indexing log
Returns one page of what each search engine answered for each submitted address, the exclusion rules and which search engines are ready.
Free editionGET …/abilities/zinn-seo/get-indexing-log/runthe REST route's own per-item permission checkengine: |indexnow|bing|google, state: |sent|failed|skipped|retried, search: string, page: integer
zinn-seo/get-info
zinn-seo-get-info
Read the SEO plugin status
Returns the Zinn® SEO version, plan, how many modules and features this build has, whether no-trace mode is on and the next setup step.
Free editionGET …/abilities/zinn-seo/get-info/runthe REST route's own per-item permission checknone
zinn-seo/get-keyword-list-coverage
zinn-seo-get-keyword-list-coverage
Read a keyword list's coverage
For each phrase of one keyword list: the topic it falls in and its Google impressions and best position over 90 days, or nothing when it still needs a page.
Free editionGET …/abilities/zinn-seo/get-keyword-list-coverage/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-licence
zinn-seo-get-licence
Read the licence
Returns this site's Zinn® SEO plan, licence state, renewal date and what the plan includes.
Free editionGET …/abilities/zinn-seo/get-licence/runmanage_options (the REST route's own check)none
zinn-seo/get-llms-txt
zinn-seo-get-llms-txt
Read llms.txt
Returns the site's llms.txt (lang: one language) and how it is built.
Free editionGET …/abilities/zinn-seo/get-llms-txt/runthe REST route's own per-item permission checklang: string
zinn-seo/get-local-tracking
zinn-seo-get-local-tracking
Read local rank tracking (Pro)
Returns the business and towns tracked for local rankings.
Pro editionGET …/abilities/zinn-seo/get-local-tracking/runthe REST route's own per-item permission checknone
zinn-seo/get-noindex-defaults
zinn-seo-get-noindex-defaults
Read thin-page rules
Returns the rules that keep thin pages (empty archives, search, attachments …) out of search, with counts.
Free editionGET …/abilities/zinn-seo/get-noindex-defaults/runthe REST route's own per-item permission checknone
zinn-seo/get-notrace
zinn-seo-get-notrace
Read the no-trace mode
Says whether no-trace mode (hiding that the site uses an SEO plugin) is on, whether the hosting manages it, and the last switches.
Free editionGET …/abilities/zinn-seo/get-notrace/runthe REST route's own per-item permission checknone
zinn-seo/get-originality-check
zinn-seo-get-originality-check
Read an originality check (Pro)
Returns one originality check's result: each sentence found elsewhere, with where.
Pro editionGET …/abilities/zinn-seo/get-originality-check/runthe REST route's own per-item permission checkrun: string (required)
zinn-seo/get-page-analysis
zinn-seo-get-page-analysis
Read a page's analysis
Returns a page's SEO and readability checks: each check, its result and how to fix it.
Free editionGET …/abilities/zinn-seo/get-page-analysis/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-page-focus
zinn-seo-get-page-focus
Read a page's target market (Pro)
Returns a page's keyword rows, brief and market.
Pro editionGET …/abilities/zinn-seo/get-page-focus/runedit_post (the REST route's own check)post: string (required)
zinn-seo/get-page-generator
zinn-seo-get-page-generator
Read the page generator (Agency)
Returns the pages made from a spreadsheet so far and the last run's plan.
Pro editionGET …/abilities/zinn-seo/get-page-generator/runpublish_pages (the REST route's own check)none
zinn-seo/get-page-lock
zinn-seo-get-page-lock
Read a page's lock (Pro)
Says whether a page's SEO fields are locked, and by whom.
Pro editionGET …/abilities/zinn-seo/get-page-lock/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-page-schedule
zinn-seo-get-page-schedule
Read a page's scheduled changes (Pro)
Lists one page's scheduled SEO changes.
Pro editionGET …/abilities/zinn-seo/get-page-schedule/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-page-schema
zinn-seo-get-page-schema
Read a page's added structured data (Pro)
Returns the structured data added to one page by hand.
Pro editionGET …/abilities/zinn-seo/get-page-schema/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-page-speed
zinn-seo-get-page-speed
Read real page speed
Returns the site's real-user Core Web Vitals (form: phone or desktop).
Free editionGET …/abilities/zinn-seo/get-page-speed/runthe REST route's own per-item permission checkform: phone|desktop, fresh: boolean
zinn-seo/get-post-affiliate-links
zinn-seo-get-post-affiliate-links
Read one post's affiliate links (Pro)
Lists the affiliate links one post or page uses.
Pro editionGET …/abilities/zinn-seo/get-post-affiliate-links/runedit_post (the REST route's own check)post: string (required)
zinn-seo/get-post-keyword-lists
zinn-seo-get-post-keyword-lists
Read one post's keyword lists
Lists the keyword lists one post or page is given to.
Free editionGET …/abilities/zinn-seo/get-post-keyword-lists/runthe REST route's own per-item permission checkpost: string (required)
zinn-seo/get-redirect-conditions
zinn-seo-get-redirect-conditions
Read a redirect's conditions (Pro)
Returns the conditions one redirect needs before it runs.
Pro editionGET …/abilities/zinn-seo/get-redirect-conditions/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-redirect-health
zinn-seo-get-redirect-health
Read redirect health
Counts chains, loops and redirects to missing pages.
Free editionGET …/abilities/zinn-seo/get-redirect-health/runthe REST route's own per-item permission checknone
zinn-seo/get-redirect-import
zinn-seo-get-redirect-import
Read redirect import sources
Lists the plugins and files redirects can be imported from.
Free editionGET …/abilities/zinn-seo/get-redirect-import/runthe REST route's own per-item permission checknone
zinn-seo/get-report
zinn-seo-get-report
Read a sent report (Agency)
Returns one report that was made: its figures, summary in plain words and where it went.
Pro editionGET …/abilities/zinn-seo/get-report/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-report-settings
zinn-seo-get-report-settings
Read the client report (Agency)
Returns the scheduled client report: name, recipients, language, sections, cadence, brand, and its Google Sheets or Drive destinations.
Pro editionGET …/abilities/zinn-seo/get-report-settings/runthe REST route's own per-item permission checknone
zinn-seo/get-research-run
zinn-seo-get-research-run
Read a research run
Returns one run's results.
Free editionGET …/abilities/zinn-seo/get-research-run/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-resolved-fields
zinn-seo-get-resolved-fields
Read a page's final SEO values
Returns the title, description, robots and canonical a page really gets after templates and defaults (object: post or term).
Free editionGET …/abilities/zinn-seo/get-resolved-fields/runthe REST route's own per-item permission checkobject: string (required), id: string (required)
zinn-seo/get-robots-txt
zinn-seo-get-robots-txt
Read robots.txt
Returns the site's robots.txt, the owner's own rules and the checks on them.
Free editionGET …/abilities/zinn-seo/get-robots-txt/runthe REST route's own per-item permission checknone
zinn-seo/get-roles
zinn-seo-get-roles
Read the SEO permissions of each role (Pro)
Lists every role except administrator with the SEO capabilities it holds, and what each capability allows.
Pro editionGET …/abilities/zinn-seo/get-roles/runmanage_options and promote_users (the REST route's own check)none
zinn-seo/get-schema-graph
zinn-seo-get-schema-graph
Read a page's structured data
Returns the JSON-LD graph a page (post) prints.
Free editionGET …/abilities/zinn-seo/get-schema-graph/runthe REST route's own per-item permission checkpost: integer (required)
zinn-seo/get-schema-templates
zinn-seo-get-schema-templates
Read custom schema types (Pro)
Returns the site's own structured data templates.
Pro editionGET …/abilities/zinn-seo/get-schema-templates/runedit_posts (the REST route's own check)none
zinn-seo/get-score-marks
zinn-seo-get-score-marks
Read the marks on score history
Returns the days SEO changes were made and the score alerts that fired, for marking a score's history chart.
Pro editionGET …/abilities/zinn-seo/get-score-marks/runthe REST route's own per-item permission checkdays: integer
zinn-seo/get-search-overview
zinn-seo-get-search-overview
Read search performance
Returns clicks, impressions, average position and their change (days).
Free editionGET …/abilities/zinn-seo/get-search-overview/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/get-search-report
zinn-seo-get-search-report
Read a search report
Returns Search Console rows by page, query, country or device (dim, days).
Free editionGET …/abilities/zinn-seo/get-search-report/runthe REST route's own per-item permission checkdim: page|query|country|device, days: integer, fresh: boolean
zinn-seo/get-search-revenue
zinn-seo-get-search-revenue
Read revenue from search (Pro)
Returns Analytics sessions, conversions and revenue from organic search (days).
Pro editionGET …/abilities/zinn-seo/get-search-revenue/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/get-server-redirects
zinn-seo-get-server-redirects
Read redirects as server rules (Pro)
Returns the redirects as Apache and Nginx rules, for the fastest redirects.
Pro editionGET …/abilities/zinn-seo/get-server-redirects/runthe REST route's own per-item permission checknone
zinn-seo/get-server-rules
zinn-seo-get-server-rules
Read .htaccess and Nginx rules (Pro)
Returns the server rules file, its backups and whether it can be edited here.
Pro editionGET …/abilities/zinn-seo/get-server-rules/runthe REST route's own per-item permission checknone
zinn-seo/get-server-rules-backup
zinn-seo-get-server-rules-backup
Read a server rules backup (Pro)
Returns one backup's text.
Pro editionGET …/abilities/zinn-seo/get-server-rules-backup/runthe REST route's own per-item permission checkname: string (required)
zinn-seo/get-settings
zinn-seo-get-settings
Read the SEO settings
Returns every site-wide SEO setting with its schema (type, default and allowed values).
Free editionGET …/abilities/zinn-seo/get-settings/runthe REST route's own per-item permission checknone
zinn-seo/get-setup
zinn-seo-get-setup
Read the setup state
Returns each step of the guided setup (done, skipped or to do) and what it detected on the site: the kind of site, other SEO plugins, multilingual plugins, WooCommerce and whether search engines are discouraged.
Free editionGET …/abilities/zinn-seo/get-setup/runthe REST route's own per-item permission checknone
zinn-seo/get-sitemaps
zinn-seo-get-sitemaps
Read the sitemaps
Returns the sitemap addresses, what they include and their state.
Free editionGET …/abilities/zinn-seo/get-sitemaps/runthe REST route's own per-item permission checknone
zinn-seo/get-social-cards
zinn-seo-get-social-cards
Read social card images (Pro)
Says whether the server can draw social card images and the running job.
Pro editionGET …/abilities/zinn-seo/get-social-cards/runthe REST route's own per-item permission checknone
zinn-seo/get-social-refresh
zinn-seo-get-social-refresh
Read social link refresh
Returns whether shared links are refreshed on Facebook, the app id, how many pages wait and the last answers; the app secret is never returned.
Free editionGET …/abilities/zinn-seo/get-social-refresh/runthe REST route's own per-item permission checknone
zinn-seo/get-spam-scan
zinn-seo-get-spam-scan
Read the spam page scan
Returns the last scan for spam pages, links and injected content.
Free editionGET …/abilities/zinn-seo/get-spam-scan/runthe REST route's own per-item permission checknone
zinn-seo/get-speed-test
zinn-seo-get-speed-test
Read a lab speed test
Returns a lab test's results.
Free editionGET …/abilities/zinn-seo/get-speed-test/runthe REST route's own per-item permission checkid: string (required)
zinn-seo/get-submitted-sitemaps
zinn-seo-get-submitted-sitemaps
Read submitted sitemaps
Lists the sitemaps Search Console knows, with errors.
Free editionGET …/abilities/zinn-seo/get-submitted-sitemaps/runthe REST route's own per-item permission checknone
zinn-seo/get-support-connection
zinn-seo-get-support-connection
Read the support connection
Says whether this site is connected to Zinn Digital® support, and as whom.
Free editionGET …/abilities/zinn-seo/get-support-connection/runmanage_options (the REST route's own check)refresh: boolean
zinn-seo/get-title-templates
zinn-seo-get-title-templates
Read title templates
Returns the title and description templates per post type, taxonomy and archive.
Free editionGET …/abilities/zinn-seo/get-title-templates/runthe REST route's own per-item permission checknone
zinn-seo/get-topical-map
zinn-seo-get-topical-map
Read the topical map (Pro)
Returns the site's topics and the gaps between them (days).
Pro editionGET …/abilities/zinn-seo/get-topical-map/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/get-update-checks
zinn-seo-get-update-checks
Read the update checks
Returns each waiting plugin and theme update with its verdict against this site's WordPress and PHP, and the reports of SEO output that changed after updates.
Pro editionGET …/abilities/zinn-seo/get-update-checks/runupdate_plugins (the REST route's own check)none
zinn-seo/get-url-speed
zinn-seo-get-url-speed
Read one page's speed
Returns one address's real-user Core Web Vitals (url, form).
Free editionGET …/abilities/zinn-seo/get-url-speed/runthe REST route's own per-item permission checkurl: string (required), form: phone|desktop
zinn-seo/get-white-label
zinn-seo-get-white-label
Read the white label (Agency)
Returns the agency brand shown instead of Zinn® SEO: name, menu, logo, colour, help link, which screens clients see and who counts as agency staff.
Pro editionGET …/abilities/zinn-seo/get-white-label/runmanage_options (the REST route's own check)none
zinn-seo/get-writer-site
zinn-seo-get-writer-site
Read what the writer knows about the site
Returns what the AI writer is told about the site when it suggests ideas: its name, its main categories and its recent post titles.
Free editionGET …/abilities/zinn-seo/get-writer-site/runedit_posts (the REST route's own check)none
zinn-seo/ignore-missing-page
zinn-seo-ignore-missing-page
Ignore a missing page
Stops listing one missing address.
Free editionPOST …/abilities/zinn-seo/ignore-missing-page/runthe REST route's own per-item permission checkkind: 404|404b, address: string (required), dry_run: boolean
zinn-seo/import-redirects
zinn-seo-import-redirects
Import redirects
Imports redirects from a source plugin or a pasted list (source, text).
Free editionPOST …/abilities/zinn-seo/import-redirects/runthe REST route's own per-item permission checksource: string (required), text: string, dry_run: boolean
zinn-seo/import-robots-file
zinn-seo-import-robots-file
Bring in a real robots.txt file
Imports the rules of a robots.txt file on the server into the editor (import), or moves the file aside (move).
Free editionPOST …/abilities/zinn-seo/import-robots-file/runmanage_options (the REST route's own check)action: import|move (required), dry_run: boolean
zinn-seo/import-schema
zinn-seo-import-schema
Read another page's structured data (Pro)
Reads the JSON-LD of any public address (url), to copy into a template.
Pro editionPOST …/abilities/zinn-seo/import-schema/runthe REST route's own per-item permission checkurl: string (required), dry_run: boolean
zinn-seo/import-settings
zinn-seo-import-settings
Import SEO settings
Imports a settings export from another site (document). With dry_run true (the default) it only lists what would change; with dry_run false it applies all of it, or nothing when a value is refused.
Free editionPOST …/abilities/zinn-seo/import-settings/runthe REST route's own per-item permission checkdocument: object (required), dry_run: boolean
zinn-seo/inspect-url
zinn-seo-inspect-url
Inspect an address in Google
Asks Google's URL inspection whether an address is indexed and why (url).
Free editionGET …/abilities/zinn-seo/inspect-url/runthe REST route's own per-item permission checkurl: string (required)
zinn-seo/list-ai-models
zinn-seo-list-ai-models
List the AI models to choose from
Lists the current models of the connected AI providers that one AI task (feature) can use, and the model chosen for it now.
Free editionGET …/abilities/zinn-seo/list-ai-models/runthe REST route's own per-item permission checkfeature: writer|proofread|image (required)
zinn-seo/list-ai-redirects
zinn-seo-list-ai-redirects
List AI redirect suggestions (Pro)
Lists the redirects AI proposed for missing pages or a site move, waiting for review.
Pro editionGET …/abilities/zinn-seo/list-ai-redirects/runthe REST route's own per-item permission checkbefore: integer
zinn-seo/list-ai-suggestions
zinn-seo-list-ai-suggestions
List AI suggestions
Lists AI suggestions waiting for review for one task (task; after, limit).
Free editionGET …/abilities/zinn-seo/list-ai-suggestions/runthe REST route's own per-item permission checktask: string (required), after: integer, limit: integer
zinn-seo/list-analysis-languages
zinn-seo-list-analysis-languages
List the analysis languages
Lists the site's languages and which checks (readability, keyphrase) run in each.
Free editionGET …/abilities/zinn-seo/list-analysis-languages/runthe REST route's own per-item permission checknone
zinn-seo/list-blocks
zinn-seo-list-blocks
List the SEO blocks
Lists the SEO blocks (FAQ, how-to, table of contents, breadcrumbs …) with whether each is switched on.
Free editionGET …/abilities/zinn-seo/list-blocks/runedit_posts (the REST route's own check)none
zinn-seo/list-bulk-batches
zinn-seo-list-bulk-batches
List bulk changes
Lists earlier bulk changes (batches) and the running job.
Free editionGET …/abilities/zinn-seo/list-bulk-batches/runthe REST route's own per-item permission checknone
zinn-seo/list-bulk-rows
zinn-seo-list-bulk-rows
List pages for bulk editing
Lists posts or terms with their SEO title, description and robots (filters: type, status, search, missing, robots, term; before, per_page).
Free editionGET …/abilities/zinn-seo/list-bulk-rows/runthe REST route's own per-item permission checkobject: post|term, type: string, status: string, search: string, missing: string, robots: string, discover: boolean, term: integer, before: integer|string, per_page: integer
zinn-seo/list-business-listings
zinn-seo-list-business-listings
Read business listings (Pro)
Returns the Google Business Profile, Apple and Bing listings and their state.
Pro editionGET …/abilities/zinn-seo/list-business-listings/runthe REST route's own per-item permission checknone
zinn-seo/list-business-reviews
zinn-seo-list-business-reviews
Read Google reviews (Pro)
Lists the Business Profile's reviews (page: next page token).
Pro editionGET …/abilities/zinn-seo/list-business-reviews/runthe REST route's own per-item permission checkpage: string
zinn-seo/list-check-alerts
zinn-seo-list-check-alerts
List check alerts (Pro)
Lists alerts from watched checks (ranking drops, lost links, mentions).
Pro editionGET …/abilities/zinn-seo/list-check-alerts/runthe REST route's own per-item permission checknone
zinn-seo/list-check-pages
zinn-seo-list-check-pages
List pages for index checks
Lists pages with their last index check (search, state; before).
Free editionGET …/abilities/zinn-seo/list-check-pages/runthe REST route's own per-item permission checksearch: string, before: integer, state: |yes|no|unknown|never
zinn-seo/list-checks
zinn-seo-list-checks
List the pay-per-use checks
Lists every check (rank, index, AI visibility, backlinks, audit, keywords, content gap, local, mentions) with its price, schedule and last result.
Free editionGET …/abilities/zinn-seo/list-checks/runthe REST route's own per-item permission checknone
zinn-seo/list-conflicts
zinn-seo-list-conflicts
List SEO conflicts
Lists duplicate tags or settings coming from the theme or other plugins, each with its fix.
Free editionGET …/abilities/zinn-seo/list-conflicts/runthe REST route's own per-item permission checknone
zinn-seo/list-content-plan
zinn-seo-list-content-plan
List the content plan (Pro)
Lists the ideas in the content plan with their state (status; after: keyset).
Pro editionGET …/abilities/zinn-seo/list-content-plan/runthe REST route's own per-item permission checkafter: integer, status: |idea|queued|drafted|failed
zinn-seo/list-ctr-opportunities
zinn-seo-list-ctr-opportunities
List pages that could win more clicks (Pro)
Lists pages with many Google impressions and few clicks, with their queries, for new AI titles.
Pro editionGET …/abilities/zinn-seo/list-ctr-opportunities/runthe REST route's own per-item permission checknone
zinn-seo/list-custom-blocks
zinn-seo-list-custom-blocks
List custom schema blocks (Pro)
Lists the site's own blocks with structured data.
Pro editionGET …/abilities/zinn-seo/list-custom-blocks/runedit_posts (the REST route's own check)none
zinn-seo/list-decaying-pages
zinn-seo-list-decaying-pages
List pages losing clicks (Pro)
Lists pages whose clicks are falling, to refresh (days).
Pro editionGET …/abilities/zinn-seo/list-decaying-pages/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/list-duplicates
zinn-seo-list-duplicates
List duplicate titles and descriptions
Lists pages sharing a title, description, H1 or focus keyphrase (kind; after, per).
Free editionGET …/abilities/zinn-seo/list-duplicates/runthe REST route's own per-item permission checkkind: title|desc|h1|focus, after: string, per: integer
zinn-seo/list-features
zinn-seo-list-features
List what the SEO plugin does
Lists every feature this build of the plugin has, with its plan and module.
Free editionGET …/abilities/zinn-seo/list-features/runthe REST route's own per-item permission checknone
zinn-seo/list-field-history
zinn-seo-list-field-history
Read a page's SEO change history (Pro)
Lists every change to a page's SEO fields: when, who (a person or an AI agent), before and after.
Pro editionGET …/abilities/zinn-seo/list-field-history/runthe REST route's own per-item permission checkobject: string (required), id: string (required), before: integer
zinn-seo/list-fields
zinn-seo-list-fields
List the per-page SEO fields
Lists the SEO fields a post or term can carry (title, description, robots, canonical and those modules add), with their types.
Free editionGET …/abilities/zinn-seo/list-fields/runthe REST route's own per-item permission checknone
zinn-seo/list-findings
zinn-seo-list-findings
List what to fix
Lists every SEO problem found on the site, most important first, each with its one-click fix where one exists.
Free editionGET …/abilities/zinn-seo/list-findings/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/list-import-differences
zinn-seo-list-import-differences
List differences found
Returns the first differences the comparison found.
Free editionGET …/abilities/zinn-seo/list-import-differences/runthe REST route's own per-item permission checknone
zinn-seo/list-integrations
zinn-seo-list-integrations
List integrations
Lists the plugins Zinn® SEO works with, which are installed and which integrations are on.
Free editionGET …/abilities/zinn-seo/list-integrations/runthe REST route's own per-item permission checknone
zinn-seo/list-jobs
zinn-seo-list-jobs
List the background jobs
Lists the plugin's background jobs with their status and progress.
Free editionGET …/abilities/zinn-seo/list-jobs/runthe REST route's own per-item permission checknone
zinn-seo/list-keyword-list-posts
zinn-seo-list-keyword-list-posts
List the posts of a keyword list
Lists the posts and pages a keyword list is given to (after: keyset).
Free editionGET …/abilities/zinn-seo/list-keyword-list-posts/runthe REST route's own per-item permission checkid: string (required), after: integer
zinn-seo/list-keyword-lists
zinn-seo-list-keyword-lists
List keyword lists
Lists the site's keyword lists with their phrases and colour (search; limit; after: keyset).
Free editionGET …/abilities/zinn-seo/list-keyword-lists/runthe REST route's own per-item permission checkafter: integer, limit: integer, search: string
zinn-seo/list-linked-sites
zinn-seo-list-linked-sites
List your other sites (Agency)
Lists the owner's other sites that link suggestions are drawn from, with how many pages were read from each and when.
Pro editionGET …/abilities/zinn-seo/list-linked-sites/runthe REST route's own per-item permission checknone
zinn-seo/list-locked-pages
zinn-seo-list-locked-pages
List locked pages (Pro)
Lists pages whose SEO fields are locked against changes (after: keyset).
Pro editionGET …/abilities/zinn-seo/list-locked-pages/runthe REST route's own per-item permission checkafter: integer
zinn-seo/list-mentions
zinn-seo-list-mentions
List brand mentions (Pro)
Lists mentions of the brand and copies of the content (phrase, tone; limit, offset).
Pro editionGET …/abilities/zinn-seo/list-mentions/runthe REST route's own per-item permission checkphrase: string, tone: string, limit: integer, offset: integer
zinn-seo/list-missing-pages
zinn-seo-list-missing-pages
List missing pages (404s)
Lists addresses visitors and bots asked for that do not exist (kind 404 or bots), with hits (order, search; after, per).
Free editionGET …/abilities/zinn-seo/list-missing-pages/runthe REST route's own per-item permission checkkind: 404|404b, order: hits|last_seen|first_seen, after: string, search: string, per: integer
zinn-seo/list-modules
zinn-seo-list-modules
List the SEO modules
Lists the plugin's feature modules: name, plan, whether each is on, and what it needs.
Free editionGET …/abilities/zinn-seo/list-modules/runthe REST route's own per-item permission checknone
zinn-seo/list-notices
zinn-seo-list-notices
List notices
Lists the notices about checks, credits and problems.
Free editionGET …/abilities/zinn-seo/list-notices/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/list-offers
zinn-seo-list-offers
List Zinn® services for this site
Lists the Zinn® services that fix what was found here (hosting, content, links), with prices.
Free editionGET …/abilities/zinn-seo/list-offers/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/list-orders
zinn-seo-list-orders
List Zinn® orders
Lists orders placed through Zinn® from this site, with their state.
Free editionGET …/abilities/zinn-seo/list-orders/runthe REST route's own per-item permission checknone
zinn-seo/list-page-scores
zinn-seo-list-page-scores
List page SEO scores
Lists pages with their SEO and readability ratings, newest first (type, rating, issue; before, per).
Free editionGET …/abilities/zinn-seo/list-page-scores/runthe REST route's own per-item permission checktype: string, rating: |good|ok|bad|none|cornerstone|nofocus, issue: string, before: integer, per: integer
zinn-seo/list-redirect-conditions
zinn-seo-list-redirect-conditions
List redirect conditions (Pro)
Lists what a redirect can depend on: login, role, device, country, language, referrer, time.
Pro editionGET …/abilities/zinn-seo/list-redirect-conditions/runthe REST route's own per-item permission checknone
zinn-seo/list-redirects
zinn-seo-list-redirects
List redirects
Lists redirects (search, group, code, origin, problem, regex, enabled; before, per).
Free editionGET …/abilities/zinn-seo/list-redirects/runthe REST route's own per-item permission checksearch: string, group: string, code: integer, origin: string, problem: string, regex: string, enabled: string, before: integer, per: integer
zinn-seo/list-research-runs
zinn-seo-list-research-runs
List research runs
Lists earlier runs (tool, watch).
Free editionGET …/abilities/zinn-seo/list-research-runs/runthe REST route's own per-item permission checktool: string, watch: string
zinn-seo/list-research-watches
zinn-seo-list-research-watches
List repeating research
Lists tools set to run again every 1, 7 or 30 days.
Free editionGET …/abilities/zinn-seo/list-research-watches/runthe REST route's own per-item permission checknone
zinn-seo/list-rollback-versions
zinn-seo-list-rollback-versions
List earlier versions
Lists the earlier Zinn® SEO versions this site can go back to.
Free editionGET …/abilities/zinn-seo/list-rollback-versions/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/list-scheduled-changes
zinn-seo-list-scheduled-changes
List scheduled SEO changes (Pro)
Lists SEO changes waiting for their date.
Pro editionGET …/abilities/zinn-seo/list-scheduled-changes/runthe REST route's own per-item permission checknone
zinn-seo/list-schema-builders
zinn-seo-list-schema-builders
List structured data builders (Pro)
Lists the structured data types that can be added to a page, with their fields.
Pro editionGET …/abilities/zinn-seo/list-schema-builders/runedit_posts (the REST route's own check)none
zinn-seo/list-schema-properties
zinn-seo-list-schema-properties
List a type's properties
Lists a schema.org type's properties (type).
Free editionGET …/abilities/zinn-seo/list-schema-properties/runedit_posts (the REST route's own check)type: string (required)
zinn-seo/list-search-opportunities
zinn-seo-list-search-opportunities
List search opportunities (Pro)
Lists the biggest search wins available, with what to do.
Pro editionGET …/abilities/zinn-seo/list-search-opportunities/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/list-seo-tests
zinn-seo-list-seo-tests
List SEO title tests (Pro)
Lists title and description tests with their results.
Pro editionGET …/abilities/zinn-seo/list-seo-tests/runthe REST route's own per-item permission checknone
zinn-seo/list-site-searches
zinn-seo-list-site-searches
List what visitors search for
Lists searches made on the site, and those with no results (kind search0).
Free editionGET …/abilities/zinn-seo/list-site-searches/runthe REST route's own per-item permission checkkind: search|search0, order: hits|last_seen|first_seen, after: string, search: string, per: integer
zinn-seo/list-sitemap-files
zinn-seo-list-sitemap-files
List sitemap files
Lists every sitemap file with its address and entry count.
Free editionGET …/abilities/zinn-seo/list-sitemap-files/runthe REST route's own per-item permission checknone
zinn-seo/list-striking-distance
zinn-seo-list-striking-distance
List almost-ranking searches (Pro)
Lists queries where a page ranks just below the first page (days).
Pro editionGET …/abilities/zinn-seo/list-striking-distance/runthe REST route's own per-item permission checkdays: integer, fresh: boolean
zinn-seo/list-task-people
zinn-seo-list-task-people
List who can take tasks (Agency)
Lists the users a task can be given to.
Pro editionGET …/abilities/zinn-seo/list-task-people/runthe REST route's own per-item permission checknone
zinn-seo/list-tasks
zinn-seo-list-tasks
List SEO tasks (Agency)
Lists the team's SEO tasks (status: open, done or all; after: keyset).
Pro editionGET …/abilities/zinn-seo/list-tasks/runthe REST route's own per-item permission checkstatus: open|done|all, after: integer
zinn-seo/list-toolbox
zinn-seo-list-toolbox
List research tools
Lists every research tool (SERP, reviews, shopping, Amazon, YouTube, traffic, technology …) with its price in credits.
Free editionGET …/abilities/zinn-seo/list-toolbox/runthe REST route's own per-item permission checknone
zinn-seo/list-zinn-prices
zinn-seo-list-zinn-prices
List Zinn® services and prices
Returns every Zinn® service that helps this site with its live price, monthly or one-off, where the plugin uses it and what the account already holds.
Free editionGET …/abilities/zinn-seo/list-zinn-prices/runthe REST route's own per-item permission checkfresh: boolean
zinn-seo/mark-alerts-read
zinn-seo-mark-alerts-read
Mark alerts read (Pro)
Marks alerts read (ids).
Pro editionPOST …/abilities/zinn-seo/mark-alerts-read/runthe REST route's own per-item permission checkids: array (required), dry_run: boolean
zinn-seo/open-support-ticket
zinn-seo-open-support-ticket
Open a support ticket
Files a support ticket (subject, message, kind, email), with this site's diagnostics when the administrator agreed. It never creates a login or sends one.
Free editionPOST …/abilities/zinn-seo/open-support-ticket/runmanage_options (the REST route's own check)subject: string (required), message: string (required), kind: help|bug|feedback|feature_request, email: string, name: string, diagnostics: boolean, dry_run: boolean
zinn-seo/optimise-site
zinn-seo-optimise-site
Optimise this site
A guided run: the agent audits the site, proposes a plan, tries every change first, applies what you agree to as undoable changes, and reports what it did.
Pro editionPOST …/abilities/zinn-seo/optimise-site/runzseo_managefocus: string
zinn-seo/post-business-update
zinn-seo-post-business-update
Post a Business Profile update (Pro)
Publishes an update (summary), optionally linking a post (post_id).
Pro editionPOST …/abilities/zinn-seo/post-business-update/runthe REST route's own per-item permission checksummary: string (required), post_id: integer, dry_run: boolean
zinn-seo/preview-address-change
zinn-seo-preview-address-change
Preview an address change
Shows how post, category and tag addresses would change with a new permalink structure (structure, category_base, tag_base), page by page (after, per). Nothing changes.
Free editionPOST …/abilities/zinn-seo/preview-address-change/runmanage_options (the REST route's own check)structure: string, category_base: string, tag_base: string, after: string, per: integer, dry_run: boolean
zinn-seo/preview-generated-pages
zinn-seo-preview-generated-pages
Preview pages from a spreadsheet (Agency)
Reads a spreadsheet (csv text or a Google Sheets url) and a plan (template page, title and description patterns) and shows the pages it would make, with the rows it would hold back. Nothing is created.
Pro editionPOST …/abilities/zinn-seo/preview-generated-pages/runpublish_pages (the REST route's own check)csv: string, url: string, plan: object, dry_run: boolean
zinn-seo/preview-image-fix
zinn-seo-preview-image-fix
Preview an image fix
Shows what an image action (action) would write on a sample of images. Nothing changes.
Free editionPOST …/abilities/zinn-seo/preview-image-fix/runthe REST route's own per-item permission checkaction: object (required), dry_run: boolean
zinn-seo/preview-redirect-import
zinn-seo-preview-redirect-import
Preview a redirect import
Shows what importing from a source (source; text for a pasted list) would add. Nothing changes.
Free editionPOST …/abilities/zinn-seo/preview-redirect-import/runthe REST route's own per-item permission checksource: string (required), text: string, dry_run: boolean
zinn-seo/preview-robots-txt
zinn-seo-preview-robots-txt
Preview robots.txt
Shows the whole robots.txt and its checks with draft rules (custom). Nothing changes.
Free editionPOST …/abilities/zinn-seo/preview-robots-txt/runthe REST route's own per-item permission checkcustom: string (required), dry_run: boolean
zinn-seo/preview-social-card
zinn-seo-preview-social-card
Preview a social card (Pro)
Draws one post's card with draft settings (post, settings).
Pro editionPOST …/abilities/zinn-seo/preview-social-card/runthe REST route's own per-item permission checkpost: integer, settings: object, dry_run: boolean
zinn-seo/preview-title-template
zinn-seo-preview-title-template
Preview a title template
Renders a draft template (key, title, desc, sep) on a real example.
Free editionPOST …/abilities/zinn-seo/preview-title-template/runthe REST route's own per-item permission checkkey: string (required), title: string, desc: string, sep: string, dry_run: boolean
zinn-seo/proofread
zinn-seo-proofread
Check spelling, grammar and tone
Checks a post (post) or text for spelling and grammar mistakes, and its tone, in a language. Nothing changes.
Free editionPOST …/abilities/zinn-seo/proofread/runthe REST route's own per-item permission checkpost: integer, text: string, language: string, tone: boolean, dry_run: boolean
zinn-seo/purge-cdn
zinn-seo-purge-cdn
Empty the Zinn® CDN cache
Empties the CDN's cache so visitors get the site's current files.
Free editionPOST …/abilities/zinn-seo/purge-cdn/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/quote-originality-check
zinn-seo-quote-originality-check
Price an originality check (Pro)
Says what checking a text for copies on other sites costs in Zinn® credits, for a number of sentences (count).
Pro editionGET …/abilities/zinn-seo/quote-originality-check/runthe REST route's own per-item permission checkcount: integer
zinn-seo/quote-research-tool
zinn-seo-quote-research-tool
Price a research tool run
Says what running a tool (tool) with these values (params) would cost. Nothing is spent.
Free editionPOST …/abilities/zinn-seo/quote-research-tool/runthe REST route's own per-item permission checktool: string (required), params: object (required), dry_run: boolean
zinn-seo/read-linked-sites
zinn-seo-read-linked-sites
Read your other sites again (Agency)
Reads every listed site's public posts and pages again, in the background.
Pro editionPOST …/abilities/zinn-seo/read-linked-sites/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/rebuild-redirect-index
zinn-seo-rebuild-redirect-index
Rebuild the redirect index
Rebuilds the fast lookup index of redirects.
Free editionPOST …/abilities/zinn-seo/rebuild-redirect-index/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/rebuild-sitemaps
zinn-seo-rebuild-sitemaps
Rebuild the sitemaps
Rebuilds every sitemap in the background.
Free editionPOST …/abilities/zinn-seo/rebuild-sitemaps/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/redirect-missing-page
zinn-seo-redirect-missing-page
Redirect a missing page
Creates a redirect from a missing address (address) to a page (target, code).
Free editionPOST …/abilities/zinn-seo/redirect-missing-page/runthe REST route's own per-item permission checkkind: 404|404b, address: string (required), target: string, code: integer, dry_run: boolean
zinn-seo/refresh-llms-txt
zinn-seo-refresh-llms-txt
Rebuild llms.txt
Rebuilds llms.txt and llms-full.txt now.
Free editionPOST …/abilities/zinn-seo/refresh-llms-txt/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/remove-authority-key
zinn-seo-remove-authority-key
Remove a data account key
Deletes the stored key for one source.
Free editionPOST …/abilities/zinn-seo/remove-authority-key/runthe REST route's own per-item permission checksource: string (required), dry_run: boolean
zinn-seo/remove-content-guidelines
zinn-seo-remove-content-guidelines
Remove a post's content guidelines (Pro)
Removes the guidelines brought in for one post.
Pro editionPOST …/abilities/zinn-seo/remove-content-guidelines/runthe REST route's own per-item permission checkpost: string (required), dry_run: boolean
zinn-seo/remove-linked-site
zinn-seo-remove-linked-site
Remove one of your other sites (Agency)
Removes one site and the pages read from it.
Pro editionPOST …/abilities/zinn-seo/remove-linked-site/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/remove-report-sheet
zinn-seo-remove-report-sheet
Stop copying reports to a sheet (Agency)
Disconnects one Google Sheets or Drive destination. Reports already written stay there.
Pro editionPOST …/abilities/zinn-seo/remove-report-sheet/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/reply-to-review
zinn-seo-reply-to-review
Reply to a Google review (Pro)
Posts a public reply (text) to one review (id).
Pro editionPOST …/abilities/zinn-seo/reply-to-review/runthe REST route's own per-item permission checkid: string (required), text: string (required), dry_run: boolean
zinn-seo/research-bing-keyword
zinn-seo-research-bing-keyword
Research a search on Bing
Returns weekly Bing impressions for one search in a country and language.
Free editionGET …/abilities/zinn-seo/research-bing-keyword/runthe REST route's own per-item permission checkq: string (required), country: string, language: string
zinn-seo/research-keywords
zinn-seo-research-keywords
Find keywords worth writing for (Pro)
Finds keywords for a seed (seed, country, language), on credits.
Pro editionPOST …/abilities/zinn-seo/research-keywords/runthe REST route's own per-item permission checktool: string, seed: string, competitor: string, page_url: string, country: string, language: string, dry_run: boolean
zinn-seo/restore-field-change
zinn-seo-restore-field-change
Undo an SEO change (Pro)
Puts back the value one history row replaced.
Pro editionPOST …/abilities/zinn-seo/restore-field-change/runthe REST route's own per-item permission checkrow: string (required), dry_run: boolean
zinn-seo/restore-findings
zinn-seo-restore-findings
Show hidden findings again
Brings back every hidden finding.
Free editionPOST …/abilities/zinn-seo/restore-findings/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/restore-server-rules
zinn-seo-restore-server-rules
Put back a server rules backup (Pro)
Restores one backup (backup) of the server rules.
Pro editionPOST …/abilities/zinn-seo/restore-server-rules/runthe REST route's own per-item permission checkbackup: string (required), dry_run: boolean
zinn-seo/retry-failed-submissions
zinn-seo-retry-failed-submissions
Send failed pages again
Sends failed submissions again, each to the search engine it failed on; with no ids every failed row is sent.
Free editionPOST …/abilities/zinn-seo/retry-failed-submissions/runthe REST route's own per-item permission checkids: array, dry_run: boolean
zinn-seo/rewrite-for-query
zinn-seo-rewrite-for-query
Rewrite a page for a query with AI (Pro)
Writes a new title and description for a page (post_id) aimed at a query.
Pro editionPOST …/abilities/zinn-seo/rewrite-for-query/runthe REST route's own per-item permission checkpost_id: integer (required), query: string (required), dry_run: boolean
zinn-seo/run-ai-task
zinn-seo-run-ai-task
Write SEO text with AI
Runs an AI task (task: e.g. titles, descriptions, alt text) for the given items (ids, options). Results wait as suggestions for a person to accept. Uses the site owner's key or Zinn® credits.
Free editionPOST …/abilities/zinn-seo/run-ai-task/runthe REST route's own per-item permission checktask: string (required), ids: array, options: object, dry_run: boolean
zinn-seo/run-authority-check
zinn-seo-run-authority-check
Check authority now
Checks one source now (with the owner's own key, or on Zinn® credits).
Free editionPOST …/abilities/zinn-seo/run-authority-check/runthe REST route's own per-item permission checksource: string (required), dry_run: boolean
zinn-seo/run-check
zinn-seo-run-check
Run a check now
Runs one check (tool: rank, index, ai, links, audit, keywords, gap …) on the site owner's Zinn® credits (seed, page_url where the check takes one). Each check's price is in the list of checks.
Free editionPOST …/abilities/zinn-seo/run-check/runthe REST route's own per-item permission checktool: string (required), seed: string, page_url: string, dry_run: boolean
zinn-seo/run-edge-action
zinn-seo-run-edge-action
Run a Cloudflare action (Pro)
Runs one edge action (what): purge, deploy the redirects or the crawler rules.
Pro editionPOST …/abilities/zinn-seo/run-edge-action/runthe REST route's own per-item permission checkwhat: string (required), dry_run: boolean
zinn-seo/run-fix
zinn-seo-run-fix
Run a fix
Runs one finding's fix (action, as listed).
Free editionPOST …/abilities/zinn-seo/run-fix/runthe REST route's own per-item permission checkaction: string (required), dry_run: boolean
zinn-seo/run-image-fix
zinn-seo-run-image-fix
Fix image alt text
Runs an image action (action) on every image in the background.
Free editionPOST …/abilities/zinn-seo/run-image-fix/runthe REST route's own per-item permission checkaction: object (required), dry_run: boolean
zinn-seo/run-report
zinn-seo-run-report
Make the client report now (Agency)
Makes the client report now and, with send_email true, e-mails it to the recipients.
Pro editionPOST …/abilities/zinn-seo/run-report/runthe REST route's own per-item permission checksend_email: boolean, dry_run: boolean
zinn-seo/run-research-tool
zinn-seo-run-research-tool
Run a research tool
Runs a tool (tool) with its values (params) on the site owner's Zinn® credits and returns the run.
Free editionPOST …/abilities/zinn-seo/run-research-tool/runthe REST route's own per-item permission checktool: string (required), params: object (required), dry_run: boolean
zinn-seo/run-speed-test
zinn-seo-run-speed-test
Run a lab speed test
Runs a Lighthouse test of one address (url).
Free editionPOST …/abilities/zinn-seo/run-speed-test/runthe REST route's own per-item permission checkurl: string (required), dry_run: boolean
zinn-seo/scan-conflicts
zinn-seo-scan-conflicts
Scan for SEO conflicts
Reads real pages to find what the theme and other plugins print twice.
Free editionPOST …/abilities/zinn-seo/scan-conflicts/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/scan-duplicates
zinn-seo-scan-duplicates
Find duplicates
Rebuilds the duplicate index in the background.
Free editionPOST …/abilities/zinn-seo/scan-duplicates/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/scan-spam
zinn-seo-scan-spam
Scan for spam pages
Scans the site's content for spam pages and injected links.
Free editionPOST …/abilities/zinn-seo/scan-spam/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/schedule-change
zinn-seo-schedule-change
Schedule an SEO change (Pro)
Changes a page's SEO fields (fields) at a date (at), optionally changing them back later (revert_at), with a note.
Pro editionPOST …/abilities/zinn-seo/schedule-change/runthe REST route's own per-item permission checkid: string (required), fields: object (required), at: string (required), revert_at: string, note: string, dry_run: boolean
zinn-seo/schedule-check
zinn-seo-schedule-check
Schedule a check
Turns a check's repeat schedule on or off (on).
Free editionPOST …/abilities/zinn-seo/schedule-check/runthe REST route's own per-item permission checktool: string (required), on: boolean (required), dry_run: boolean
zinn-seo/score-all-pages
zinn-seo-score-all-pages
Score every page
Starts a background job that scores every page, so lists and reports are complete.
Free editionPOST …/abilities/zinn-seo/score-all-pages/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/score-headlines
zinn-seo-score-headlines
Score headlines
Scores one or more headlines (titles) for clicks, in a language, with what would make each one stronger.
Free editionPOST …/abilities/zinn-seo/score-headlines/runthe REST route's own per-item permission checktitles: array (required), language: string, dry_run: boolean
zinn-seo/search-domains
zinn-seo-search-domains
Search domain names
Checks which domain names are free and their prices (query).
Free editionPOST …/abilities/zinn-seo/search-domains/runthe REST route's own per-item permission checkquery: string (required), dry_run: boolean
zinn-seo/search-local-places
zinn-seo-search-local-places
Search towns (Pro)
Finds towns and areas in a country (country, q).
Pro editionGET …/abilities/zinn-seo/search-local-places/runthe REST route's own per-item permission checkcountry: string (required), q: string (required)
zinn-seo/search-offer-listings
zinn-seo-search-offer-listings
Search a Zinn® service's listings
Lists what one service offers (offer, product; q, max_price_minor).
Free editionGET …/abilities/zinn-seo/search-offer-listings/runthe REST route's own per-item permission checkoffer: string (required), product: string (required), q: string, max_price_minor: integer
zinn-seo/search-schema-types
zinn-seo-search-schema-types
Search schema.org types
Finds schema.org types by name (q).
Free editionGET …/abilities/zinn-seo/search-schema-types/runedit_posts (the REST route's own check)q: string (required)
zinn-seo/send-work-log
zinn-seo-send-work-log
Count the work done for the report (Agency)
Sends the counts of SEO changes made on this site since the last report (no content) so the report can show the work done.
Pro editionPOST …/abilities/zinn-seo/send-work-log/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/set-ai-funding
zinn-seo-set-ai-funding
Choose how AI is paid for
Sets funding: byo (the site owner's own AI key), credits (Zinn® credits) or auto.
Free editionPOST …/abilities/zinn-seo/set-ai-funding/runthe REST route's own per-item permission checkfunding: auto|byo|credits (required), dry_run: boolean
zinn-seo/set-authority-competitors
zinn-seo-set-authority-competitors
Set the competitors to track (Pro)
Sets the competitor domains whose authority is tracked beside this site's.
Pro editionPOST …/abilities/zinn-seo/set-authority-competitors/runthe REST route's own per-item permission checkcompetitors: array (required), dry_run: boolean
zinn-seo/set-authority-feed
zinn-seo-set-authority-feed
Set what an authority source checks
Chooses the metrics and how often one source is checked (metrics, cadence_days, on).
Free editionPOST …/abilities/zinn-seo/set-authority-feed/runthe REST route's own per-item permission checksource: string (required), show: array, track: array, alerts: array, cadence_days: 1|7|30, enabled: boolean, dry_run: boolean
zinn-seo/set-authority-key
zinn-seo-set-authority-key
Add your own data account key
Stores the site owner's own API key for a source (key; plus login where the source needs one). The key is never returned.
Free editionPOST …/abilities/zinn-seo/set-authority-key/runthe REST route's own per-item permission checksource: string (required), api_key: string, access_id: string, access_secret: string, database: string, dry_run: boolean
zinn-seo/set-bing-crawl-rate
zinn-seo-set-bing-crawl-rate
Set Bing's crawl rate
Saves how fast Bing crawls this site, hour by hour from 1 (slowest) to 10 (fastest).
Free editionPOST …/abilities/zinn-seo/set-bing-crawl-rate/runthe REST route's own per-item permission checkrate: array (required), boost: boolean, dry_run: boolean
zinn-seo/set-check-list
zinn-seo-set-check-list
Set what a check tracks
Sets the keywords, pages or competitors a check tracks (items).
Free editionPOST …/abilities/zinn-seo/set-check-list/runthe REST route's own per-item permission checktool: string (required), items: array (required), dry_run: boolean
zinn-seo/set-content-guidelines
zinn-seo-set-content-guidelines
Bring in content guidelines for a post (Pro)
Brings in guidelines for one post: pasted text with its source, or a report (ref) fetched from Surfer or Frase (tool) with the owner's key, in a language.
Pro editionPOST …/abilities/zinn-seo/set-content-guidelines/runthe REST route's own per-item permission checkpost: string (required), text: string, source: surfer|clearscope|marketmuse|frase|semrush|other, tool: |surfer|frase, ref: string, language: string, dry_run: boolean
zinn-seo/set-content-todo
zinn-seo-set-content-todo
Mark a page to refresh or write (Pro)
Marks a page (page) to refresh or write (kind), done or not, with a note.
Pro editionPOST …/abilities/zinn-seo/set-content-todo/runthe REST route's own per-item permission checkkind: refresh|write (required), page: string (required), done: boolean, note: string, dry_run: boolean
zinn-seo/set-content-tool-key
zinn-seo-set-content-tool-key
Add a content tool key (Pro)
Stores the site owner's own API key for a content tool (key). The key is never returned.
Pro editionPOST …/abilities/zinn-seo/set-content-tool-key/runthe REST route's own per-item permission checktool: string (required), key: string (required), dry_run: boolean
zinn-seo/set-crawl-log
zinn-seo-set-crawl-log
Record crawler visits (Pro)
Turns crawler logging on or off (on), with a sample rate (sample).
Pro editionPOST …/abilities/zinn-seo/set-crawl-log/runthe REST route's own per-item permission checkon: boolean (required), sample: integer, dry_run: boolean
zinn-seo/set-expected-terms
zinn-seo-set-expected-terms
Learn the terms top pages use (Pro)
Reads reference pages (urls) and stores the terms a page about the same topic is expected to cover.
Pro editionPOST …/abilities/zinn-seo/set-expected-terms/runthe REST route's own per-item permission checkid: string (required), urls: array (required), dry_run: boolean
zinn-seo/set-google-indexing
zinn-seo-set-google-indexing
Send job and live stream pages to Google
Turns the Indexing API on or off (on) for these post types (types).
Free editionPOST …/abilities/zinn-seo/set-google-indexing/runthe REST route's own per-item permission checkon: boolean (required), types: array, dry_run: boolean
zinn-seo/set-indexing-rules
zinn-seo-set-indexing-rules
Set the pages kept out of indexing
Saves the wildcard rules that keep matching pages out of automatic submission to search engines.
Free editionPOST …/abilities/zinn-seo/set-indexing-rules/runthe REST route's own per-item permission checkrules: string (required), dry_run: boolean
zinn-seo/set-integration
zinn-seo-set-integration
Turn an integration on or off
Switches one integration (id) on or off (on).
Free editionPOST …/abilities/zinn-seo/set-integration/runthe REST route's own per-item permission checkid: string (required), on: boolean (required), dry_run: boolean
zinn-seo/set-local-tracking
zinn-seo-set-local-tracking
Set up local rank tracking (Pro)
Sets the business, keywords and towns for local rankings.
Pro editionPOST …/abilities/zinn-seo/set-local-tracking/runthe REST route's own per-item permission checkbusiness: object (required), keywords: array (required), places: array (required), dry_run: boolean
zinn-seo/set-mention-phrases
zinn-seo-set-mention-phrases
Set the phrases to watch (Pro)
Sets the brand phrases watched for mentions (phrases).
Pro editionPOST …/abilities/zinn-seo/set-mention-phrases/runthe REST route's own per-item permission checkphrases: array (required), dry_run: boolean
zinn-seo/set-module
zinn-seo-set-module
Switch an SEO module on or off
Switches one module (id) on or off (enabled).
Free editionPOST …/abilities/zinn-seo/set-module/runthe REST route's own per-item permission checkid: string (required), enabled: boolean (required), dry_run: boolean
zinn-seo/set-notrace
zinn-seo-set-notrace
Switch no-trace mode
Turns no-trace mode on or off (enabled). Run it with dry_run true first: it lists every address that would change, which search engines must be told about.
Free editionPOST …/abilities/zinn-seo/set-notrace/runthe REST route's own per-item permission checkenabled: boolean (required), dry_run: boolean
zinn-seo/set-order-placement
zinn-seo-set-order-placement
Tell Zinn® where an order goes
Gives an order the address of the page it is for (url).
Free editionPOST …/abilities/zinn-seo/set-order-placement/runthe REST route's own per-item permission checkid: string (required), url: string (required), dry_run: boolean
zinn-seo/set-page-focus
zinn-seo-set-page-focus
Set a page's target market (Pro)
Sets a page's country, language and phrase for keyword research.
Pro editionPOST …/abilities/zinn-seo/set-page-focus/runedit_post (the REST route's own check)post: string (required), country: string, language: string, phrase: string, dry_run: boolean
zinn-seo/set-page-lock
zinn-seo-set-page-lock
Lock or unlock a page (Pro)
Locks (locked true) or unlocks a page's SEO fields.
Pro editionPOST …/abilities/zinn-seo/set-page-lock/runedit_post (the REST route's own check)id: string (required), locked: boolean (required), dry_run: boolean
zinn-seo/set-page-schema
zinn-seo-set-page-schema
Set a page's structured data (Pro)
Replaces the structured data added to one page (types: type and field values).
Pro editionPOST …/abilities/zinn-seo/set-page-schema/runthe REST route's own per-item permission checkid: string (required), types: array (required), dry_run: boolean
zinn-seo/set-post-keyword-lists
zinn-seo-set-post-keyword-lists
Set one post's keyword lists
Replaces the keyword lists one post or page is given to (lists: list ids).
Free editionPOST …/abilities/zinn-seo/set-post-keyword-lists/runthe REST route's own per-item permission checkpost: string (required), lists: array (required), dry_run: boolean
zinn-seo/set-proofread-key
zinn-seo-set-proofread-key
Add a proofreading service key
Stores the site owner's own key for the proofreading service (key). The key is never returned.
Free editionPOST …/abilities/zinn-seo/set-proofread-key/runthe REST route's own per-item permission checkkey: string (required), dry_run: boolean
zinn-seo/set-redirect-conditions
zinn-seo-set-redirect-conditions
Set a redirect's conditions (Pro)
Sets when one redirect runs (match: all or any; rules: condition, operator, value).
Pro editionPOST …/abilities/zinn-seo/set-redirect-conditions/runthe REST route's own per-item permission checkid: string (required), match: all|any, rules: array (required), dry_run: boolean
zinn-seo/set-search-visibility
zinn-seo-set-search-visibility
Let search engines index the site, or not
Changes WordPress's own Reading setting (public: true lets search engines index the site). Administrators only.
Free editionPOST …/abilities/zinn-seo/set-search-visibility/runthe REST route's own per-item permission checkpublic: boolean (required), dry_run: boolean
zinn-seo/start-address-change
zinn-seo-start-address-change
Change the site's addresses safely
Changes the permalink structure and bases, with a 301 redirect from every old address to its new one, so no ranking or link is lost.
Free editionPOST …/abilities/zinn-seo/start-address-change/runmanage_options (the REST route's own check)structure: string, category_base: string, tag_base: string, dry_run: boolean
zinn-seo/start-affiliate-job
zinn-seo-start-affiliate-job
Start an affiliate link job (Pro)
Starts finding affiliate links in every post (job: index) or checking that every destination still answers (job: check), in the background.
Pro editionPOST …/abilities/zinn-seo/start-affiliate-job/runthe REST route's own per-item permission checkjob: string (required), dry_run: boolean
zinn-seo/start-ai-bulk
zinn-seo-start-ai-bulk
Write SEO text for many pages with AI (Pro)
Starts an AI bulk job (task) over post types (types), only where text is missing (missing), with a dry run or straight acceptance (accept).
Pro editionPOST …/abilities/zinn-seo/start-ai-bulk/runthe REST route's own per-item permission checktask: string (required), types: array, missing: boolean, dry_run: boolean, accept: boolean
zinn-seo/start-seo-test
zinn-seo-start-seo-test
Start an SEO title test (Pro)
Starts a test of new titles or descriptions on pages (name, pages, phases, hours, keep).
Pro editionPOST …/abilities/zinn-seo/start-seo-test/runthe REST route's own per-item permission checkname: string (required), pages: array (required), phases: array, hours: integer, keep: string, dry_run: boolean
zinn-seo/start-trial
zinn-seo-start-trial
Start the free Pro trial
Starts the 14-day Zinn® SEO Pro trial for this site (no payment needed).
Free editionPOST …/abilities/zinn-seo/start-trial/runmanage_options (the REST route's own check)dry_run: boolean
zinn-seo/stop-import
zinn-seo-stop-import
Stop a move
Stops a running copy or comparison.
Free editionPOST …/abilities/zinn-seo/stop-import/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/stop-local-tracking
zinn-seo-stop-local-tracking
Stop local rank tracking (Pro)
Stops tracking local rankings.
Pro editionPOST …/abilities/zinn-seo/stop-local-tracking/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/stop-research-watch
zinn-seo-stop-research-watch
Stop repeating research
Stops a repeating run.
Free editionPOST …/abilities/zinn-seo/stop-research-watch/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/stop-seo-test
zinn-seo-stop-seo-test
Stop an SEO test (Pro)
Stops a test and keeps version A or B (keep).
Pro editionPOST …/abilities/zinn-seo/stop-seo-test/runthe REST route's own per-item permission checkid: string (required), keep: A|B, dry_run: boolean
zinn-seo/submit-pages
zinn-seo-submit-pages
Send pages to search engines
Sends this site's addresses to IndexNow, Bing's URL API or Google's Indexing API (job and livestream pages only); each answer is logged.
Free editionPOST …/abilities/zinn-seo/submit-pages/runthe REST route's own per-item permission checkurls: array (required), engines: array (required), dry_run: boolean
zinn-seo/submit-sitemaps
zinn-seo-submit-sitemaps
Submit the sitemaps
Submits the site's sitemaps to Search Console.
Free editionPOST …/abilities/zinn-seo/submit-sitemaps/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/submit-to-bing
zinn-seo-submit-to-bing
Submit to Bing
Submits the sitemaps and recent addresses to Bing.
Free editionPOST …/abilities/zinn-seo/submit-to-bing/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/submit-urls
zinn-seo-submit-urls
Ask search engines to index addresses
Sends addresses (urls) to IndexNow and, where allowed, Google.
Free editionPOST …/abilities/zinn-seo/submit-urls/runthe REST route's own per-item permission checkurls: array (required), dry_run: boolean
zinn-seo/suggest-ai-redirects
zinn-seo-suggest-ai-redirects
Suggest redirects with AI (Pro)
Matches missing addresses (kind notfound) or an old site's addresses (kind move: sitemap or addresses) to the best page here.
Pro editionPOST …/abilities/zinn-seo/suggest-ai-redirects/runthe REST route's own per-item permission checkkind: notfound|move (required), sitemap: string, addresses: array, dry_run: boolean
zinn-seo/switch-off-old-plugin
zinn-seo-switch-off-old-plugin
Switch off the old SEO plugin
Deactivates the old SEO plugin after a clean comparison. It can be undone.
Free editionPOST …/abilities/zinn-seo/switch-off-old-plugin/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/sync-notices
zinn-seo-sync-notices
Fetch new notices
Fetches new notices from the Zinn® account now.
Free editionPOST …/abilities/zinn-seo/sync-notices/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/sync-report-sheet
zinn-seo-sync-report-sheet
Copy the report to its sheet now (Agency)
Writes the latest report into its connected Google Sheet or Drive folder now.
Pro editionPOST …/abilities/zinn-seo/sync-report-sheet/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/test-alert-channel
zinn-seo-test-alert-channel
Send a test alert (Agency)
Sends a test message to one channel (index) and says whether it arrived.
Pro editionPOST …/abilities/zinn-seo/test-alert-channel/runthe REST route's own per-item permission checkindex: integer (required), dry_run: boolean
zinn-seo/test-redirect
zinn-seo-test-redirect
Test an address
Says which redirect an address (url) meets and where it ends.
Free editionGET …/abilities/zinn-seo/test-redirect/runthe REST route's own per-item permission checkurl: string (required)
zinn-seo/test-robots-txt
zinn-seo-test-robots-txt
Test robots.txt
Says whether a crawler (agent) may fetch an address (url), with the saved or draft rules.
Free editionPOST …/abilities/zinn-seo/test-robots-txt/runthe REST route's own per-item permission checkurl: string (required), agent: string, custom: string, dry_run: boolean
zinn-seo/track-keyword-list
zinn-seo-track-keyword-list
Track a keyword list's rankings
Adds every phrase of one keyword list to the phrases whose rankings are tracked (a paid check on the site owner's Zinn® credits); none already tracked is lost.
Free editionPOST …/abilities/zinn-seo/track-keyword-list/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/track-keywords
zinn-seo-track-keywords
Track keywords (Pro)
Adds keyword rows (rows) to rank tracking.
Pro editionPOST …/abilities/zinn-seo/track-keywords/runthe REST route's own per-item permission checkrows: array (required), dry_run: boolean
zinn-seo/undo-bulk-batch
zinn-seo-undo-bulk-batch
Undo a bulk change
Puts back every value one batch changed.
Free editionPOST …/abilities/zinn-seo/undo-bulk-batch/runthe REST route's own per-item permission checkbatch: string (required), dry_run: boolean
zinn-seo/undo-conflict-fix
zinn-seo-undo-conflict-fix
Undo a conflict fix
Puts back what one conflict fix changed (id).
Free editionPOST …/abilities/zinn-seo/undo-conflict-fix/runthe REST route's own per-item permission checkid: string (required), dry_run: boolean
zinn-seo/undo-generated-pages
zinn-seo-undo-generated-pages
Undo the last page run (Agency)
Moves every page the last spreadsheet run made to the trash.
Pro editionPOST …/abilities/zinn-seo/undo-generated-pages/runpublish_pages (the REST route's own check)dry_run: boolean
zinn-seo/undo-import
zinn-seo-undo-import
Undo a move
Puts back the values the move overwrote and switches the old plugin on again.
Free editionPOST …/abilities/zinn-seo/undo-import/runthe REST route's own per-item permission checkdry_run: boolean
zinn-seo/update-alert-channels
zinn-seo-update-alert-channels
Change the alert channels (Agency)
Replaces the alert channels (channels: type, url or chat, label, on, important_only) and the e-mail switch (email).
Pro editionPOST …/abilities/zinn-seo/update-alert-channels/runthe REST route's own per-item permission checkchannels: array, email: boolean, dry_run: boolean
zinn-seo/update-check-profile
zinn-seo-update-check-profile
Change the site's check profile
Changes the brand, category, market and how often scheduled checks run (cadence_days).
Free editionPOST …/abilities/zinn-seo/update-check-profile/runthe REST route's own per-item permission checkbrand: string, category: string, market: string, cadence_days: integer, dry_run: boolean
zinn-seo/update-content-idea
zinn-seo-update-content-idea
Change an idea in the content plan (Pro)
Changes one idea's working title, phrase, angle, kind, due date, keyword list, length or voice.
Pro editionPOST …/abilities/zinn-seo/update-content-idea/runthe REST route's own per-item permission checkid: string (required), title: string, phrase: string, angle: string, kind: string, due: string, kwlist: integer, words: 300|600|1000|1500|2000, voice: friendly|professional|expert|casual|persuasive|neutral, dry_run: boolean
zinn-seo/update-custom-blocks
zinn-seo-update-custom-blocks
Change custom schema blocks (Pro)
Replaces the site's own blocks (blocks: name, fields, schema type and mapping).
Pro editionPOST …/abilities/zinn-seo/update-custom-blocks/runthe REST route's own per-item permission checkblocks: array (required), dry_run: boolean
zinn-seo/update-disavow
zinn-seo-update-disavow
Change the disavow list (Pro)
Replaces the domains and addresses to disavow (domains, urls).
Pro editionPOST …/abilities/zinn-seo/update-disavow/runthe REST route's own per-item permission checkdomains: array, urls: array, dry_run: boolean
zinn-seo/update-fields
zinn-seo-update-fields
Change a page's SEO fields
Changes the SEO fields you send (fields: name to value) of one post or term; an empty value clears a field. Nothing is stored when one value is refused.
Free editionPOST …/abilities/zinn-seo/update-fields/runthe REST route's own per-item permission checkobject: string (required), id: string (required), fields: object (required), dry_run: boolean
zinn-seo/update-glossary
zinn-seo-update-glossary
Change the glossary (Pro)
Replaces the glossary terms (terms: term and definition).
Pro editionPOST …/abilities/zinn-seo/update-glossary/runthe REST route's own per-item permission checkterms: array (required), dry_run: boolean
zinn-seo/update-keyword-list
zinn-seo-update-keyword-list
Change a keyword list
Changes one keyword list's label, colour or phrases.
Free editionPOST …/abilities/zinn-seo/update-keyword-list/runthe REST route's own per-item permission checkid: string (required), label: string, color: blue|green|amber|red|purple|teal|grey, phrases: array|string, dry_run: boolean
zinn-seo/update-redirect
zinn-seo-update-redirect
Change a redirect
Changes one redirect's source, target, code, group, note or whether it is on.
Free editionPOST …/abilities/zinn-seo/update-redirect/runthe REST route's own per-item permission checkid: string (required), source: string, target: string, code: 301|302|307|308|410|451, regex: boolean, enabled: boolean, group: string, note: string, position: integer, dry_run: boolean
zinn-seo/update-report-settings
zinn-seo-update-report-settings
Change the client report (Agency)
Changes the scheduled client report (name, recipients, locale, sections, contact_name, cadence, send_email, narrative, active) and its brand.
Pro editionPOST …/abilities/zinn-seo/update-report-settings/runthe REST route's own per-item permission checkname: string, recipients: array, locale: string, sections: array, contact_name: string, cadence: string, send_email: boolean, narrative: boolean, active: boolean, brand: object, dry_run: boolean
zinn-seo/update-research-watch
zinn-seo-update-research-watch
Change repeating research
Changes a repeating run (active, cadence_days, params).
Free editionPOST …/abilities/zinn-seo/update-research-watch/runthe REST route's own per-item permission checkid: string (required), active: boolean, cadence_days: 1|7|30, params: object, dry_run: boolean
zinn-seo/update-robots-txt
zinn-seo-update-robots-txt
Change robots.txt
Stores the owner's own robots.txt rules (custom).
Free editionPOST …/abilities/zinn-seo/update-robots-txt/runthe REST route's own per-item permission checkcustom: string (required), dry_run: boolean
zinn-seo/update-roles
zinn-seo-update-roles
Change a role's SEO permissions (Pro)
Gives or takes SEO capabilities (caps: capability to true or false) of one role (role). Administrators only; the administrator role is never changed.
Pro editionPOST …/abilities/zinn-seo/update-roles/runmanage_options and promote_users (the REST route's own check)role: string (required), caps: object (required), dry_run: boolean
zinn-seo/update-schema-templates
zinn-seo-update-schema-templates
Change custom schema types (Pro)
Replaces the site's own structured data templates (templates).
Pro editionPOST …/abilities/zinn-seo/update-schema-templates/runthe REST route's own per-item permission checktemplates: array (required), dry_run: boolean
zinn-seo/update-server-rules
zinn-seo-update-server-rules
Change .htaccess rules (Pro)
Saves new server rules (text) after a syntax check and a backup; the site is tested at once and the backup put back if it stops answering. accept_warnings saves despite warnings.
Pro editionPOST …/abilities/zinn-seo/update-server-rules/runthe REST route's own per-item permission checktext: string (required), accept_warnings: boolean, dry_run: boolean
zinn-seo/update-settings
zinn-seo-update-settings
Change the SEO settings
Changes the settings you send (settings: key to value) and keeps the rest. Every value is checked as on the settings screen; nothing is stored when one is refused. The no-trace switch has its own tool.
Free editionPOST …/abilities/zinn-seo/update-settings/runthe REST route's own per-item permission checksettings: object (required), dry_run: boolean
zinn-seo/update-task
zinn-seo-update-task
Change an SEO task (Agency)
Changes a task's title, detail, url, assignee or due date.
Pro editionPOST …/abilities/zinn-seo/update-task/runthe REST route's own per-item permission checkid: string (required), title: string, detail: string, url: string, assignee: integer, due: string, dry_run: boolean
zinn-seo/update-white-label
zinn-seo-update-white-label
Change the white label (Agency)
Changes the agency brand (enabled, name, menu, description, author, author_url, help_url, logo_id, colour, hide_zinn) and the client view (client_screens, client_edit, agency_users).
Pro editionPOST …/abilities/zinn-seo/update-white-label/runmanage_options (the REST route's own check)enabled: boolean, name: string, menu: string, description: string, author: string, author_url: string, help_url: string, logo_id: integer, colour: string, hide_zinn: boolean, client_screens: array, client_edit: boolean, agency_users: array, dry_run: boolean
zinn-seo/upload-redirect-list
zinn-seo-upload-redirect-list
Send a redirect list
Keeps a CSV or .htaccess list of redirects (content) for the import.
Free editionPOST …/abilities/zinn-seo/upload-redirect-list/runthe REST route's own per-item permission checkcontent: string, dry_run: boolean
zinn-seo/validate-schema
zinn-seo-validate-schema
Validate structured data
Validates a page's graph (post) or pasted JSON-LD (json) against schema.org and Google's rich result rules.
Free editionPOST …/abilities/zinn-seo/validate-schema/runedit_posts (the REST route's own check)post: integer, json: string, dry_run: boolean
zinn-seo/watch-mentions
zinn-seo-watch-mentions
Watch a page for copies (Pro)
Watches one page (post) for copies of its content on other sites, on the site owner's Zinn® credits.
Pro editionPOST …/abilities/zinn-seo/watch-mentions/runthe REST route's own per-item permission checkpost: integer (required), dry_run: boolean
zinn-seo/watch-research-tool
zinn-seo-watch-research-tool
Repeat a research tool
Runs a tool (tool, params) again every 1, 7 or 30 days (every), on credits.
Free editionPOST …/abilities/zinn-seo/watch-research-tool/runthe REST route's own per-item permission checkparams: object (required), tool: string (required), every: 1|7|30, dry_run: boolean
zinn-seo/write-content-brief
zinn-seo-write-content-brief
Plan a page with an AI brief (Pro)
Writes a content brief for a topic (step write), then a draft from it (step draft, with brief and post type).
Pro editionPOST …/abilities/zinn-seo/write-content-brief/runthe REST route's own per-item permission checktopic: string (required), step: write|draft, brief: object, type: string, dry_run: boolean
zinn-seo/write-ctr-title
zinn-seo-write-ctr-title
Write a title that wins more clicks (Pro)
Writes a new title and description for a page (post_id) from its search queries (step write), or starts a test of them (step test).
Pro editionPOST …/abilities/zinn-seo/write-ctr-title/runthe REST route's own per-item permission checkpost_id: integer (required), step: write|test, title: string, desc: string, queries: array, impressions: integer, ctr: number, position: number, dry_run: boolean
zinn-seo/write-faq-answers
zinn-seo-write-faq-answers
Answer questions with AI (Pro)
Writes answers to questions (questions) people ask about a phrase (phrase).
Pro editionPOST …/abilities/zinn-seo/write-faq-answers/runedit_posts (the REST route's own check)questions: array (required), phrase: string, dry_run: boolean
zinn-seo/write-review-replies
zinn-seo-write-review-replies
Draft replies to reviews with AI (Pro)
Drafts replies to reviews (reviews) in the business's voice (business).
Pro editionPOST …/abilities/zinn-seo/write-review-replies/runedit_posts (the REST route's own check)reviews: array (required), business: string, dry_run: boolean
zinn-seo/write-social-text
zinn-seo-write-social-text
Write social sharing text with AI (Pro)
Writes the Facebook and X title and description of one post.
Pro editionPOST …/abilities/zinn-seo/write-social-text/runedit_post and upload_files (the REST route's own check)id: string (required), dry_run: boolean

WP-CLI commands

Run these on the server with WP-CLI. Each command checks the same permissions as the plugin's screens; the examples are taken from the plugin's own help text.

CommandWhat it doesEdition
wp zinn-seo ai accept
<task> <id>
Accept a suggestion (as the AI wrote it).Free edition
wp zinn-seo ai bulk
<task> [--dry-run] [--types=<list>] [--all] [--accept]
Pro: write suggestions for the whole site (or count them first) and run the job to the end.Free edition
wp zinn-seo ai queue
<task> [--after=<id>]
The review queue of a task.Free edition
wp zinn-seo ai run
<task> [<id>...] [--options=<json>]
Run a task on items now. The answers are kept as suggestions; nothing changes until accepted.Free edition
wp zinn-seo ai status
wp zinn-seo ai status
How AI is set up: own key or Zinn® credits, and the tasks.Free edition
wp zinn-seo analysis score
[<id>...] [--all]
Score and store posts: the given IDs, or every post with --all (runs the resumable job).Free edition
wp zinn-seo analysis show
<id> [--format=<format>]
Analyse one post and print every check.Free edition
wp zinn-seo bulk apply
[--object=<object>] [--type=<type>] [--status=<status>] [--search=<text>] [--missing=<field>] [--term=<id>] [--yes]
Change fields on every post or term matching the filters (runs here, to the end).Free edition
wp zinn-seo bulk history
[--format=<format>]
List the recent changes.Free edition
wp zinn-seo bulk undo
<batch>
Undo a change (fields edited since are left as they are).Free edition
wp zinn-seo commerce
<action>
Check every product, or write the feed to a file.Pro edition
wp zinn-seo csv export
<file> [--kinds=<kinds>]
Export to a file.Pro edition
wp zinn-seo csv import
<file> [--yes]
Import a file: without --yes, only report what would change.Pro edition
wp zinn-seo features
[--format=<format>]
List the features this build has.Free edition
wp zinn-seo field get
<object> <id> [<field>]
Print a field, or every field, of a post or term.Free edition
wp zinn-seo field set
<object> <id> <field> <value>
Change a field of a post or term. The value is read as JSON when it parses.Free edition
wp zinn-seo import acceptAccept the listed differences, which opens the switch-off.Free edition
wp zinn-seo import begin
<source>
Start reading the other plugin's data side by side without copying it.Free edition
wp zinn-seo import check
[--keep] [--resume]
Compare every page as the other plugin renders it with what Zinn® SEO would print.Free edition
wp zinn-seo import copy
[<source>] [--overwrite] [--resume]
Copy the other plugin's data in (resumes a copy that was stopped with --resume).Free edition
wp zinn-seo import count
<source> [--overwrite]
Count what a copy would bring over. Nothing is written.Free edition
wp zinn-seo import differencesThe differences the comparison found (the first 500), as JSON.Free edition
wp zinn-seo import sourcesThe SEO plugins found on this site.Free edition
wp zinn-seo import statusThe state of the move, as JSON.Free edition
wp zinn-seo import stopStop reading side by side and put the settings back (before anything was copied).Free edition
wp zinn-seo import switch
[--yes]
Switch the other plugin off (only after the comparison passed), then read the pages again; a page that says something else switches it back on.Free edition
wp zinn-seo import undo
[--yes]
Undo the move: the other plugin back on, copied values and settings removed.Free edition
wp zinn-seo info
[--format=<format>]
Show the version, plan, modules and setup state.Free edition
wp zinn-seo integrations
<action> [<id>]
The plugins Zinn® SEO works with on this site.Free edition
wp zinn-seo jobs list
[--format=<format>]
List the jobs.Free edition
wp zinn-seo jobs run
<id> [--restart]
Run a job to the end in this process (starts it when it is not running).Free edition
wp zinn-seo modules disable
<id>
Switch a module off.Free edition
wp zinn-seo modules enable
<id>
Switch a module on.Free edition
wp zinn-seo modules list
[--format=<format>]
List the modules.Free edition
wp zinn-seo network
<action> [<value>]
The network from a shell.Pro edition
wp zinn-seo notrace offSwitch it off (lists what changes).Free edition
wp zinn-seo notrace onSwitch it on (lists what changes).Free edition
wp zinn-seo notrace statusShow whether it is on.Free edition
wp zinn-seo redirects add
<source> [<target>] [--code=<code>] [--regex] [--group=<group>] [--replace]
Add (or, with --replace, replace) a redirect.Free edition
wp zinn-seo redirects check
[--targets] [--fix]
Find chains and loops (and, with --targets, targets that are missing); --fix fixes them.Free edition
wp zinn-seo redirects delete
<id>...
Delete redirects by id.Free edition
wp zinn-seo redirects export
<file>
Export every redirect as a spreadsheet.Free edition
wp zinn-seo redirects import
<source> [--apply]
Import redirects (dry run unless --apply).Free edition
wp zinn-seo redirects list
[--search=<text>] [--problem=<problem>] [--per=<n>] [--format=<format>]
List redirects (newest first).Free edition
wp zinn-seo redirects rebuildRewrite the redirect index visitors' requests read.Free edition
wp zinn-seo redirects test
<url>
What a visitor asking for an address gets.Free edition
wp zinn-seo schema graph
<post>
wp zinn-seo schema graph 42
Print the graph a page prints.Free edition
wp zinn-seo schema validate
[<post>] [--file=<file>] [--format=<format>]
wp zinn-seo schema validate 42

wp zinn-seo schema validate --file=page.html --format=json
Validate a page's structured data offline (schema.org and Google's rich-result rules).Free edition
wp zinn-seo settings exportPrint the settings export (JSON) for another site.Free edition
wp zinn-seo settings get
[<key>]
Print one setting, or all of them.Free edition
wp zinn-seo settings import
<file> [--yes]
Import a settings export. Without --yes it only lists what would change.Free edition
wp zinn-seo settings set
<key> <value>
Change one setting. The value is read as JSON when it parses (true, 3, ["a"]).Free edition
wp zinn-seo setup resetStart the setup again from the first step.Free edition
wp zinn-seo setup statusShow each step and what the setup found.Free edition
wp zinn-seo sitemaps build
[--wait] [--quiet-progress]
wp zinn-seo sitemaps build

wp zinn-seo sitemaps build --wait
Build every sitemap file now (runs here, to the end), then any page changed meanwhile.Free edition
wp zinn-seo sitemaps files
[--format=<format>]
Every sitemap file.Free edition
wp zinn-seo sitemaps statusThe sitemap's health as JSON.Free edition

PHP functions

Functions themes and other plugins can call. Check function_exists() first, so your code keeps working while the plugin is inactive.

FunctionWhat it doesEdition
zinn_seo(): \ZinnDigital\ZinnSEO\ApiThe Zinn® SEO API (see ZinnDigital\ZinnSEO\Api).Free edition
zinn_seo_get_field( string $field, ?int $post_id = null )A post's SEO field (shortcut for templates).Free edition
zinn_seo_site_facts( string $language = '' ): arrayWho runs the site, how to reach them and which pages matter, as short plain texts for an assistant to answer from: the same facts the page's structured data and llms.txt give.Free edition
zinn_seo_translatable_texts(): arrayThe site-wide texts that should exist in each language: title and description patterns, the llms.txt summary, the description of the organisation. Answer with a translation on the `zinn_seo_template` filter (patterns) and the `zinn_seo_site_text` filter (the others).Free edition
zinn_seo_translation_fields( string $kind = 'post' ): arrayThe SEO fields a translation plugin translates with a post or a term, and the per-page settings a new translation takes from its original unchanged (Tranzly asks this).Free edition

Actions and filters

Every hook the plugin offers, with the description from its source code. Filters change a value; actions let you run code at a moment; entry points are actions you fire to ask the plugin to do something.

HookKindWhat it doesParametersEdition
zinn_seo_abtest_switchedActionA test switched wording: caches holding the pages must let go (Zinn® Cache, the edge).nonePro edition
zinn_seo_actorFilterFilters who is making a change through the REST API (user or agent).string $actorFree edition
zinn_seo_admin_dataFilterFilters the data the admin app boots with.noneFree edition
zinn_seo_agency_planFilterFilters whether the Agency-plan features run (the plan decides; tests set it).bool $agencyFree edition
zinn_seo_ai_acceptedActionFires after a person accepted an AI suggestion.int $id, string $taskFree edition
zinn_seo_ai_availableFilterFilters whether AI writing is available on this site (the AI module answers true when a key or Zinn® credits can pay for it). The editor and the blocks screen show AI buttons only when it is true.bool $available Whether AI is available. Default false.Free edition
zinn_seo_ai_crawlersFilterFilters the AI crawlers the policy screen lists (id => token, company, kind, docs).noneFree edition
zinn_seo_ai_draft_blockFilterFilters a custom block drafted from a sentence: return a definition (title, fields, template, schema) or a WP_Error. The AI features answer here when an AI connection (your own key or Zinn® credits) is set up.string $sentencePro edition
zinn_seo_ai_rejectedActionFires after a suggestion was thrown away unused (a drawn image is deleted then).int $id, string $taskFree edition
zinn_seo_ai_spentActionFires after AI was paid with Zinn® credits.int $charged, int $balance, string $purposeFree edition
zinn_seo_ai_tasksActionFires when the AI tasks are registered: the Pro module adds its own here.noneFree edition
zinn_seo_alertActionFires for every notice the site's rule says to send, so other channels (Slack, Teams, Discord, Telegram, a webhook) get the same alerts as e-mail: ONE rule set.noneFree edition
zinn_seo_alert_mailFilterFilters whether a due notice is e-mailed (the alert channels may take e-mail off).bool $mailFree edition
zinn_seo_analysisFilterFilters an analysis (other modules add groups: link suggestions, entities, AI preview).Doc $doc, \WP_Post $copyFree edition
zinn_seo_analysis_inputFilterFilters what the checks know about a page before they run.\WP_Post $copyFree edition
zinn_seo_analysis_languageFilterFilters the language a post is analysed in.string $locale, int $post_idFree edition
zinn_seo_analysis_phrase_limitFilterFilters how many focus phrases per post the analysis measures (0: no limit; Pro lifts it).int $limitFree edition
zinn_seo_analysis_storedActionFires after a post's analysis was stored.int $post_idFree edition
zinn_seo_analysis_typesFilterFilters the post types the content analysis runs on.noneFree edition
zinn_seo_authority_competitorsFilterFilters whether the authority screen offers competitor tracking (Zinn® SEO Pro answers true).bool $can Whether competitors can be tracked. Default false.Free edition
zinn_seo_authority_sourcesFilterFilters the SEO data sources this site can connect (Pro adds the paid-account vendors).noneFree edition
zinn_seo_block_css_inline_limitFilterFilters the most CSS the blocks print inline in one page (bytes; 0 = always files).int $limitFree edition
zinn_seo_block_lookupFilterFilters a block the list does not hold yet (Pro loads a custom block's definition only when a page uses it, so other pages read nothing).Block|null $found, string $nameFree edition
zinn_seo_block_scanFilterFilters the SEO blocks found in a post. Each adapter adds what its builder stores (block markup, shortcodes, Elementor data).\WP_Post $postFree edition
zinn_seo_block_valuesFilterFilters a block's cleaned values before it renders (every builder).string $name, Render_Context $ctxFree edition
zinn_seo_blocksFilterFilters the SEO blocks. Each item is a Block; Pro adds its blocks and the site's custom blocks here, and they appear in every builder with no more code.noneFree edition
zinn_seo_brief_searchesFilterFilters the related searches a brief is planned from: the keyword lists (zs-731) add the phrases of the list the person chose (`$opts['kwlist']`).string $topicPro edition
zinn_seo_card_fontFilterFilters the font file used for a word the shipped fonts cannot draw.string|null $font, string $wordPro edition
zinn_seo_cdn_changedActionFires after the Zinn® CDN went on, off or was purged, for a cache this plugin does not know.noneFree edition
zinn_seo_cdn_servingFilterFilters whether the CDN host serves the site's files (true/false skips the request).bool|null $serving, string $hostFree edition
zinn_seo_cli_deferFilterFilters whether a WP-CLI command starts Zinn® SEO after WordPress has loaded.bool $deferFree edition
zinn_seo_cli_leanFilterFilters whether this WP-CLI command starts without Zinn® SEO's modules.bool $leanFree edition
zinn_seo_connect_site_urlFilterFilters the address this site connects to a Zinn® account as (its home address).string $urlFree edition
zinn_seo_connectedActionFires when the site has been connected to a Zinn® account.noneFree edition
zinn_seo_counter_ceilingFilterFilters how many rows one kind of counter keeps (least recently seen are removed first).int $ceiling, string $kindFree edition
zinn_seo_crawlers_dataFilterFilters the crawler screen's data (the Pro hit log adds `hits`).noneFree edition
zinn_seo_credit_newsActionFires when Zinn® has news about the account's credit: the kept balance is stale.noneFree edition
zinn_seo_credit_resumedActionFires when credit came back and paused checks are running again.noneFree edition
zinn_seo_credit_stateActionFires when the account's credit state changes (held, empty, short, low, ok).string $state, string $beforeFree edition
zinn_seo_disconnectedActionFires when the site has been disconnected from its Zinn® account.noneFree edition
zinn_seo_editor_dataFilterFilters the data the block editor's panels boot with (the schema module adds its choices). ⛔ Printed into the page: nothing secret.noneFree edition
zinn_seo_field_placeholdersFilterFilters the template results a page's empty fields show as placeholders.Context $cFree edition
zinn_seo_field_savedActionFires after an SEO field changed (the history module records it).string $kind, int $id, string $name, mixed $before, mixed $clean, string $actorFree edition
zinn_seo_fixit_actionsActionFires so other modules register their one-click fixes (`Fixit::action()`).noneFree edition
zinn_seo_fixit_fixedActionFires when a one-click fix ran (the client report's "work done" counts it).string $idFree edition
zinn_seo_fixit_sourcesFilterFilters the sources of the Fix-it inbox: callables returning lists of issues (`id`, `area`, `priority` 1-100, `title`, `detail`, `count`, `minutes`, `fix`).noneFree edition
zinn_seo_form_fieldsFilterFilters the per-page fields the classic editor and term forms show (the social module adds its own).noneFree edition
zinn_seo_frontend_prefixFilterFilters the class prefix the SEO blocks print (default `zd`, shared with the other Zinn® plugins so a page carries one neutral prefix).string $prefixFree edition
zinn_seo_fs_loadedActionFires once the licensing SDK has started, before the plugin itself loads.noneFree edition
zinn_seo_google_changedActionThe site now reads another Search Console or Analytics property: kept answers are gone.noneFree edition
zinn_seo_google_indexing_sentActionGoogle's Indexing API answered one address (the indexing console keeps every answer).string $url, string $kind, bool $ok, string $noteFree edition
zinn_seo_graphFilterFilters the page's JSON-LD nodes (one graph per page). Keys are local names; values are schema.org nodes with an `@id` when anything refers to them.Context $cFree edition
zinn_seo_guide_baseFilterFilters the address of the guide's site (a white-label build points it at its own).string $baseFree edition
zinn_seo_guide_slugsFilterFilters the guide pages screens link to: screen or section id => slug under the guide. An add-on adds its own screens here.noneFree edition
zinn_seo_head_tagsFilterFilters the tags the head block prints (one complete tag per entry). The social module adds Open Graph and X here.Context $cFree edition
zinn_seo_honeypot_appliesFilterFilters whether the honeypot checks a comment (a plugin with its own comment form can opt out).bool $appliesFree edition
zinn_seo_import_begunActionFires when a move from another SEO plugin begins (its settings are in, the head reads its data side by side).string $id, array $stateFree edition
zinn_seo_import_checkedActionFires when the side-by-side comparison has finished.array $checkFree edition
zinn_seo_import_finishedActionFires when a count or a copy from another SEO plugin has finished.string $source, bool $dry, array $countsFree edition
zinn_seo_import_sourcesFilterFilters the import sources (id => a Source). Another plugin can add its own reader.noneFree edition
zinn_seo_import_switchedActionFires when the switch-off was proven on the rendered pages, or rolled back.bool $ok, array $stateFree edition
zinn_seo_inclusive_termsFilterFilters the inclusive-language terms of a language: lists of `{t: "term|form", alt: "suggestion", cat: "…", level: "bad"|"ok"}`.string $baseFree edition
zinn_seo_index_check_typesFilterFilters the content types "check every page" walks.noneFree edition
zinn_seo_indexing_allowedFilterFilters whether an address may be sent automatically (the indexing console's wildcard rules say no to the pages the owner keeps out).bool $allowed, string $urlFree edition
zinn_seo_indexing_api_eligibleFilterFilters whether a post's address is sent to Google's Indexing API. Return true only for pages carrying JobPosting or a BroadcastEvent in a VideoObject (Google's rule).bool $yes, \WP_Post $postFree edition
zinn_seo_indexnow_endpointFilterFilters the IndexNow endpoint (tests point it at a local mock).string $endpointFree edition
zinn_seo_indexnow_refusalFilterFilters why this site does not send to IndexNow ('' = it sends). A site reached through a proxy under another name can allow its own host; tests point a local site at a mock engine.string $reasonFree edition
zinn_seo_indexnow_sentActionIndexNow answered a batch (the indexing console keeps every address's answer).int $code, string $messageFree edition
zinn_seo_integrationsFilterFilters the plugins Zinn® SEO works with. An add-on adds its own entry with an absolute `file` (its `integration.php`).noneFree edition
zinn_seo_is_proFilterFilters whether the premium features run (the licensing SDK decides; tests set it).bool $proFree edition
zinn_seo_is_service_productFilterFilters whether a product is sold as a service (Woo Sell Services).bool $service, \WC_Product $productPro edition
zinn_seo_jobs_loopbackFilterFilters whether the next step is chained by a loopback request. A site whose host or security plugin blocks requests to itself can turn it off: the watchdog then finishes every job, one step per run.bool $loopback, string $idFree edition
zinn_seo_kit_dataFilterFilters the admin shell's boot data. ⛔ Printed into the page: nothing secret.noneFree edition
zinn_seo_language_profileFilterFilters what the readability checks know about a language (add transition words, a passive-voice rule or a reading-ease formula for a language).string $localeFree edition
zinn_seo_list_columnFilterFilters the extra lines under a post's SEO scores in the post list (the links module adds its link counts).string $extra, int $post_idFree edition
zinn_seo_list_filterActionFires for an SEO list filter this module does not know (the links module's).string $filter, \WP_Query $queryFree edition
zinn_seo_list_filtersFilterFilters the SEO filter's choices on post lists (the links module adds orphans).noneFree edition
zinn_seo_llms_itemFilterFilters one page's line in llms.txt (the Pro Markdown version links its `.md`).\WP_Post $postFree edition
zinn_seo_llms_sectionsFilterFilters the pages llms.txt lists, as sections (`title`, `posts`).noneFree edition
zinn_seo_loadedActionThis action is documented below.noneFree edition
zinn_seo_locations_slugFilterFilters the address part location pages live under (`/locations/<name>/`).string $slugPro edition
zinn_seo_menuFilterFilters the admin menu entry (an agency's white label renames it and sets its icon).noneFree edition
zinn_seo_meta_fieldsFilterFilters the per-object SEO fields. A module adds its own here.noneFree edition
zinn_seo_module_rootsFilterFilters the directories modules are read from. An add-on plugin can ship its own modules by adding its directory; the first directory is the free one, every later one is treated as premium (booted only under a licence).noneFree edition
zinn_seo_news_excludeFilterFilters whether a story is kept out of the Google News sitemap (the news module's per-story "keep out of Google News", zs-706).bool $skip, \WP_Post $postPro edition
zinn_seo_nginx_rules_fileFilterFilters the Nginx rules file the editor may change (a host that includes a per-site file from the site's folder names it here).string $filePro edition
zinn_seo_notrace_changedActionFires after the no-trace mode was switched. Modules redirect old addresses here.bool $on, string $actorFree edition
zinn_seo_notrace_changesFilterFilters what a switch of the no-trace mode would change. Each module that prints a fingerprint adds a row: a label, the old and new value, and whether search engines should be told (a sitemap address).bool $onFree edition
zinn_seo_offers_capFilterHow many times a week one person may see the same offer (default 3; at least 1).int $capFree edition
zinn_seo_offers_showFilterWhether offers may be shown to the current person (false hides every offer).bool $showFree edition
zinn_seo_page_nodesFilterFilters the nodes a page adds to its graph besides its blocks: local key => node (`@page` = properties of the page node itself).\WP_Post $post, string $urlFree edition
zinn_seo_personFilterFilters a person's node (author, reviewer, fact-checker).int $user_idFree edition
zinn_seo_product_nodeFilterFilters a product's node before it is printed (Zinn® SEO Pro adds sizes and colours as variants, delivery and returns).\WC_Product $product, Context $cFree edition
zinn_seo_product_variants_limitFilterA product with variations as a group of variants.\WC_Product_Variable $productPro edition
zinn_seo_redirect_allowedFilterFilters whether a matched redirect answers this request.bool $allowed, string $phaseFree edition
zinn_seo_redirect_condition_FilterA custom condition: return true for the visitors this rule is for.bool $match, int $rulePro edition
zinn_seo_redirect_conditions_changedActionFires after a redirect's conditions changed (server and Cloudflare rules are rebuilt).int $idPro edition
zinn_seo_redirect_savedActionFires after a redirect is created or changed.noneFree edition
zinn_seo_redirectingActionFires just before a redirect is sent.noneFree edition
zinn_seo_redirects_changedActionFires at the end of a request in which redirect rules changed.noneFree edition
zinn_seo_render_stampFilterFilters what the cached rendering of a post is keyed on (an integration adds what its output depends on outside the post: its own tables, its settings).string $stamp, \WP_Post $postFree edition
zinn_seo_rendered_contentFilterFilters the rendered content of a post for the analysis, before WordPress's own filters (a page builder returns its own HTML here; Elementor does).string $content, \WP_Post $postFree edition
zinn_seo_resolvedFilterFilters what the head says about a page (the social module adds `social` and `discover`).Context $cFree edition
zinn_seo_robots_groupsFilterFilters extra groups, each a list of lines (the crawler module adds the blocked AI crawlers).noneFree edition
zinn_seo_robots_savedActionFires after the owner's robots.txt rules changed.string $custom, string $beforeFree edition
zinn_seo_robots_sitemapsFilterFilters the sitemap addresses robots.txt names.noneFree edition
zinn_seo_robots_starFilterFilters the lines of the `*` group after its rules (the crawler module adds the content-signal line).noneFree edition
zinn_seo_rollback_releasesFilterFilters the releases a site can go back to (a test, or a mirror inside a company network, can offer its own). Each: version, url, sha256 (or '' with source dotorg), requires_wp, requires_php, published, source.noneFree edition
zinn_seo_served_llmsActionFires when llms.txt or llms-full.txt was requested (the AI-crawler log counts bots).string $lang, bool $fullFree edition
zinn_seo_served_robotsActionFires when robots.txt is requested (the AI-crawler log counts bots here).noneFree edition
zinn_seo_served_sitemapActionFires when a sitemap address was requested (the AI-crawler log counts bots here).string $pathFree edition
zinn_seo_setting_lockedFilterFilters whether a setting is fixed from outside this site (a multisite network that locked its group). A locked setting sent back unchanged is left alone; a different value is refused.bool $locked, string $keyFree edition
zinn_seo_settings_savedActionFires after settings changed.string $actorFree edition
zinn_seo_settings_schemaFilterFilters the settings schema. A module adds its own keys here.noneFree edition
zinn_seo_setup_stepsFilterFilters the setup steps. A module adds its own (id => {title, section}).noneFree edition
zinn_seo_site_factsFilterFilters the facts about the site handed to an assistant (Zinn® Chat).string $langFree edition
zinn_seo_site_graph_typesFilterFilters the content types the site graph lists.noneFree edition
zinn_seo_site_textFilterFilters a site-wide text for a language. A translation plugin's integration answers with its translation.string $text, string $key, string $langFree edition
zinn_seo_site_texts_changedActionFires when the translation of one of this plugin's site-wide texts (a title or description pattern, the llms.txt summary, the organisation's description) changed.string $optionFree edition
zinn_seo_sitemap_allowed_hostFilterFilters whether sitemap addresses on another host are expected (a language served on its own domain). Others are reported on the health screen as a possible staging leak.bool $allowed, string $hostFree edition
zinn_seo_sitemap_changedActionFires when the sitemap files changed (a full build finished, or a file was rebuilt). The Search Console module resubmits the sitemap here.noneFree edition
zinn_seo_sitemap_entryFilterFilters one post's sitemap entry. Return an empty array to leave the post out (the redirects module drops redirected posts here; the Pro sitemap adds videos).\WP_Post $postFree edition
zinn_seo_sitemap_index_rowsFilterFilters the index's rows (the Pro news sitemap adds its own).noneFree edition
zinn_seo_sitemap_namespacesFilterFilters the XML namespaces sitemap files declare (the Pro video sitemap adds `video`).noneFree edition
zinn_seo_sitemap_sourcesFilterFilters the sitemap's other sources: id (`[a-z0-9-]+`) => `read`, `entry` and optionally `count`.noneFree edition
zinn_seo_sitemap_submitFilterLets the Bing module (and any other) send the sitemap too.string $sitemap, string $whyFree edition
zinn_seo_sitemap_term_entryFilterFilters one term's entry in the sitemap before it is written (add images, change the address).array $entry The entry: loc, and lastmod or alternates when known., WP_Term $term The term.Free edition
zinn_seo_sitemap_unitsFilterFilters the sitemap's units: `home`, `post:<type>`, `tax:<taxonomy>`, `authors`, and `x:<id>` for each source of other addresses (see `zinn_seo_sitemap_sources`).noneFree edition
zinn_seo_social_imageFilterFilters the image a page is shared with (Pro's generated cards answer here).Context $c, string $sourceFree edition
zinn_seo_spam_scannedActionFires when a hacked-site scan finishes (Pro e-mails new findings here).noneFree edition
zinn_seo_spam_watchFilterFilters whether new content is watched for spam as it is saved (Zinn® SEO Pro answers true).bool $watch Whether the watch is on. Default false.Free edition
zinn_seo_spam_wordsFilterFilters the words that mark a link as spam in the hacked-site scan.noneFree edition
zinn_seo_templateFilterFilters the record that applies to a context (the defaults with the site's changes on top). A translation plugin's integration answers with the title and description templates in the language being viewed.string $keyFree edition
zinn_seo_toolbox_productsFilterThe research toolbox's tools this edition runs (Pro adds its own).noneFree edition
zinn_seo_toolbox_runActionFires after a research toolbox run was paid for.string $productFree edition
zinn_seo_translate_fields_stepFilterFilters one step of filling the SEO fields that existing translations lack. A translation plugin answers with `next` (the last original it did, or null when none is left), `originals`, `filled`, `failed` and `error` ('' or why it stopped).int $after, int $limitFree edition
zinn_seo_translation_fieldsFilterFilters the SEO fields a translation plugin translates with a post or term, and the ones a new translation takes unchanged.string $kindFree edition
zinn_seo_unanswered_404ActionFires on a 404 no redirect answered (the 404 monitor counts it here).string $uriFree edition
zinn_seo_valueFilterFilters a value worked out for a page, once per page view: `title` and `desc` (plain text), `canonical` (an address) and `robots` (directive => true or a limit). An integration with another plugin answers here for the pages that plugin adds (a seller's store, a forum profile) and for its own rules (a filtered shop listing kept out of search results). Return the same type.mixed $value, string $field, Context $cFree edition
zinn_seo_words_per_minuteFilterFilters the reading speed, in words a minute (default 225: adults reading on screen).int $wpmFree edition
zinn_seo_writer_draftedActionFires when the writer has made a draft (the Pro planner marks its idea done).int $idFree edition
zseo_kit_api_baseFilterFilters the Zinn Digital® API base the support screens call.string $baseFree edition
zseo_kit_diagnosticsFilterFilters the diagnostics before the site owner sees them. A plugin adds its own facts under `extra`. ⛔ This runs BEFORE the preview, never between the preview and the send.noneFree edition
zseo_kit_promotionsFilterFilters the promotion registry before it is resolved. Add a row to promote another product: `id`, `kind` (hosting|marketplace|platform|plugin|bundle), `slot` (promo|cross-sell), and `url` or (for a plugin) `name`, `site`, `main_files`.noneFree edition
zseo_kit_tierFilterFilters the plan tier the kit reports for this plugin (tests and staging; the licence decides in production).string $tierFree edition