REST API Caching Plugin for WordPress

Your REST API,
14ms fast.

FrostyAPI serves cached REST API responses before WordPress even boots.
No database. No PHP overhead. Just frozen JSON, straight from disk.

~14ms
Avg. Response
10-15x
Faster Than Uncached
18+
Hooks & Filters
GET /wp-json/wp/v2/posts
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
X-FrostAPI-Cache: HIT
X-FrostAPI-Time: 14ms
ETag: “a1b2c3d4e5f6”
Cache-Control: public, max-age=3600
// WordPress never loaded. Served from frozen cache.

Skips the database entirely.

FrostyAPI intercepts REST API requests at the advanced-cache stage, before WordPress initializes plugins, themes, or the database connection. Cached responses are served as flat files in under 14ms.

Request Lifecycle
1
Incoming REST API Request
GET /wp-json/wp/v2/posts
2
Advanced Cache Intercept
Before plugins, themes, or DB load
Cache HIT
Serve from disk
~14ms response
Cache MISS
Pass to WordPress
Cache response for next time
4
ETag Validation
304 Not Modified if unchanged

Pre-Database Serving

Cached responses are served from flat files before WordPress connects to the database, eliminating all PHP and MySQL overhead.

🔄

Automatic Cache Building

On cache miss, FrostyAPI passes the request to WordPress normally, then caches the response automatically for subsequent requests.

⚙️

Smart Invalidation

Cache is automatically cleared when content changes. Post updates, WooCommerce product changes, and taxonomy edits trigger targeted invalidation.

☑️

ETag & 304 Responses

Generates ETags for every cached response. Clients with matching ETags receive a 304 Not Modified, saving bandwidth and improving performance.


Built for Headless WordPress.

Everything you need to make your REST API production-ready, with zero configuration required.

Pre-Database Speed

Responses served from disk before WordPress loads. No database queries, no PHP overhead, just raw speed.

ETag Support

Automatic ETag generation and 304 Not Modified responses. Save bandwidth and give clients instant cache validation.

Smart Invalidation

Cache clears automatically when content changes. Post updates, product edits, and taxonomy changes trigger targeted invalidation.

🔌

18+ Hooks & Filters

Full developer control with 18+ action hooks and filters. Customize cache duration, skip rules, headers, and invalidation logic.

🚫

Logged-In Users Skipped

Authenticated requests, nonce-bearing queries, and user-specific endpoints are automatically bypassed. No stale data for logged-in users.

👁

Cache Observability

Custom response headers (X-FrostAPI-Cache, X-FrostAPI-Time) let you verify caching is working from any HTTP client or browser DevTools.


Works with your eCommerce stack.

FrostyAPI includes built-in modules for popular eCommerce and headless WordPress plugins, with smart skip rules for user-specific endpoints.

WooCommerce

Product and category endpoints cached. Cart, checkout, and order endpoints automatically skipped for logged-in users.

Supported

CoCart

Product catalog endpoints cached. Cart session endpoints automatically excluded to prevent serving stale cart data.

Supported

FluentCart

Public product and storefront endpoints cached. Checkout flows and customer-specific data excluded automatically.

Supported

Easy Digital Downloads

Download and product listing endpoints cached. Purchase, license, and customer session endpoints automatically bypassed.

Supported

There’s no competition at this layer.

Most REST API caching plugins store results in the database. FrostyAPI serves responses before WordPress even loads.

Feature FrostyAPI WP REST Cache
Cache Layer advanced-cache (pre-DB) WordPress Transients
Avg. Response Time ~14ms ~150-300ms
Database Required ✓ No ✗ Yes
ETag / 304 Support
WooCommerce Support
CoCart Support
Smart Invalidation
WP-CLI Commands
Developer Hooks 18+ filters Limited
Multisite Support
Admin UI Required ✓ No ✗ Yes

Filters, CLI, no admin UI required.

FrostyAPI is built for developers who prefer code over clicks. Use filters to control every aspect of caching, or manage everything from the command line.

functions.php
// Custom cache duration per route
add_filter( ‘frostapi_cache_age’, function( $duration, $request ) {
  if ( str_contains( $request->get_route(), ‘/products’ ) ) {
    return 7200; // 2 hours for products
  }
  return $duration;
}, 10, 2 );
 
// Skip caching for specific routes
add_filter( ‘frostapi_skip_cache’, function( $skip, $request ) {
  if ( str_contains( $request->get_route(), ‘/private’ ) ) {
    return true;
  }
  return $skip;
}, 10, 2 );
$ wp frostapi flush

Purge the entire cache. All cached JSON files are deleted.

$ wp frostapi clear-post 42

Clear cache files associated with a specific post ID.

$ wp frostapi status

Show cache file count, total size, and cache directory path.

$ wp frostapi cleanup

Remove expired cache files based on their TTL settings.


Ready to freeze your API?

Start serving your REST API responses in under 14ms. No configuration required, no admin UI to learn. Just install and go.