Genesis REST API Integration
If your site uses the Genesis framework, it’s likely that you’re making use of Genesis hooks like genesis_before_content or genesis_entry_footer. When using the WP REST API, any content that has been added to these…
Consider an alternative
Genesis REST API Integration shows warning signs in 2026 — compare the alternatives below before installing. It runs on 10+ sites, is rated 5/5 and was last updated 11 years ago, and scores 30/100 on our health check.
- Small user base (10+ active installs)
- Very few reviews so far
- No update in 10 years
- Only tested up to WordPress 4.4 (latest is 7.1)
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Genesis REST API Integration stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| api | >100 |
| framework | >100 |
| genesis | >100 |
| integration | >100 |
| rest | >100 |
Version adoption
Share of active sites per release.
Rating breakdown
★★★★★★★★★★ 5 from 1 reviews
About Genesis REST API Integration
From the official readme · v1.1.0Description
If your site uses the Genesis framework, it’s likely that you’re making use of Genesis hooks like genesis_before_content or genesis_entry_footer. When using the WP REST API, any content that has been added to these hooks is not included in the response by default.
This plugin filters the response from the API to include any content added via Genesis hooks. It adds this content to the post object response, which means you don’t have to do a separate request or modify your request to get the data. Simply ask for a post in the standard way like /wp-json/wp/v2/posts/1 and you’ll get the extra content from the Genesis hooks.
Example diff showing the response with and without the plugin active
The Genesis hook content that is returned is generated with respect to the context of the specific post being retrieved. The context will match what it would be on the single post page for the given post, page, or custom post type. This means that if you’ve got some code like this:
add_action( 'genesis_before_entry', 'mytheme_output_special_content' );
function mytheme_output_special_content() {
// Only on posts in a specific category
if ( in_category( '5' ) ) {
echo 'Some Content';
}
}
You’ll get back ‘Some Content’ as the value of the property ‘genesis_before_entry’ on the response object only if the post is actually in category 5. All of the standard conditionals like is_archive(), is_single(), has_tag(), etc. will be respected.
By default this plugin only adds properties to the response object for hooks that have output, but you can modify this behavior using a filter like so:
add_filter( 'genesis_rest_api_return_empty_hooks', '__return_true' );
By default this plugin adds the extra properties to posts, pages, and all custom post types, but you can specify which post types you want to include the extra data with another filter:
add_filter( 'genesis_rest_api_supported_post_types', 'mytheme_genesis_rest_api_supported_post_types' );
function mytheme_genesis_rest_api_supported_post_types( $post_types ) {
// Only add data to the movie post type.
$post_types = array( 'movie' );
return $post_types;
}
NOTE: In v2 of the REST API, custom post types need to have the extra properties show_in_rest, rest_base, and rest_controller_class set on their post type objects in order for the API to start serving data for them. I’ve included a filter in this plugin for adding these properties so that you can declare REST API support for CPTs and add the extra Genesis data in one step, but the filter is off by default and won’t override properties that are already set (because if core doesn’t assume you want all your CPTs publicly accessible by default, I don’t think I should either). To turn this functionality on, use the included filter like this:
add_filter( 'genesis_rest_api_register_cpt_api_support', '__return_true' );
If you do this, you’re CPTs will be available at routes that match the official name of the post type found on the post type object, so if your post type is ‘movie’ and you have a movie with an id of 8, the movie will be accessible at /wp-json/v2/movie/8. It’s probably a better idea to match the core convention of /posts/ and /pages/, so if you want to make the route available at /movies/ instead of /movie/ you just need to specifically set the rest_base property like so:
add_action( 'init', 'mytheme_change_cpt_routes', 11 );
function mytheme_change_cpt_routes() {
global $wp_post_types;
$wp_post_types['movie']->rest_base = 'movies';
}
Here’s the full list of all the Genesis hooks that are currently supported:
genesis_before
genesis_before_header
genesis_site_title
genesis_site_description
genesis_header_right
genesis_after_header
genesis_before_content_sidebar_wrap
genesis_before_content
genesis_before_loop
genesis_before_while
genesis_before_entry
genesis_entry_header
genesis_before_entry_content
genesis_entry_content
genesis_after_entry_content
genesis_entry_footer
genesis_after_entry
genesis_after_endwhile
genesis_after_loop
genesis_before_sidebar_widget_area
genesis_after_sidebar_widget_area
genesis_after_content_sidebar_wrap
genesis_before_footer
genesis_footer
genesis_after_footer
genesis_after
And naturally, there is a filter to control which hooks are supported:
add_filter( 'genesis_rest_api_supported_hooks', 'mytheme_genesis_rest_api_supported_hooks' );
function mytheme_genesis_rest_api_supported_hooks( $genesis_hooks ) {
// Only include certian hooks.
$genesis_hooks = array(
'genesis_before_entry',
'genesis_after_entry',
);
return $genesis_hooks;
}
NOTE: The hooks genesis_header and genesis_loop are not included by default because they mostly call other hooks that are included, but you can always add them back in using the genesis_rest_api_supported_hooks filter.
NOTE: Returning formatted HTML over the REST API is not the best way to make use of a REST API to build a website. It would be preferable to return only the raw object data and build all of your HTML on the client side using the object data. With this plugin you can do exactly this with a little help from json_encode:
add_action( 'genesis_before_entry_content', 'mytheme_pass_array' );
function mytheme_pass_array() {
if ( is_single( 124 ) ) {
$json = array(
'a_key' => 'some value',
'another_key' => 'another value',
);
echo json_encode( $json );
}
}
Or the object version:
add_action( 'genesis_after_entry_content', 'mytheme_pass_object' );
function mytheme_pass_object() {
if ( in_category( 2 ) ) {
$json = new stdClass();
$json->some_key = 'some value';
$json->another_key = 'another value';
echo json_encode( $json );
}
}
Passing arbitrary objects and arrays like this really opens up some interesting possibilities.
If you have any ideas for new features or find a bug, please open an issue on Github. Pull requests are also encouraged :).
Installation
Manual Installation
- Upload the entire
/genesis-rest-api-integrationdirectory to the/wp-content/plugins/directory. - Activate Genesis REST API Integration through the ‘Plugins’ menu in WordPress.
Better Installation
- Go to Plugins > Add New in your WordPress admin and search for Genesis REST API Integration.
- Click Install.
Changelog
Added better support for working with custom post types Now you can register basic CPT support for the REST API using a filter Switched the primary initialization hook to rest_api_init
1.1.0
- Added better support for working with custom post types
- Now you can register basic CPT support for the REST API using a filter
- Switched the primary initialization hook to rest_api_init
1.0.0
- First Release
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Genesis REST API Integration alternatives
All api plugins →FAQ
Genesis REST API Integration: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Sep 29, 2026
Is Genesis REST API Integration free?
Yes. Genesis REST API Integration is free to download and use from the official WordPress.org plugin directory.
Is Genesis REST API Integration safe to use in 2026?
Genesis REST API Integration shows warning signs in 2026 — compare the alternatives below before installing. It runs on 10+ sites, is rated 5/5 and was last updated 11 years ago, and scores 30/100 on our health check.
How many websites use Genesis REST API Integration?
Genesis REST API Integration is active on 10+ WordPress websites and has been downloaded 2,178 times since it launched in July 2015. It was downloaded 43 times in the last 30 days.
Does Genesis REST API Integration work with WordPress 7.1?
Genesis REST API Integration is officially tested up to WordPress 4.4.34, while the latest release is 7.1.2. It may still work, but try it on a staging site first.
When was Genesis REST API Integration last updated?
The latest version, 1.1.0, was released on December 7, 2015 (11 years ago).
Who makes Genesis REST API Integration?
Genesis REST API Integration is developed and maintained by Braad.
What are the best alternatives to Genesis REST API Integration?
The most popular alternatives to Genesis REST API Integration are WP Consent API (200K+ installs), Disable REST API (80K+ installs) and Mailgun for WordPress (80K+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card