Developers
tranzly abilities reference
tranzly 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.
Endpoints
MCP over HTTP (streamable)
https://example.com/wp-json/tranzly/v1/mcpMCP over WP-CLI (standard input and output)
wp mcp-adapter serve --server=tranzly --user=<login>REST: list the abilities
/wp-json/wp-abilities/v1/abilities?category=tranzlyREST: run an ability
/wp-json/wp-abilities/v1/abilities/<name>/runAuthentication 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/tranzly/get-comments-setting/run"# MCP (JSON-RPC over HTTP, after "initialize")
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"tranzly-get-comments-setting","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.
| Ability | What it does | Edition | REST | Permission | Parameters |
|---|---|---|---|---|---|
tranzly/bulk-translatetranzly-bulk-translate | Translate the whole site Starts background translation jobs for every original of the given content types (all translated types when none are given): the missing translations, the out-of-date ones, or all of them. Returns the jobs started, one per language. | Pro edition | POST …/abilities/tranzly/bulk-translate/run | edit_posts; publish_posts to publish | languages: array (required), post_types: array, scope: missing|stale|all, engine: string, publish: boolean |
tranzly/cancel-jobtranzly-cancel-job | Cancel a job Stops a job; translations already made are kept. | Free edition | POST …/abilities/tranzly/cancel-job/run | manage_options (the REST route's own check) | id: string (required) |
tranzly/check-qualitytranzly-check-quality | Check a translation with AI Has AI compare one translation with its original and score it, and stores the report on the translation. Uses the quality-check AI model set in Tranzly's workflow settings. | Pro edition | POST …/abilities/tranzly/check-quality/run | edit_post on that translation | id: integer (required) |
tranzly/connect-supporttranzly-connect-support | Connect to support Connects this site to Zinn Digital® support (name, email, consent). | Free edition | POST …/abilities/tranzly/connect-support/run | manage_options (the REST route's own check) | email: string (required), name: string, consent: boolean (required) |
tranzly/correct-segmentstranzly-correct-segments | Correct a translation Saves corrected segments of a translation (segments: key to text); corrected text is protected from re-translation. | Free edition | POST …/abilities/tranzly/correct-segments/run | edit_post (the REST route's own check) | id: string (required), segments: object (required) |
tranzly/create-jobtranzly-create-job | Start a translation job Starts a background job translating listed posts (posts) or a whole post type into languages (langs). | Free edition | POST …/abilities/tranzly/create-job/run | edit_posts (the REST route's own check) | posts: array, post_type: string, langs: array (required), engine: string, status: publish|draft, force: boolean |
tranzly/create-post-translationtranzly-create-post-translation | Create an empty translation Creates a draft translation of a post in a language (lang) to write by hand, without an engine. | Free edition | POST …/abilities/tranzly/create-post-translation/run | the REST route's own per-item permission check | id: string (required), lang: string (required), name: string, slug: string, description: string |
tranzly/create-term-translationtranzly-create-term-translation | Create a term translation by hand Creates a term's translation in a language with a name, slug and description you give. | Free edition | POST …/abilities/tranzly/create-term-translation/run | the REST route's own per-item permission check | id: string (required), lang: string (required), name: string, slug: string, description: string |
tranzly/disconnect-supporttranzly-disconnect-support | Disconnect from support Disconnects this site from support. | Free edition | POST …/abilities/tranzly/disconnect-support/run | manage_options (the REST route's own check) | none |
tranzly/estimatetranzly-estimate | Estimate a translation Estimates characters and cost to translate posts (posts or post_type) into languages (langs) with an engine, before spending anything. | Free edition | POST …/abilities/tranzly/estimate/run | edit_posts (the REST route's own check) | posts: array, post_type: string, langs: array (required), engine: string |
tranzly/estimate-bulktranzly-estimate-bulk | Estimate translating the site (Pro) Estimates a whole-site translation in a language (post_types, scope, engine) before starting it. | Pro edition | POST …/abilities/tranzly/estimate-bulk/run | edit_posts (the REST route's own check) | post_types: array, scope: missing|stale|all, engine: string, lang: string (required), after: integer |
tranzly/export-translation-filetranzly-export-translation-file | Export a file for human translators Returns an XLIFF or CSV file (as text) with the originals and their translations in one language, for a translator or a translation agency: the given posts, or a page of up to 100 originals of a content type in a state (missing, stale, translated or all; repeat with after). Import it back with tranzly/upload-translation-file. | Pro edition | GET …/abilities/tranzly/export-translation-file/run | edit_posts; each post is included only if the user may edit it | lang: string (required), format: xliff|csv, posts: array, post_type: string, state: all|missing|stale|translated, after: integer |
tranzly/fix-statustranzly-fix-status | Translate what is missing Queues translation of every missing (or out-of-date) item in a language and post type. | Free edition | POST …/abilities/tranzly/fix-status/run | edit_posts (the REST route's own check) | post_type: string, lang: string (required), state: missing|stale|quality (required) |
tranzly/get-comments-settingtranzly-get-comments-setting | Read comment handling (Pro) Returns whether comments are shared across languages or kept per language. | Pro edition | GET …/abilities/tranzly/get-comments-setting/run | moderate_comments (the REST route's own check) | none |
tranzly/get-deepl-usagetranzly-get-deepl-usage | Read the DeepL usage Returns the characters used and the limit of the saved DeepL key this month. | Free edition | GET …/abilities/tranzly/get-deepl-usage/run | manage_options (the REST route's own check) | none |
tranzly/get-diagnosticstranzly-get-diagnostics | Read the site diagnostics Returns the diagnostics a support ticket would carry: versions, active plugins, limits and recent errors. | Free edition | GET …/abilities/tranzly/get-diagnostics/run | manage_options (the REST route's own check) | none |
tranzly/get-displaytranzly-get-display | Read the display options Returns the language switcher and credit display options. | Free edition | GET …/abilities/tranzly/get-display/run | manage_options (the REST route's own check) | none |
tranzly/get-engine-settingstranzly-get-engine-settings | Read the engine settings Returns the default and fallback engine, per-language engines, each engine's state and this month's spend. | Free edition | GET …/abilities/tranzly/get-engine-settings/run | manage_options (the REST route's own check) | none |
tranzly/get-glossarytranzly-get-glossary | Read the glossary Returns the words never translated, the fixed term translations and the tone per language. | Pro edition | GET …/abilities/tranzly/get-glossary/run | manage_options | none |
tranzly/get-integrationstranzly-get-integrations | Read the integrations Lists the SEO, WooCommerce, page-builder and form plugins Tranzly supports and which are active here. | Free edition | GET …/abilities/tranzly/get-integrations/run | manage_options (the REST route's own check) | none |
tranzly/get-jobtranzly-get-job | Read a job's progress Returns one job's progress and counts. | Free edition | GET …/abilities/tranzly/get-job/run | manage_options (the REST route's own check) | id: string (required) |
tranzly/get-job-failurestranzly-get-job-failures | Read a job's failures Lists a job's failed items with the reason for each. | Free edition | GET …/abilities/tranzly/get-job-failures/run | manage_options (the REST route's own check) | id: string (required) |
tranzly/get-legacy-importtranzly-get-legacy-import | Read the Tranzly 2.x import Returns the state and report of importing translations from Tranzly 2.x. | Free edition | GET …/abilities/tranzly/get-legacy-import/run | manage_options (the REST route's own check) | none |
tranzly/get-licencetranzly-get-licence | Read the licence Returns this site's Tranzly plan, licence state, renewal date and what the plan includes. | Free edition | GET …/abilities/tranzly/get-licence/run | manage_options (the REST route's own check) | none |
tranzly/get-menustranzly-get-menus | Read the menus per language Returns which menu each language shows in each menu location. | Free edition | GET …/abilities/tranzly/get-menus/run | edit_theme_options (the REST route's own check) | none |
tranzly/get-post-grouptranzly-get-post-group | Read a post's translations Lists a post's translation group: every language's member with its title, status and edit link. | Free edition | GET …/abilities/tranzly/get-post-group/run | edit_post and edit_term (the REST route's own check) | id: string (required) |
tranzly/get-quality-reporttranzly-get-quality-report | Read a quality report (Pro) Returns a translation's AI quality report: score and the segments it flagged. | Pro edition | GET …/abilities/tranzly/get-quality-report/run | edit_post (the REST route's own check) | id: string (required) |
tranzly/get-segmentstranzly-get-segments | Read a translation side by side Returns a translation's segments beside the original's, for review and correction. | Free edition | GET …/abilities/tranzly/get-segments/run | edit_post (the REST route's own check) | id: string (required) |
tranzly/get-shared-stringstranzly-get-shared-strings | Read theme and plugin texts Returns the theme and plugin texts (scope) in a language with their translations. | Free edition | GET …/abilities/tranzly/get-shared-strings/run | edit_theme_options (the REST route's own check) | lang: string (required), scope: menus|site|templates|gettext.theme-twentytwentyfive|gettext.plugin-page-builder-sandwich|gettext.plugin-tranzly |
tranzly/get-site-stringstranzly-get-site-strings | Read the site's texts in a language Returns the site title, tagline and widget texts in a language. | Free edition | GET …/abilities/tranzly/get-site-strings/run | manage_options (the REST route's own check) | lang: string (required) |
tranzly/get-support-connectiontranzly-get-support-connection | Read the support connection Says whether this site is connected to Zinn Digital® support, and as whom. | Free edition | GET …/abilities/tranzly/get-support-connection/run | manage_options (the REST route's own check) | refresh: boolean |
tranzly/get-term-grouptranzly-get-term-group | Read a term's translations Lists a category's or tag's translation group. | Free edition | GET …/abilities/tranzly/get-term-group/run | edit_post and edit_term (the REST route's own check) | id: string (required) |
tranzly/get-urlstranzly-get-urls | Read the address settings Returns how languages appear in addresses (folder, subdomain or domain), translated slugs and bases, and noindex for untranslated pages. | Free edition | GET …/abilities/tranzly/get-urls/run | manage_options (the REST route's own check) | none |
tranzly/get-workflow-settingstranzly-get-workflow-settings | Read the workflow settings (Pro) Returns auto-translation on publish and on update, review before publish, and the AI quality check's threshold, provider and model. | Pro edition | GET …/abilities/tranzly/get-workflow-settings/run | manage_options (the REST route's own check) | none |
tranzly/import-from-sourcetranzly-import-from-source | Migrate from WPML, Polylang or TranslatePress (Pro) Imports the next page of translations from another multilingual plugin (mode: dry-run or run; cursor). | Pro edition | POST …/abilities/tranzly/import-from-source/run | manage_options (the REST route's own check) | source: string (required), mode: dry-run|run|undo, cursor: string |
tranzly/import-translation-filetranzly-import-translation-file | Write an imported file (Pro) Writes the next page of posts from an uploaded translation file (repeat with after until done). | Pro edition | POST …/abilities/tranzly/import-translation-file/run | edit_posts (the REST route's own check) | token: string (required), after: integer |
tranzly/link-posttranzly-link-post | Link an existing post as a translation Makes an existing post (target) the translation of this post in a language. | Free edition | POST …/abilities/tranzly/link-post/run | edit_post and edit_term (the REST route's own check) | id: string (required), lang: string (required), target: integer (required) |
tranzly/link-termtranzly-link-term | Link an existing term as a translation Makes an existing term (target) the translation of this term in a language. | Free edition | POST …/abilities/tranzly/link-term/run | edit_post and edit_term (the REST route's own check) | id: string (required), lang: string (required), target: integer (required) |
tranzly/list-enginestranzly-list-engines | List translation engines Lists the translation engines, whether each is set up, and which one is used when none is named. | Free edition | GET …/abilities/tranzly/list-engines/run | edit_posts | none |
tranzly/list-import-sourcestranzly-list-import-sources | List plugins to migrate from (Pro) Lists WPML, Polylang and TranslatePress data found on this site that can be imported. | Pro edition | GET …/abilities/tranzly/list-import-sources/run | manage_options (the REST route's own check) | none |
tranzly/list-jobstranzly-list-jobs | List translation jobs Lists background translation jobs, newest first, with progress. | Free edition | GET …/abilities/tranzly/list-jobs/run | edit_posts (the REST route's own check) | none |
tranzly/list-languagestranzly-list-languages | List languages Lists the site's languages. The first one is the language the original content is written in. | Free edition | GET …/abilities/tranzly/list-languages/run | edit_posts | none |
tranzly/list-status-itemstranzly-list-status-items | List what is missing or out of date Lists originals with their translation state in a language (state: missing, stale, current), page by page. | Free edition | GET …/abilities/tranzly/list-status-items/run | edit_posts (the REST route's own check) | post_type: string, lang: string (required), state: all|missing|stale|translated|human|machine|review|quality, after: integer |
tranzly/list-support-accesstranzly-list-support-access | List temporary support logins Lists the temporary support users granted to our team and when each expires. | Free edition | GET …/abilities/tranzly/list-support-access/run | manage_options (the REST route's own check) | none |
tranzly/list-theme-stringstranzly-list-theme-strings | List theme and plugin text sources (Pro) Lists the themes and plugins whose texts can be scanned for translation, and how many strings each has. | Pro edition | GET …/abilities/tranzly/list-theme-strings/run | manage_options (the REST route's own check) | none |
tranzly/open-support-tickettranzly-open-support-ticket | Open a support ticket Files a support ticket (subject, message, kind, email) with this site's diagnostics; access_days and credentials optionally grant our team temporary access. | Free edition | POST …/abilities/tranzly/open-support-ticket/run | manage_options (the REST route's own check) | none |
tranzly/record-support-consenttranzly-record-support-consent | Consent to support diagnostics Records the administrator's consent to send diagnostics with support tickets. | Free edition | POST …/abilities/tranzly/record-support-consent/run | manage_options (the REST route's own check) | none |
tranzly/retry-job-itemtranzly-retry-job-item | Retry or hand off a failed item Retries a failed item (action: retry, optionally with another engine) or marks it for translating by hand (action: by-hand). | Free edition | POST …/abilities/tranzly/retry-job-item/run | edit_post and manage_options (the REST route's own check) | item: string (required), action: string (required), engine: string |
tranzly/review-translationtranzly-review-translation | Approve or reject a translation (Pro) Approves a translation (and publishes it when the original is published) or sends it back (decision, note). | Pro edition | POST …/abilities/tranzly/review-translation/run | edit_post (the REST route's own check) | id: string (required), decision: approve|changes|pending (required), note: string |
tranzly/revoke-support-accesstranzly-revoke-support-access | Revoke temporary support logins Removes temporary support users now (ids). | Free edition | POST …/abilities/tranzly/revoke-support-access/run | manage_options (the REST route's own check) | ids: array (required) |
tranzly/run-legacy-importtranzly-run-legacy-import | Import Tranzly 2.x translations Runs the 2.x import: dry-run (report only), run, or undo. | Free edition | POST …/abilities/tranzly/run-legacy-import/run | manage_options (the REST route's own check) | action: string (required) |
tranzly/scan-theme-stringstranzly-scan-theme-strings | Scan a theme or plugin for texts (Pro) Scans the next page of a component's PHP files for translatable texts (repeat with after until done). | Pro edition | POST …/abilities/tranzly/scan-theme-strings/run | manage_options (the REST route's own check) | component: string (required), after: integer |
tranzly/schedule-quality-checktranzly-schedule-quality-check | Check translations with AI (Pro) Schedules the AI quality check of the next page of a language's translations (or the given posts). | Pro edition | POST …/abilities/tranzly/schedule-quality-check/run | edit_posts (the REST route's own check) | lang: string (required), post_type: string, posts: array, after: integer |
tranzly/seo-audittranzly-seo-audit | Multilingual SEO audit (Pro) Checks translations for missing SEO titles, descriptions, slugs and hreflang in a language, page by page. | Pro edition | GET …/abilities/tranzly/seo-audit/run | manage_options (the REST route's own check) | lang: string (required), after: integer |
tranzly/set-comments-settingtranzly-set-comments-setting | Change comment handling (Pro) Shares comments across a post's translations or keeps them per language (mode). | Pro edition | POST …/abilities/tranzly/set-comments-setting/run | manage_options and moderate_comments (the REST route's own check) | mode: off|show|translate (required) |
tranzly/set-engine-keytranzly-set-engine-key | Save an engine key Saves the API key (and region for Microsoft) of DeepL, Google or Microsoft; empty removes it. Keys are stored encrypted and never returned. | Free edition | POST …/abilities/tranzly/set-engine-key/run | manage_options (the REST route's own check) | engine: string (required), key: string (required), region: string |
tranzly/set-menustranzly-set-menus | Set the menus per language Assigns a menu per language per location (map). | Free edition | POST …/abilities/tranzly/set-menus/run | edit_theme_options (the REST route's own check) | map: object (required) |
tranzly/set-protectiontranzly-set-protection | Protect or unlock a translation Protects a translation from being overwritten by the engine (protected: true), or unlocks it. | Free edition | POST …/abilities/tranzly/set-protection/run | edit_post (the REST route's own check) | id: string (required), protected: boolean (required) |
tranzly/set-shared-stringstranzly-set-shared-strings | Correct theme and plugin texts Saves corrected translations of theme and plugin texts (strings); they become protected. | Free edition | POST …/abilities/tranzly/set-shared-strings/run | edit_theme_options (the REST route's own check) | lang: string (required), scope: menus|site|templates|gettext.theme-twentytwentyfive|gettext.plugin-page-builder-sandwich|gettext.plugin-tranzly, strings: object (required) |
tranzly/set-site-stringtranzly-set-site-string | Translate a site text Saves one site text (key) in a language, e.g. the site title or tagline. | Free edition | POST …/abilities/tranzly/set-site-string/run | edit_theme_options and manage_options (the REST route's own check) | lang: string (required), key: string (required), translation: string (required) |
tranzly/set-urlstranzly-set-urls | Change the address settings Sets the address mode (mode), per-language domains, translated bases and segments, noindex_untranslated and slug suggestions. | Free edition | POST …/abilities/tranzly/set-urls/run | manage_options (the REST route's own check) | mode: string, segments: object, domains: object, bases: object, suggest: boolean, noindex_untranslated: boolean |
tranzly/start-trialtranzly-start-trial | Start the free Pro trial Starts the 14-day Tranzly Pro trial for this site (no payment needed). | Free edition | POST …/abilities/tranzly/start-trial/run | manage_options (the REST route's own check) | none |
tranzly/translate-media-fieldtranzly-translate-media-field | Translate an image's text Saves an image's alt text, title or caption (field) in a language (lang). | Free edition | POST …/abilities/tranzly/translate-media-field/run | edit_post (the REST route's own check) | id: string (required), lang: string (required), field: alt|caption|title (required), translation: string (required) |
tranzly/translate-posttranzly-translate-post | Translate a post or page Translates one post or page into one or more of the site's languages with a translation engine, creating each translation or updating it. New translations are drafts unless publish is true. A translation a person edited is skipped unless force is true. | Free edition | POST …/abilities/tranzly/translate-post/run | may translate that post (edit_post on it); edit_post on an existing translation; the type's publish capability to publish | id: integer (required), languages: array (required), engine: string, publish: boolean, force: boolean |
tranzly/translate-shared-stringstranzly-translate-shared-strings | Translate missing theme and plugin texts Translates the next page of untranslated theme and plugin texts in a language with the default engine (repeat with after until done). | Free edition | POST …/abilities/tranzly/translate-shared-strings/run | edit_theme_options (the REST route's own check) | lang: string (required), scope: menus|site|templates|gettext.theme-twentytwentyfive|gettext.plugin-page-builder-sandwich|gettext.plugin-tranzly, after: integer |
tranzly/translate-sitetranzly-translate-site | Translate my site A guided workflow: the agent checks the languages and engine, estimates the cost, and translates what is missing, asking before it spends or publishes. | Free edition | POST …/abilities/tranzly/translate-site/run | edit_posts | languages: string (required) |
tranzly/translate-termtranzly-translate-term | Translate a category or tag Translates one term (category, tag or product attribute) into a language (lang) with an engine, creating or updating its translation. | Free edition | POST …/abilities/tranzly/translate-term/run | the REST route's own per-item permission check | id: string (required), lang: string (required), engine: string, force: boolean, status: publish|draft |
tranzly/translation-statustranzly-translation-status | Translation status With a post ID: each language's translation of that post, whether it is out of date, and who wrote it. Without one: how much of the site is translated, per language. | Free edition | GET …/abilities/tranzly/translation-status/run | edit_post on that post; edit_posts for the site summary | id: integer, post_type: string |
tranzly/unlink-posttranzly-unlink-post | Unlink a post from its translations Takes a post out of its translation group; it keeps its language. | Free edition | POST …/abilities/tranzly/unlink-post/run | edit_post and edit_term (the REST route's own check) | id: string (required) |
tranzly/unlink-termtranzly-unlink-term | Unlink a term from its translations Takes a term out of its translation group. | Free edition | POST …/abilities/tranzly/unlink-term/run | edit_post and edit_term (the REST route's own check) | id: string (required) |
tranzly/update-displaytranzly-update-display | Change the display options Changes the switcher (style, flags, names, placement) and the credit line. | Free edition | POST …/abilities/tranzly/update-display/run | manage_options (the REST route's own check) | switcher: object, credit: boolean |
tranzly/update-engine-settingstranzly-update-engine-settings | Change the engine settings Sets the default engine, a fallback engine and per-language engines (default, fallback, per_lang). Per-language engines and fallback are Pro. | Free edition | POST …/abilities/tranzly/update-engine-settings/run | manage_options (the REST route's own check) | none |
tranzly/update-glossarytranzly-update-glossary | Update the glossary Replaces the parts of the glossary you send (words never translated, term translations, tone); parts you leave out are kept. Used by every engine from the next translation on. | Pro edition | POST …/abilities/tranzly/update-glossary/run | manage_options | dnt: array, terms: object, tone: object |
tranzly/update-settingstranzly-update-settings | Change languages and settings Sets the site's languages (languages: list of code and name; the first is the original language), the front-end class prefix, and whether AI agents (MCP) are allowed. | Free edition | POST …/abilities/tranzly/update-settings/run | manage_options (the REST route's own check) | prefix: string, mcp: boolean, languages: array |
tranzly/update-workflow-settingstranzly-update-workflow-settings | Change the workflow settings (Pro) Sets on_update (off, stale, translate), on_publish, review, quality_threshold, quality_provider and quality_model. | Pro edition | POST …/abilities/tranzly/update-workflow-settings/run | manage_options (the REST route's own check) | none |
tranzly/upload-translation-filetranzly-upload-translation-file | Import a translated file (Pro) Uploads a Tranzly XLIFF or CSV file (content, filename) translated elsewhere; answers a token for tranzly/import-translation-file. | Pro edition | POST …/abilities/tranzly/upload-translation-file/run | edit_posts (the REST route's own check) | none |