{"openapi":"3.1.0","info":{"title":"WordPress Fleet Intelligence API","version":"1.0.0","description":"Read supplied WordPress site inventories and compare plugin and theme versions with public release metadata without logging into sites. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/wordpress-fleet/site-inventory-normalize":{"post":{"operationId":"normalize_a_wordpress_site_inventory","summary":"Normalize a WordPress site inventory","description":"Copy supplied sites, plugins, and themes into a consistent inventory. Counts come from the request only. No site is logged into.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"text":"Site: S-1 | https://client.example | Client One | 6.4.3 | 8.1\nPlugin: S-1 | akismet | Akismet | 5.0.0 | active\nTheme: S-1 | twentytwentyfour | Twenty Twenty-Four | 1.0 | active\nCheck every admin panel.\n"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"sites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"name":{"type":"string"},"wordpress":{"type":"string"},"php":{"type":"string"},"pluginCount":{"type":"number"},"themeCount":{"type":"number"},"interpretation":{"type":"string"}},"additionalProperties":true}},"plugins":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":true}},"themes":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"normalized","sites":[{"id":"S-1","url":"https://client.example","name":"Client One","wordpress":"6.4.3","php":"8.1","pluginCount":1,"themeCount":1,"interpretation":"stated"}],"plugins":[{"siteId":"S-1","slug":"akismet","name":"Akismet","version":"5.0.0","active":true}],"themes":[{"siteId":"S-1","slug":"twentytwentyfour","name":"Twenty Twenty-Four","version":"1.0","active":true}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[{"kind":"ignored","code":"unlabeled_line","subject":"","detail":"Lines without a recognized label were not read and their text was not copied."}],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/plugin-version-audit":{"post":{"operationId":"audit_wordpress_plugin_versions","summary":"Audit WordPress plugin versions","description":"Compare installed plugin versions with caller-supplied or WordPress.org public releases. An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"plugins":[{"siteId":"S-1","slug":"akismet","name":"Akismet","version":"5.0.0","active":true},{"siteId":"S-1","slug":"hello-dolly","name":"Hello Dolly","version":"1.7.2","active":true}],"publicCatalog":[{"kind":"plugin","slug":"akismet","version":"5.7.2","requires":"5.8","tested":"6.7","requiresPhp":"7.2"},{"kind":"plugin","slug":"hello-dolly","version":"1.7.2","requires":"4.6","tested":"6.4","requiresPhp":"5.6"}],"vulnerabilities":[{"kind":"plugin","slug":"akismet","fixedIn":"5.1.0","cve":"CVE-EXAMPLE-1","detail":"caller-supplied record"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"installed":{"type":"string"},"active":{"type":"boolean"},"publicVersion":{"type":"string"},"publicSource":{"type":"string"},"retrievedAt":{"type":"string"},"age":{"type":"string"},"comparison":{"type":"string"},"knownVulnerability":{"type":"boolean"},"vulnerabilityConfirmed":{"type":"boolean"},"updateSafe":{"type":"boolean"},"cves":{"type":"array","items":{"type":"string"}},"requires":{"type":"string"},"tested":{"type":"string"},"requiresPhp":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"audited","items":[{"siteId":"S-1","slug":"akismet","name":"Akismet","installed":"5.0.0","active":true,"publicVersion":"5.7.2","publicSource":"caller","retrievedAt":"","age":"outdated","comparison":"older","knownVulnerability":true,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":["CVE-EXAMPLE-1"],"requires":"5.8","tested":"6.7","requiresPhp":"7.2","error":""},{"siteId":"S-1","slug":"hello-dolly","name":"Hello Dolly","installed":"1.7.2","active":true,"publicVersion":"1.7.2","publicSource":"caller","retrievedAt":"","age":"current","comparison":"same","knownVulnerability":false,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":[],"requires":"4.6","tested":"6.4","requiresPhp":"5.6","error":""}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/theme-version-audit":{"post":{"operationId":"audit_wordpress_theme_versions","summary":"Audit WordPress theme versions","description":"Compare installed theme versions with caller-supplied or WordPress.org public releases. An older version is a version-age warning, not a confirmed vulnerability.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"themes":[{"siteId":"S-1","slug":"twentytwentyfour","name":"Twenty Twenty-Four","version":"1.0","active":true}],"publicCatalog":[{"kind":"theme","slug":"twentytwentyfour","version":"1.3","requires":"6.4","requiresPhp":"7.0"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"installed":{"type":"string"},"active":{"type":"boolean"},"publicVersion":{"type":"string"},"publicSource":{"type":"string"},"retrievedAt":{"type":"string"},"age":{"type":"string"},"comparison":{"type":"string"},"knownVulnerability":{"type":"boolean"},"vulnerabilityConfirmed":{"type":"boolean"},"updateSafe":{"type":"boolean"},"cves":{"type":"array","items":{}},"requires":{"type":"string"},"tested":{"type":"string"},"requiresPhp":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"audited","items":[{"siteId":"S-1","slug":"twentytwentyfour","name":"Twenty Twenty-Four","installed":"1.0","active":true,"publicVersion":"1.3","publicSource":"caller","retrievedAt":"","age":"outdated","comparison":"older","knownVulnerability":false,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":[],"requires":"6.4","tested":"","requiresPhp":"7.0","error":""}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/update-compatibility-check":{"post":{"operationId":"check_update_compatibility_metadata","summary":"Check update compatibility metadata","description":"Compare a site's stated WordPress and PHP versions with public requires and tested fields. A match is not treated as proof that an update is safe.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"sites":[{"id":"S-1","wordpress":"6.0","php":"7.0"}],"plugins":[{"siteId":"S-1","slug":"akismet","version":"5.0.0","active":true}],"publicCatalog":[{"kind":"plugin","slug":"akismet","version":"5.7.2","requires":"5.8","tested":"6.7","requiresPhp":"7.2"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"kind":{"type":"string"},"slug":{"type":"string"},"installed":{"type":"string"},"siteWordpress":{"type":"string"},"sitePhp":{"type":"string"},"requires":{"type":"string"},"tested":{"type":"string"},"requiresPhp":{"type":"string"},"wordpressState":{"type":"string"},"phpState":{"type":"string"},"testedState":{"type":"string"},"updateSafe":{"type":"boolean"},"evidence":{"type":"string"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"checked","items":[{"siteId":"S-1","kind":"plugin","slug":"akismet","installed":"5.0.0","siteWordpress":"6.0","sitePhp":"7.0","requires":"5.8","tested":"6.7","requiresPhp":"7.2","wordpressState":"meets","phpState":"below","testedState":"within_tested","updateSafe":false,"evidence":"public_metadata"}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/plugin-conflict-detect":{"post":{"operationId":"detect_possible_plugin_conflicts","summary":"Detect possible plugin conflicts","description":"Flag duplicate active plugin slugs and caller-supplied conflict pairs. A match is not a confirmed runtime conflict.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"sites":[{"id":"S-1"}],"plugins":[{"siteId":"S-1","slug":"cache-a","version":"1.0","active":true},{"siteId":"S-1","slug":"cache-b","version":"1.0","active":true},{"siteId":"S-1","slug":"cache-a","version":"1.1","active":true}],"conflicts":[{"left":"cache-a","right":"cache-b","detail":"caller says these caches conflict"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"left":{"type":"string"},"right":{"type":"string"},"code":{"type":"string"},"confirmed":{"type":"boolean"},"detail":{"type":"string"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"detected","items":[{"siteId":"S-1","left":"cache-a","right":"cache-a","code":"duplicate_active","confirmed":false,"detail":"The same plugin slug is active more than once on this site. This is not a confirmed runtime conflict."},{"siteId":"S-1","left":"cache-a","right":"cache-b","code":"caller_rule","confirmed":false,"detail":"caller says these caches conflict"}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/site-maintenance-priority":{"post":{"operationId":"prioritize_site_maintenance","summary":"Prioritize site maintenance","description":"Rank supplied sites by outdated software, caller-supplied vulnerability matches, compatibility gaps, and conflict flags. The ranking does not approve an update.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"sites":[{"id":"S-1","name":"Client One","wordpress":"6.0","php":"7.0"},{"id":"S-2","name":"Client Two","wordpress":"6.7","php":"8.2"}],"plugins":[{"siteId":"S-1","slug":"akismet","version":"5.0.0","active":true},{"siteId":"S-2","slug":"akismet","version":"5.7.2","active":true}],"publicCatalog":[{"kind":"plugin","slug":"akismet","version":"5.7.2","requires":"5.8","tested":"6.7","requiresPhp":"7.2"}],"vulnerabilities":[{"kind":"plugin","slug":"akismet","fixedIn":"5.1.0","cve":"CVE-EXAMPLE-1"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"sites":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"outdatedCount":{"type":"number"},"knownVulnerabilityCount":{"type":"number"},"compatibilityIssueCount":{"type":"number"},"conflictCount":{"type":"number"},"level":{"type":"string"},"updateSafe":{"type":"boolean"},"vulnerabilityConfirmed":{"type":"boolean"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"prioritized","sites":[{"siteId":"S-1","name":"Client One","url":"","outdatedCount":1,"knownVulnerabilityCount":1,"compatibilityIssueCount":1,"conflictCount":0,"level":"high","updateSafe":false,"vulnerabilityConfirmed":false},{"siteId":"S-2","name":"Client Two","url":"","outdatedCount":0,"knownVulnerabilityCount":0,"compatibilityIssueCount":0,"conflictCount":0,"level":"none","updateSafe":false,"vulnerabilityConfirmed":false}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/risk-analyze":{"post":{"operationId":"analyze_wordpress_fleet_risk","summary":"Analyze WordPress fleet risk","description":"Summarize version-age warnings and caller-supplied vulnerability matches across the inventory. Version age is not treated as a confirmed vulnerability.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"sites":[{"id":"S-1","wordpress":"6.0","php":"7.0"}],"plugins":[{"siteId":"S-1","slug":"akismet","version":"5.0.0","active":true}],"themes":[{"siteId":"S-1","slug":"twentytwentyfour","version":"1.0","active":true}],"publicCatalog":[{"kind":"plugin","slug":"akismet","version":"5.7.2","requires":"5.8","tested":"6.7","requiresPhp":"7.2"},{"kind":"theme","slug":"twentytwentyfour","version":"1.3","requires":"6.4","requiresPhp":"7.0"}],"vulnerabilities":[{"kind":"plugin","slug":"akismet","fixedIn":"5.1.0","cve":"CVE-EXAMPLE-1"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"level":{"type":"string"},"outdatedCount":{"type":"number"},"knownVulnerabilityCount":{"type":"number"},"highPrioritySites":{"type":"number"},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"kind":{"type":"string"},"confirmed":{"type":"boolean"},"count":{"type":"number"},"detail":{"type":"string"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"analyzed","level":"review","outdatedCount":2,"knownVulnerabilityCount":1,"highPrioritySites":1,"signals":[{"code":"version_age","kind":"warning","confirmed":false,"count":2,"detail":"Installed software is behind a supplied or WordPress.org public version. This is a version-age warning, not a confirmed vulnerability."},{"code":"caller_vulnerability","kind":"indicator","confirmed":false,"count":1,"detail":"Caller-supplied vulnerability records match installed versions below the stated fixed version. The match is not independently verified."}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/wordpress-fleet/agency-report":{"post":{"operationId":"report_a_wordpress_agency_fleet","summary":"Report a WordPress agency fleet","description":"Combine the inventory, version audits, compatibility metadata, conflict flags, and maintenance priorities. The report does not log into sites or install updates.","tags":["wordpress-fleet"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sites":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"url":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":160},"wordpress":{"type":"string","maxLength":40},"php":{"type":"string","maxLength":40}},"additionalProperties":false}},"plugins":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"themes":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string","maxLength":80},"slug":{"type":"string","maxLength":120},"name":{"type":"string","maxLength":160},"version":{"type":"string","maxLength":40},"active":{"type":"boolean"}},"additionalProperties":false}},"publicCatalog":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","maxLength":40},"requires":{"type":"string","maxLength":40},"tested":{"type":"string","maxLength":40},"requiresPhp":{"type":"string","maxLength":40}},"required":["slug"],"additionalProperties":false}},"vulnerabilities":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["plugin","theme"]},"slug":{"type":"string","minLength":1,"maxLength":120},"fixedIn":{"type":"string","maxLength":40},"cve":{"type":"string","maxLength":40},"detail":{"type":"string","maxLength":300}},"required":["slug"],"additionalProperties":false}},"conflicts":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"left":{"type":"string","minLength":1,"maxLength":120},"right":{"type":"string","minLength":1,"maxLength":120},"detail":{"type":"string","maxLength":300}},"required":["left","right"],"additionalProperties":false}},"fetchPublic":{"type":"boolean"}},"additionalProperties":false},"example":{"sites":[{"id":"S-1","url":"https://client.example","name":"Client One","wordpress":"6.0","php":"7.0"}],"plugins":[{"siteId":"S-1","slug":"akismet","name":"Akismet","version":"5.0.0","active":true},{"siteId":"S-1","slug":"cache-a","version":"1.0","active":true},{"siteId":"S-1","slug":"cache-b","version":"1.0","active":true}],"themes":[{"siteId":"S-1","slug":"twentytwentyfour","name":"Twenty Twenty-Four","version":"1.0","active":true}],"publicCatalog":[{"kind":"plugin","slug":"akismet","version":"5.7.2","requires":"5.8","tested":"6.7","requiresPhp":"7.2"},{"kind":"theme","slug":"twentytwentyfour","version":"1.3","requires":"6.4","requiresPhp":"7.0"}],"vulnerabilities":[{"kind":"plugin","slug":"akismet","fixedIn":"5.1.0","cve":"CVE-EXAMPLE-1"}],"conflicts":[{"left":"cache-a","right":"cache-b","detail":"caller says these caches conflict"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"siteCount":{"type":"number"},"pluginCount":{"type":"number"},"themeCount":{"type":"number"},"outdatedCount":{"type":"number"},"knownVulnerabilityCount":{"type":"number"},"conflictCount":{"type":"number"},"highPrioritySites":{"type":"number"},"level":{"type":"string"},"sites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"name":{"type":"string"},"wordpress":{"type":"string"},"php":{"type":"string"},"pluginCount":{"type":"number"},"themeCount":{"type":"number"},"interpretation":{"type":"string"}},"additionalProperties":true}},"plugins":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"installed":{"type":"string"},"active":{"type":"boolean"},"publicVersion":{"type":"string"},"publicSource":{"type":"string"},"retrievedAt":{"type":"string"},"age":{"type":"string"},"comparison":{"type":"string"},"knownVulnerability":{"type":"boolean"},"vulnerabilityConfirmed":{"type":"boolean"},"updateSafe":{"type":"boolean"},"cves":{"type":"array","items":{"type":"string"}},"requires":{"type":"string"},"tested":{"type":"string"},"requiresPhp":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true}},"themes":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"installed":{"type":"string"},"active":{"type":"boolean"},"publicVersion":{"type":"string"},"publicSource":{"type":"string"},"retrievedAt":{"type":"string"},"age":{"type":"string"},"comparison":{"type":"string"},"knownVulnerability":{"type":"boolean"},"vulnerabilityConfirmed":{"type":"boolean"},"updateSafe":{"type":"boolean"},"cves":{"type":"array","items":{}},"requires":{"type":"string"},"tested":{"type":"string"},"requiresPhp":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true}},"compatibility":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"kind":{"type":"string"},"slug":{"type":"string"},"installed":{"type":"string"},"siteWordpress":{"type":"string"},"sitePhp":{"type":"string"},"requires":{"type":"string"},"tested":{"type":"string"},"requiresPhp":{"type":"string"},"wordpressState":{"type":"string"},"phpState":{"type":"string"},"testedState":{"type":"string"},"updateSafe":{"type":"boolean"},"evidence":{"type":"string"}},"additionalProperties":true}},"conflicts":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"left":{"type":"string"},"right":{"type":"string"},"code":{"type":"string"},"confirmed":{"type":"boolean"},"detail":{"type":"string"}},"additionalProperties":true}},"priorities":{"type":"array","items":{"type":"object","properties":{"siteId":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"outdatedCount":{"type":"number"},"knownVulnerabilityCount":{"type":"number"},"compatibilityIssueCount":{"type":"number"},"conflictCount":{"type":"number"},"level":{"type":"string"},"updateSafe":{"type":"boolean"},"vulnerabilityConfirmed":{"type":"boolean"}},"additionalProperties":true}},"signals":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"kind":{"type":"string"},"confirmed":{"type":"boolean"},"count":{"type":"number"},"detail":{"type":"string"}},"additionalProperties":true}},"requestsSent":{"type":"number"},"siteAccessed":{"type":"boolean"},"updateInstalled":{"type":"boolean"},"updateSafe":{"type":"boolean"},"websiteModified":{"type":"boolean"},"vulnerabilityInvented":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T15:00:00.000Z","status":"reported","siteCount":1,"pluginCount":3,"themeCount":1,"outdatedCount":2,"knownVulnerabilityCount":1,"conflictCount":1,"highPrioritySites":1,"level":"review","sites":[{"id":"S-1","url":"https://client.example","name":"Client One","wordpress":"6.0","php":"7.0","pluginCount":3,"themeCount":1,"interpretation":"stated"}],"plugins":[{"siteId":"S-1","slug":"akismet","name":"Akismet","installed":"5.0.0","active":true,"publicVersion":"5.7.2","publicSource":"caller","retrievedAt":"","age":"outdated","comparison":"older","knownVulnerability":true,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":["CVE-EXAMPLE-1"],"requires":"5.8","tested":"6.7","requiresPhp":"7.2","error":""},{"siteId":"S-1","slug":"cache-a","name":"cache-a","installed":"1.0","active":true,"publicVersion":"","publicSource":"","retrievedAt":"","age":"not_checked","comparison":"not_checked","knownVulnerability":false,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":[],"requires":"","tested":"","requiresPhp":"","error":""},{"siteId":"S-1","slug":"cache-b","name":"cache-b","installed":"1.0","active":true,"publicVersion":"","publicSource":"","retrievedAt":"","age":"not_checked","comparison":"not_checked","knownVulnerability":false,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":[],"requires":"","tested":"","requiresPhp":"","error":""}],"themes":[{"siteId":"S-1","slug":"twentytwentyfour","name":"Twenty Twenty-Four","installed":"1.0","active":true,"publicVersion":"1.3","publicSource":"caller","retrievedAt":"","age":"outdated","comparison":"older","knownVulnerability":false,"vulnerabilityConfirmed":false,"updateSafe":false,"cves":[],"requires":"6.4","tested":"","requiresPhp":"7.0","error":""}],"compatibility":[{"siteId":"S-1","kind":"plugin","slug":"akismet","installed":"5.0.0","siteWordpress":"6.0","sitePhp":"7.0","requires":"5.8","tested":"6.7","requiresPhp":"7.2","wordpressState":"meets","phpState":"below","testedState":"within_tested","updateSafe":false,"evidence":"public_metadata"},{"siteId":"S-1","kind":"plugin","slug":"cache-a","installed":"1.0","siteWordpress":"6.0","sitePhp":"7.0","requires":"","tested":"","requiresPhp":"","wordpressState":"not_checked","phpState":"not_checked","testedState":"not_checked","updateSafe":false,"evidence":"none"},{"siteId":"S-1","kind":"plugin","slug":"cache-b","installed":"1.0","siteWordpress":"6.0","sitePhp":"7.0","requires":"","tested":"","requiresPhp":"","wordpressState":"not_checked","phpState":"not_checked","testedState":"not_checked","updateSafe":false,"evidence":"none"},{"siteId":"S-1","kind":"theme","slug":"twentytwentyfour","installed":"1.0","siteWordpress":"6.0","sitePhp":"7.0","requires":"6.4","tested":"","requiresPhp":"7.0","wordpressState":"below","phpState":"meets","testedState":"not_checked","updateSafe":false,"evidence":"public_metadata"}],"conflicts":[{"siteId":"S-1","left":"cache-a","right":"cache-b","code":"caller_rule","confirmed":false,"detail":"caller says these caches conflict"}],"priorities":[{"siteId":"S-1","name":"Client One","url":"https://client.example","outdatedCount":2,"knownVulnerabilityCount":1,"compatibilityIssueCount":2,"conflictCount":1,"level":"high","updateSafe":false,"vulnerabilityConfirmed":false}],"signals":[{"code":"version_age","kind":"warning","confirmed":false,"count":2,"detail":"Installed software is behind a supplied or WordPress.org public version. This is a version-age warning, not a confirmed vulnerability."},{"code":"caller_vulnerability","kind":"indicator","confirmed":false,"count":1,"detail":"Caller-supplied vulnerability records match installed versions below the stated fixed version. The match is not independently verified."}],"requestsSent":0,"siteAccessed":false,"updateInstalled":false,"updateSafe":false,"websiteModified":false,"vulnerabilityInvented":false,"findings":[{"kind":"unavailable","code":"catalog_missing","subject":"cache-a","detail":"No public release row was available for this slug, so compatibility was not checked."},{"kind":"unavailable","code":"catalog_missing","subject":"cache-b","detail":"No public release row was available for this slug, so compatibility was not checked."}],"limitations":["Site inventories, plugins, and themes are copied only from labeled fields supplied by the caller.","Public release data comes from the caller or from one public WordPress.org metadata response per slug.","An older version is a version-age warning. A vulnerability is listed only when the caller supplied it.","An update is never marked safe. Matching a tested WordPress version is not proof that an update will work.","No WordPress installation is logged into, updated, or modified."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.12"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}