{"id":331614,"date":"2026-06-29T04:25:51","date_gmt":"2026-06-29T04:25:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/atlas-headless-api\/"},"modified":"2026-06-30T19:48:51","modified_gmt":"2026-06-30T19:48:51","slug":"dk-headless-api","status":"publish","type":"plugin","link":"https:\/\/gu.wordpress.org\/plugins\/dk-headless-api\/","author":23517123,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.7","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"DK Headless API","header_author":"Digitized Kosmos","header_description":"Turns WordPress into a controlled Headless CMS with custom REST routes, rate limiting, and caching.","assets_banners_color":"232f44","last_updated":"2026-06-30 19:48:51","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/digitizedkosmos.com\/","header_plugin_uri":"https:\/\/digitizedkosmos.com\/products\/dk-headless-api","header_author_uri":"https:\/\/digitizedkosmos.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":262,"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":"digitizedkosmos","date":"2026-06-29 04:25:11"},"1.0.1":{"tag":"1.0.1","author":"digitizedkosmos","date":"2026-06-30 19:48:51"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3591897,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3591897,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3591897,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3591897,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3591897,"resolution":"1","location":"assets","locale":"","width":3526,"height":1790},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3591897,"resolution":"2","location":"assets","locale":"","width":3526,"height":1790},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3591897,"resolution":"3","location":"assets","locale":"","width":3526,"height":1790},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3591897,"resolution":"4","location":"assets","locale":"","width":3526,"height":1790},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3591897,"resolution":"5","location":"assets","locale":"","width":3526,"height":1790}},"screenshots":{"1":"<strong>General Settings Dashboard<\/strong>: Toggle the frontend disabler, configure CORS headers, and view active API routes.","2":"<strong>API Authentication Tab<\/strong>: Enforce secure access, generate secure API keys, and manage client permissions.","3":"<strong>Content Exposure<\/strong>: Control exactly which default endpoints and Custom Post Types are exposed publicly.","4":"<strong>Cache &amp; Rate Limiting Settings<\/strong>: Optimize performance using transient caching and daily request limit metrics.","5":"<strong>Exposed APIs Reference Table<\/strong>: View the full list of active endpoint URLs generated by your exposure settings."}},"plugin_section":[],"plugin_tags":[225,141196,211409,52651,23853],"plugin_category":[],"plugin_contributors":[269363],"plugin_business_model":[],"class_list":["post-331614","plugin","type-plugin","status-publish","hentry","plugin_tags-cms","plugin_tags-headless","plugin_tags-nextjs","plugin_tags-react","plugin_tags-rest-api","plugin_contributors-digitizedkosmos","plugin_committers-digitizedkosmos"],"banners":{"banner":"https:\/\/ps.w.org\/dk-headless-api\/assets\/banner-772x250.png?rev=3591897","banner_2x":"https:\/\/ps.w.org\/dk-headless-api\/assets\/banner-1544x500.png?rev=3591897","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dk-headless-api\/assets\/icon-128x128.png?rev=3591897","icon_2x":"https:\/\/ps.w.org\/dk-headless-api\/assets\/icon-256x256.png?rev=3591897","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dk-headless-api\/assets\/screenshot-1.png?rev=3591897","caption":"<strong>General Settings Dashboard<\/strong>: Toggle the frontend disabler, configure CORS headers, and view active API routes."},{"src":"https:\/\/ps.w.org\/dk-headless-api\/assets\/screenshot-2.png?rev=3591897","caption":"<strong>API Authentication Tab<\/strong>: Enforce secure access, generate secure API keys, and manage client permissions."},{"src":"https:\/\/ps.w.org\/dk-headless-api\/assets\/screenshot-3.png?rev=3591897","caption":"<strong>Content Exposure<\/strong>: Control exactly which default endpoints and Custom Post Types are exposed publicly."},{"src":"https:\/\/ps.w.org\/dk-headless-api\/assets\/screenshot-4.png?rev=3591897","caption":"<strong>Cache &amp; Rate Limiting Settings<\/strong>: Optimize performance using transient caching and daily request limit metrics."},{"src":"https:\/\/ps.w.org\/dk-headless-api\/assets\/screenshot-5.png?rev=3591897","caption":"<strong>Exposed APIs Reference Table<\/strong>: View the full list of active endpoint URLs generated by your exposure settings."}],"raw_content":"<!--section=description-->\n<h4>Quick Answer: What is DK Headless API?<\/h4>\n\n<p>DK Headless API is a professional-grade framework that decouples WordPress by disabling the frontend theme layer, prunes default REST endpoints to prevent data scraping, and exposes a secure, high-performance API namespace (<code>dk\/v1<\/code>) designed specifically for modern frontend engines (Next.js, React, Astro, Vue, Svelte).<\/p>\n\n<h4>Key Takeaways<\/h4>\n\n<ul>\n<li><strong>Instant Decoupling<\/strong>: Turns off the theme template engine (returning <code>410 Gone<\/code>) and dequeues all frontend scripts.<\/li>\n<li><strong>ACF &amp; Gutenberg Integration<\/strong>: Natively embeds Advanced Custom Fields (ACF) data and parses Gutenberg blocks into clean API payloads.<\/li>\n<li><strong>Advanced Caching<\/strong>: Implements smart transient caching that auto-invalidates when posts are updated or deleted.<\/li>\n<li><strong>Security &amp; Rate Limiting<\/strong>: Features dynamic API Key generation (<code>X-DK-API-Key<\/code>) and daily request limiters per IP\/key.<\/li>\n<li><strong>Tree-Menu Resolver<\/strong>: Translates complex WP menu hierarchies into clean nested JSON trees.<\/li>\n<\/ul>\n\n\n\n<h4>Why Go Headless with WordPress?<\/h4>\n\n<p>Monolithic WordPress sites face constant performance overheads, plugin bloat, and security vulnerabilities. Decoupling WordPress allows you to use it purely as a content editor while rendering your frontend on edge servers. This results in:\n1. <strong>Sub-second Load Times<\/strong>: Serving static HTML via CDNs.\n2. <strong>Improved Security<\/strong>: Hiding the WP database and admin panel behind custom api restrictions.\n3. <strong>Better Developer Experience<\/strong>: Allowing front-end engineering teams to build with modern UI libraries.<\/p>\n\n\n\n<h4>Feature Comparison Table<\/h4>\n\n\n\n\n  Feature\n  Standard WordPress REST\n  DK Headless API\n\n\n\n\n  <strong>Frontend Deactivator<\/strong>\n  No (requires manual code\/redirects)\n  Yes (410 Status + asset dequeuer)\n\n\n  <strong>Endpoint Security<\/strong>\n  Public (scrapers can access <code>\/users<\/code>)\n  REST Pruning &amp; API Key restrictions\n\n\n  <strong>ACF Field Resolution<\/strong>\n  Requires separate helper plugins\n  Native &amp; embedded out-of-the-box\n\n\n  <strong>Menu Hierarchy<\/strong>\n  Flat arrays (hard to parse)\n  Smart tree resolver (nested JSON)\n\n\n  <strong>Smart Transient Cache<\/strong>\n  None (requires external DB queries)\n  Caching with auto-invalidation on save\n\n\n  <strong>Rate Limiter<\/strong>\n  No rate protection\n  Daily rate limiting per client IP\/Key\n\n\n\n\n\n\n<h4>\ud83d\ude80 Need Help Designing Your Headless Architecture?<\/h4>\n\n<p>Decoupling WordPress can introduce complex challenges regarding static site generation (SSG), incremental static revalidation (ISR), CORS handling, and preview modes.<\/p>\n\n<p>If you are an agency, founder, or marketing team looking to build a high-performance headless architecture:\n* <strong>Book a Free 30-Minute Strategy Session<\/strong> with the Digitized Kosmos engineering team.\n* We will audit your current endpoints, optimize your server-side configurations, and help blueprint your Next.js\/React revalidation flow.\n* \ud83d\udc49 <strong><a href=\"https:\/\/digitizedkosmos.com\/contact?source=wp-plugin-readme\">Schedule Free Consultation<\/a><\/strong><\/p>\n\n\n\n<h3>Action Checklist for a Successful Headless Launch<\/h3>\n\n<ul>\n<li>[ ] Verify that your REST API namespace (<code>dk\/v1<\/code>) is accessible.<\/li>\n<li>[ ] Configure your CORS allowed origin to match your frontend domain.<\/li>\n<li>[ ] Generate a developer API key and verify header auth.<\/li>\n<li>[ ] Add your redirect Frontend URL so visitors are guided to your app.<\/li>\n<li>[ ] Test post-update callbacks to confirm transient cache invalidation.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Step-by-Step Framework<\/h4>\n\n<ol>\n<li><strong>Upload &amp; Install<\/strong>: Upload the folder to your <code>\/wp-content\/plugins\/<\/code> directory, or install directly via the WordPress Plugin search.<\/li>\n<li><strong>Activation<\/strong>: Activate the plugin.<\/li>\n<li><strong>Configure Settings<\/strong>: Go to <strong>Settings &gt; DK Headless API<\/strong> in your WP Admin Dashboard.<\/li>\n<li><strong>Setup CORS<\/strong>: Enter your Frontend URL (e.g. <code>https:\/\/myfrontend.com<\/code>) in the General Settings to allow secure CORS headers.<\/li>\n<li><strong>Secure Your Endpoint<\/strong>: Toggle API Key enforcement, generate an authorization key, and configure your daily rate limits.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20disable%20the%20gutenberg%20editor%3F\"><h3>Does this disable the Gutenberg editor?<\/h3><\/dt>\n<dd><p>No. The WP Admin dashboard, block editor, Gutenberg previews, login paths, and essential admin REST interfaces are preserved. Only the front-facing theme pages are deactivated.<\/p><\/dd>\n<dt id=\"how%20do%20i%20pass%20the%20api%20key%20from%20next.js%20%2F%20react%3F\"><h3>How do I pass the API Key from Next.js \/ React?<\/h3><\/dt>\n<dd><p>If you toggle \"Require API Key\" in the settings, send the key inside your request headers:\n    X-DK-API-Key: your_generated_key_here<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20plugin%20for%20free%20commercially%3F\"><h3>Can I use this plugin for free commercially?<\/h3><\/dt>\n<dd><p>Yes. The plugin is 100% free, fully functional, and licensed under GPLv2. We do not place quota limits, license-locking mechanisms, or trial periods inside the codebase. All pro feature enhancements live in separate addon branches.<\/p><\/dd>\n<dt id=\"how%20do%20i%20clear%20the%20cache%3F\"><h3>How do I clear the cache?<\/h3><\/dt>\n<dd><p>The cache engine clears automatically when posts, pages, or custom post types are published, updated, trashed, or deleted. You do not need to manage it manually.<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%3F\"><h3>Does it support WooCommerce?<\/h3><\/dt>\n<dd><p>It supports core custom post type exposure out-of-the-box. Advanced ecommerce integrations (cart hooks, checkout gateways) are best handled using custom controllers or dedicated headless addons.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed namespaces and option prefixes to dkhwp_ and DKHWP\\ to fully comply with WordPress.org guidelines.<\/li>\n<li>Improved security checks for cached REST endpoints in rest_pre_dispatch.<\/li>\n<li>Strengthened URL input sanitization using esc_url_raw().<\/li>\n<li>Hardened rate limiting transient keys generation against IP\/Key attacks.<\/li>\n<li>Implemented dynamic developer API Key generator in admin pages.<\/li>\n<li>Added custom Next.js headless consultation admin notice on settings pages.<\/li>\n<li>Added fully compliant icons and banners to repository assets.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of DK Headless API.<\/li>\n<li>Decoupled frontend template engine (<code>410 Gone<\/code>).<\/li>\n<li>REST endpoint pruning for secure public access.<\/li>\n<li>Built-in ACF custom fields resolver.<\/li>\n<li>Built-in smart transient caching with hooks-based flushing.<\/li>\n<li>Custom Next.js-ready nested tree-menu parser.<\/li>\n<li>Multi-key authentication manager.<\/li>\n<li>Daily IP\/Key rate limiter.<\/li>\n<\/ul>","raw_excerpt":"Turns WordPress into a high-performance, secure Headless CMS with custom REST routes, rate limiting, and smart transient caching.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/331614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=331614"}],"author":[{"embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/digitizedkosmos"}],"wp:attachment":[{"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=331614"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=331614"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=331614"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=331614"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=331614"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=331614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}