WordPress.org API: Get WordPress plugin details
Finds the best-matching WordPress.org plugin by name or plugin page link and returns its details, including the changelog for the latest version when one is available.
Unofficial. Not affiliated with or endorsed by WordPress.org.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Plugin, required
plugin Plugin name or WordPress.org plugin page link, for example Yoast SEO or https://wordpress.org/plugins/akismet/.
Yoast SEO
Input as JSON
{ "plugin": "Yoast SEO"}Output
{ "name": "Yoast SEO – Advanced SEO with real-time guidance and built-in AI", "author": "Yoast", "rating": 4.8, "version": "28.7", "download_link": "https://downloads.wordpress.org/plugin/wordpress-seo.28.7.zip" , "plugin_page_link": "https://wordpress.org/plugins/wordpress-seo/" , "last_updated_date": "2026-10-13", "number_of_ratings": 27821, "short_description": "Real-time SEO guidance, schema, and AI built in. Help search engines and AI systems understand your content. All AI tools included, no hidden fees.", "active_installations": 10000000, "requires_php_version": "7.4", "tested_up_to_version": "7.1.3", "latest_version_changelog": "28.7\nRelease date: 2026-10-13\nYoast SEO 28.7 brings more enhancements and bugfixes. Find more information about our software releases and updates here .\nEnhancements\n• Allows agents to update titles and descriptions via the respective Yoast Ability.", "requires_wordpress_version": "6.9"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"wordpress.org/get_plugin","input":{"plugin":"Yoast SEO"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "wordpress.org/get_plugin" , "input": { "plugin": "Yoast SEO" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "wordpress.org/get_plugin" , "input": { "plugin": "Yoast SEO" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run wordpress.org/get_plugin# with {"plugin":"Yoast SEO"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "plugin" ], "properties": { "plugin": { "type": "string", "minLength": 1, "description": "Plugin name or WordPress.org plugin page link, for example Yoast SEO or https://wordpress.org/plugins/akismet/." } }}Output schema
{ "type": "object", "required": [ "name", "plugin_page_link" ], "properties": { "name": { "type": "string" }, "author": { "type": [ "string", "null" ] }, "rating": { "type": [ "number", "null" ] }, "version": { "type": [ "string", "null" ] }, "download_link": { "type": [ "string", "null" ] }, "plugin_page_link": { "type": "string" }, "last_updated_date": { "type": [ "string", "null" ] }, "number_of_ratings": { "type": [ "integer", "null" ] }, "short_description": { "type": [ "string", "null" ] }, "active_installations": { "type": [ "integer", "null" ] }, "requires_php_version": { "type": [ "string", "null" ] }, "tested_up_to_version": { "type": [ "string", "null" ] }, "latest_version_changelog": { "type": [ "string", "null" ] }, "requires_wordpress_version": { "type": [ "string", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
wordpress.org/get_plugin- Returns
- name, author, version, rating, installs, requirements, description, latest changelog, links
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method wordpress.org/get_plugin with the inputs above.
Ask your agent
- What is the latest version and changelog of the Yoast SEO plugin?
- Show me the rating, install count, and requirements for Akismet.
- Get details for https://wordpress.org/plugins/contact-form-7/ including author and description.
- Which WordPress plugin handles caching, and how many active installs does it have?
- I need the minimum WordPress and PHP versions required by WooCommerce, plus its latest release notes.
See more
All WordPress.org methodsSearches the WordPress.org plugin directory by description and returns matches in directory search order, with ratings, installations, compatibility and plugin page links.
wordpress.org/search_pluginsLooks up a Ruby gem on RubyGems by name or gem page link and returns its latest version, release date, description, downloads, authors, license, links and runtime dependencies.
rubygems.org/get_gemLooks up a NuGet package by name or nuget.org link. Inexact names match the top search result. Returns the latest stable release's details and the 10 most recent versions, including prereleases.
nuget.org/get_packageGets a PyPI package's current version, release date, metadata, project links and its 10 most recently published versions from a package name or PyPI link.
pypi.org/get_packageGets a Sephora US product's full details from its name (optionally narrowed by brand) or its Sephora product link: price, sizes and shades with stock, highlights, description, ingredients, usage, ratings and images.
sephora.com/get_productFinds a VS Code Marketplace extension by name or marketplace link and returns its publisher, installs, rating, version, categories and update date. For a name search it picks the most-installed close match.
marketplace.visualstudio.com/get_extensionLooks up a public npm package by name or npm link. Returns its latest version, weekly downloads, maintainers, links, dates and version count.
npmjs.com/get_packageGets one Goodreads book's details, reader ratings and edition information. The book can be a title, an ISBN or a book link; a title uses the best search match.
goodreads.com/get_book