{"id":294116,"date":"2026-05-01T11:35:08","date_gmt":"2026-05-01T11:35:08","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smooth-api-accelerator\/"},"modified":"2026-05-04T07:39:45","modified_gmt":"2026-05-04T07:39:45","slug":"smooth-api-accelerator","status":"publish","type":"plugin","link":"https:\/\/bcc.wordpress.org\/plugins\/smooth-api-accelerator\/","author":23457722,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"1.0.3","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Smooth API Accelerator","header_author":"Smooth CDN","header_description":"Speed up your WordPress REST API with edge-ready JSON acceleration. Powered by Smooth CDN.","assets_banners_color":"676a74","last_updated":"2026-05-04 07:39:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/smoothcdn.com\/api-accelerator","header_author_uri":"https:\/\/smoothcdn.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":82,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"smoothcdn","date":"2026-05-01 11:34:39"},"1.0.1":{"tag":"1.0.1","author":"smoothcdn","date":"2026-05-01 12:31:33"},"1.0.2":{"tag":"1.0.2","author":"smoothcdn","date":"2026-05-01 12:39:05"},"1.0.3":{"tag":"1.0.3","author":"smoothcdn","date":"2026-05-04 07:39:45"}},"upgrade_notice":{"1.0.3":"<p>Maintenance update.<\/p>","1.0.2":"<p>Maintenance update.<\/p>","1.0.1":"<p>Adds WordPress.org plugin icon and improves the plugin readme.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3520361,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3520361,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3520361,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3520361,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[146,3863,1118,247,23853],"plugin_category":[52,54,59],"plugin_contributors":[258115],"plugin_business_model":[],"class_list":["post-294116","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-cdn","plugin_tags-json","plugin_tags-performance","plugin_tags-rest-api","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-smoothcdn","plugin_committers-smoothcdn"],"banners":{"banner":"https:\/\/ps.w.org\/smooth-api-accelerator\/assets\/banner-772x250.png?rev=3520361","banner_2x":"https:\/\/ps.w.org\/smooth-api-accelerator\/assets\/banner-1544x500.png?rev=3520361","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/smooth-api-accelerator\/assets\/icon-128x128.png?rev=3520361","icon_2x":"https:\/\/ps.w.org\/smooth-api-accelerator\/assets\/icon-256x256.png?rev=3520361","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Turn your WordPress REST API into a fast, edge-delivered data layer.<\/p>\n\n<p>Smooth API Accelerator prepares your API responses for instant delivery through Smooth CDN. Instead of generating responses on every request, your data is pre-built, optimized, and served as static JSON files from the edge.<\/p>\n\n<p>Connect your site once, select the endpoints you want, and let the plugin handle the rest.<\/p>\n\n<h3>Why use Smooth API Accelerator?<\/h3>\n\n<ul>\n<li>\u26a1 <strong>Faster API responses<\/strong> \u2013 serve JSON from CDN instead of generating it on every request<\/li>\n<li>\ud83c\udf0d <strong>Edge delivery<\/strong> \u2013 global availability with low latency<\/li>\n<li>\ud83d\udd04 <strong>Automatic updates<\/strong> \u2013 keep your API data in sync after content changes<\/li>\n<li>\ud83d\udce6 <strong>Static JSON snapshots<\/strong> \u2013 predictable, cache-friendly responses<\/li>\n<li>\ud83d\udd12 <strong>Optional protected delivery<\/strong> \u2013 restrict access to selected API data<\/li>\n<li>\ud83e\udde0 <strong>Cleaner payloads<\/strong> \u2013 optional block parsing and content optimization<\/li>\n<\/ul>\n\n<p>Perfect for:\n* Headless WordPress setups\n* Mobile apps using WordPress as a backend\n* Frontends built with React, Next.js, or other frameworks\n* High-traffic APIs that need stable and fast responses<\/p>\n\n<h3>How it works<\/h3>\n\n<ol>\n<li>Connect your site to Smooth CDN (account or guest mode)<\/li>\n<li>Discover available REST API endpoints<\/li>\n<li>Select endpoints to accelerate<\/li>\n<li>The plugin generates JSON snapshots and uploads them to Smooth CDN<\/li>\n<li>Your API data is now served from fast CDN URLs<\/li>\n<\/ol>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Smooth CDN to create and manage the remote project used for JSON acceleration.<\/p>\n\n<p>It communicates with Smooth CDN when you:<\/p>\n\n<ul>\n<li>start or complete the account or guest connection flow,<\/li>\n<li>fetch account or project metadata needed by the plugin,<\/li>\n<li>upload synced JSON snapshots,<\/li>\n<li>delete synced JSON snapshots with <code>Unsync<\/code> or <code>Purge endpoints<\/code>.<\/li>\n<\/ul>\n\n<p>Depending on the action, the plugin may send:<\/p>\n\n<ul>\n<li>your site URL and site name,<\/li>\n<li>the generated project name derived from the site domain,<\/li>\n<li>authentication data needed to complete the Smooth CDN login flow,<\/li>\n<li>project identifiers and account metadata required to manage the connection,<\/li>\n<li>REST API JSON snapshots selected for sync, including paginated collection files,<\/li>\n<li>asset paths, filenames, and protection flags used to manage synced files.<\/li>\n<\/ul>\n\n<p>Smooth CDN service links:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/smoothcdn.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/smoothcdn.com\/privacy<\/li>\n<\/ul>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Simple setup with unified connection and configuration view<\/li>\n<li>Smooth CDN connection in minutes (account or guest mode)<\/li>\n<li>Manual endpoint discovery with clear separation of synced and available routes<\/li>\n<li>One-click sync for selected endpoints<\/li>\n<li>Automatic re-sync after post and taxonomy updates<\/li>\n<li>Paginated collection sync with metadata manifest<\/li>\n<li>Optional <code>blocks<\/code> field generation for structured content<\/li>\n<li>Optional removal of raw <code>content<\/code> field for lighter responses<\/li>\n<li>Optional protected JSON delivery<\/li>\n<li>Lock mode for direct REST GET access via <code>wp-json<\/code><\/li>\n<li><code>Unsync<\/code> and <code>Purge endpoints<\/code> remove both local and CDN data<\/li>\n<li>Clear dashboard with sync and acceleration status<\/li>\n<\/ul>\n\n<h3>Synced JSON layout<\/h3>\n\n<p>Single endpoints are uploaded as one JSON file:<\/p>\n\n<pre><code>https:\/\/cdn.smoothcdn.com\/&lt;user-slug&gt;\/&lt;project-slug&gt;\/wp\/v2\/pages\/42.json\n<\/code><\/pre>\n\n<p>Collection endpoints are uploaded as:<\/p>\n\n<pre><code>https:\/\/cdn.smoothcdn.com\/&lt;user-slug&gt;\/&lt;project-slug&gt;\/wp\/v2\/posts.json\nhttps:\/\/cdn.smoothcdn.com\/&lt;user-slug&gt;\/&lt;project-slug&gt;\/wp\/v2\/posts\/page-1.json\nhttps:\/\/cdn.smoothcdn.com\/&lt;user-slug&gt;\/&lt;project-slug&gt;\/wp\/v2\/posts\/page-2.json\n<\/code><\/pre>\n\n<p>The collection metadata file contains:<\/p>\n\n<pre><code>{\n    \"per_page\": 50,\n    \"total_pages\": 2,\n    \"pages\": [\n        \"https:\/\/cdn.smoothcdn.com\/&lt;user-slug&gt;\/&lt;project-slug&gt;\/wp\/v2\/posts\/page-1.json\",\n        \"https:\/\/cdn.smoothcdn.com\/&lt;user-slug&gt;\/&lt;project-slug&gt;\/wp\/v2\/posts\/page-2.json\"\n    ]\n}&lt;h3&gt;Settings overview&lt;\/h3&gt;Key settings that affect synced output:\n<\/code><\/pre>\n\n<ul>\n<li><code>Add blocks field<\/code> adds a normalized <code>blocks<\/code> field when supported content is available.<\/li>\n<li><code>Remove content field<\/code> is available only when <code>Add blocks field<\/code> is enabled and removes <code>content<\/code> after <code>blocks<\/code> is added.<\/li>\n<li><code>Protected assets<\/code> uploads synced JSON files as protected Smooth CDN assets.<\/li>\n<li><code>Collection sync page size<\/code> controls pagination for collection endpoints. Available values: <code>10<\/code>, <code>25<\/code>, <code>50<\/code>, <code>100<\/code>. Default: <code>50<\/code>.<\/li>\n<li><code>Auto scan and sync<\/code> controls how often WP-Cron runs automatic scan and sync.<\/li>\n<\/ul>\n\n<p>Changing output-affecting settings invalidates previous sync markers and queues a faster full scan + sync through WP-Cron.<\/p>\n\n<h3>Developer hooks<\/h3>\n\n<p>Use <code>scdn_api_accelerator_save_post_related_routes<\/code> to add custom routes\/templates that should be refreshed and synced after <code>save_post<\/code>.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>add_filter( 'scdn_api_accelerator_save_post_related_routes', function( $rules, $post_id, $post ) {\n    $rules[] = 'product|route:\/custom\/v1\/products\/{post_id}';\n    $rules[] = 'product|template:\/custom\/v1\/products';\n    $rules[] = [\n        'post_type' =&gt; 'page',\n        'route'     =&gt; '\/custom\/v1\/page-index',\n    ];\n\n    return $rules;\n}, 10, 3 );\n<\/code><\/pre>\n\n<p>Use <code>scdn_api_accelerator_pre_send_json<\/code> to adjust endpoint payload before upload.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>add_filter( 'scdn_api_accelerator_pre_send_json', function( $data, $route, $context ) {\n    if ( '\/wp\/v2\/posts' === $route &amp;&amp; is_array( $data ) ) {\n        foreach ( $data as $index =&gt; $item ) {\n            if ( ! is_array( $item ) ) {\n                continue;\n            }\n\n            unset( $data[ $index ]['class_list'], $data[ $index ]['meta'] );\n        }\n    }\n\n    return $data;\n}, 10, 3 );&lt;h3&gt;Maintenance&lt;\/h3&gt;`Unsync` removes selected endpoints from sync, deletes their CDN files, and returns them to detected state.\n\nPurge endpoints removes all synced data from Smooth CDN and clears local state.&lt;h3&gt;License&lt;\/h3&gt;GPLv2 or later\n<\/code><\/pre>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Overview dashboard adjustments.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added WordPress.org plugin icon and visual assets.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added WordPress.org plugin icon and visual assets.<\/li>\n<li>Improved plugin readme description and formatting.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Accelerate your WordPress API performance with edge-ready delivery, powered by Smooth CDN.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/294116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=294116"}],"author":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/smoothcdn"}],"wp:attachment":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=294116"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=294116"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=294116"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=294116"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=294116"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=294116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}