{"id":358555,"date":"2026-08-26T22:16:18","date_gmt":"2026-08-26T22:16:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/spyro-autopilot\/"},"modified":"2026-08-26T22:16:01","modified_gmt":"2026-08-26T22:16:01","slug":"spyro-autopilot","status":"publish","type":"plugin","link":"https:\/\/lin.wordpress.org\/plugins\/spyro-autopilot\/","author":23554765,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Spyro Autopilot","header_author":"Spyro","header_description":"Auto-publishes Spyro-generated blog posts to this site. Paste your Spyro workspace API key to connect.","assets_banners_color":"fecbad","last_updated":"2026-08-26 22:16:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/spyro.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"spyrohq","date":"2026-08-26 22:16:01","revision":3667852}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3667852,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3667852,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3667852,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3667852,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3667852,"resolution":"1","location":"assets","locale":"","width":1536,"height":1024}},"screenshots":{"1":"Spyro tracks your rankings on Google and your citations across ChatGPT, Gemini, Claude and Perplexity, then auto-publishes GEO-optimized articles straight to this site."}},"plugin_section":[],"plugin_tags":[569,410,7143,186],"plugin_category":[55],"plugin_contributors":[277735],"plugin_business_model":[],"class_list":["post-358555","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-blogging","plugin_tags-publishing","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-spyrohq","plugin_committers-spyrohq"],"banners":{"banner":"https:\/\/ps.w.org\/spyro-autopilot\/assets\/banner-772x250.png?rev=3667852","banner_2x":"https:\/\/ps.w.org\/spyro-autopilot\/assets\/banner-1544x500.png?rev=3667852","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/spyro-autopilot\/assets\/icon-128x128.png?rev=3667852","icon_2x":"https:\/\/ps.w.org\/spyro-autopilot\/assets\/icon-256x256.png?rev=3667852","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/spyro-autopilot\/assets\/screenshot-1.png?rev=3667852","caption":"Spyro tracks your rankings on Google and your citations across ChatGPT, Gemini, Claude and Perplexity, then auto-publishes GEO-optimized articles straight to this site."}],"raw_content":"<!--section=description-->\n<p>Spyro (https:\/\/spyro.app) is an SEO and AI-visibility platform with a built-in AI blog writer. This\ncompanion plugin is the delivery target for that writer: it connects your self-hosted WordPress site\nto your Spyro workspace so finished articles land on your site automatically, without a copy\/paste\nstep. It does not write content itself; drafting happens in Spyro, this plugin only receives and\npublishes what Spyro sends.<\/p>\n\n<p>After you paste your workspace API key (Spyro -&gt; Settings -&gt; API) and click Connect, the plugin:<\/p>\n\n<ul>\n<li>Registers this site as a delivery target and verifies the connection with a signed test webhook.<\/li>\n<li>Receives each finished article over an authenticated webhook (HMAC-SHA256, timestamped against\nreplay) and creates or updates the matching WordPress post. Re-deliveries of the same article are\ndeduplicated automatically.<\/li>\n<li>Saves incoming posts as Draft or publishes them immediately, your choice, set once in Settings.<\/li>\n<li>Applies the featured image and any in-article images: each is downloaded and added to your Media\nLibrary (not hotlinked), then the post body is rewritten to reference the local copies.<\/li>\n<li>Writes SEO title, meta description, focus keyword, canonical URL, and Open Graph \/ Twitter fields\nfor Yoast SEO or Rank Math when either is active, or prints an equivalent title tag and meta\ndescription itself when no SEO plugin is active, so posts are optimized either way.<\/li>\n<li>Outputs the article's structured data (JSON-LD, e.g. Article, FAQPage, HowTo) in the page head. If a\ndedicated SEO plugin already emits Article\/Breadcrumb schema, only the additive blocks (FAQPage,\nHowTo) are added, to avoid duplicate markup.<\/li>\n<li>Assigns tags and a category from the article's content, without overriding a default category and\nauthor you set once in Settings.<\/li>\n<li>Sends a daily heartbeat so your Spyro workspace can show this site's connection status, and offers a\none-click \"Send test delivery\" button and a log of recent deliveries on the Settings screen.<\/li>\n<\/ul>\n\n<p>This plugin communicates only with the Spyro API at the base URL you configure (default\nhttps:\/\/spyro.app), using your workspace API key over HTTPS, to validate your key, register this site\nas a delivery target, and send periodic heartbeats. No data is sent to any other third party. See the\nSpyro privacy policy at https:\/\/spyro.app\/privacy.<\/p>\n\n<p>Support: support@spyro.app<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin via Plugins \u2192 Add New \u2192 Upload Plugin, then activate it.<\/li>\n<li>Go to Settings \u2192 Spyro Autopilot.<\/li>\n<li>Paste your workspace API key (Spyro \u2192 Settings \u2192 API), choose your publishing options, and click Connect.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20the%20api%20key%3F\"><h3>Where do I get the API key?<\/h3><\/dt>\n<dd><p>In Spyro, open Settings \u2192 API and copy the key. It is shown only once when generated; roll a new key if you lose it.<\/p><\/dd>\n<dt id=\"are%20deliveries%20authenticated%3F\"><h3>Are deliveries authenticated?<\/h3><\/dt>\n<dd><p>Yes. Every delivery is signed with HMAC-SHA256 derived from your workspace key and rejected if the signature or timestamp is invalid.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: connect via workspace API key, signed webhook receiver (HMAC-SHA256), draft\/publish toggle, featured + in-content image sideloading, full Yoast\/Rank Math SEO fields with a built-in fallback when no SEO plugin is active, JSON-LD schema in the document head, tags\/category assignment, and daily connection heartbeat.<\/li>\n<\/ul>","raw_excerpt":"Auto-publish Spyro-generated blog posts to your WordPress site. Paste your workspace API key to connect.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358555"}],"author":[{"embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/spyrohq"}],"wp:attachment":[{"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358555"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358555"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358555"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358555"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358555"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lin.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}