Title: GymGrow Connect
Author: gymgrowplugin
Published: <strong>June 23, 2026</strong>
Last modified: June 23, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/gymgrow-connect.svg)

# GymGrow Connect

 By [gymgrowplugin](https://profiles.wordpress.org/gymgrowplugin/)

[Download](https://downloads.wordpress.org/plugin/gymgrow-connect.1.0.3.zip)

 * [Details](https://wordpress.org/plugins/gymgrow-connect/#description)
 * [Reviews](https://wordpress.org/plugins/gymgrow-connect/#reviews)
 *  [Installation](https://wordpress.org/plugins/gymgrow-connect/#installation)
 * [Development](https://wordpress.org/plugins/gymgrow-connect/#developers)

 [Support](https://wordpress.org/support/plugin/gymgrow-connect/)

## Description

GymGrow Connect adds a small set of secure REST API endpoints under the `gymgrow/
v1` namespace so an external system (for example, an AI content pipeline) can:

 * Create or update a post — title, content, excerpt, slug, categories, tags, schedule
   date — in a single request.
 * Set RankMath SEO fields (SEO title, meta description, focus keyword, canonical
   URL, robots) on the same request or on an existing post.
 * Upload an image from a multipart file or a remote URL, set its alt text, and 
   optionally assign it as the featured image.

It replaces ad-hoc `functions.php` snippets with a versioned, capability-checked
plugin.

#### Endpoints

 * `POST /wp-json/gymgrow/v1/article` — publish/update an article (also sets SEO
   and featured image).
 * `POST /wp-json/gymgrow/v1/media` — upload an image.
 * `POST /wp-json/gymgrow/v1/seo/{id}` — update RankMath SEO fields for a post.

A backward-compatible alias `POST /wp-json/custom/v1/rankmath/{id}` is also registered
for pipelines that used the legacy route.

#### Authentication

Requests are authenticated with WordPress’s own user authentication — use an Application
Password (Basic Auth) for a user who can publish posts. Permissions are enforced
per route with capability checks (`publish_posts`, `upload_files`, `edit_post`).
You may optionally enable a second-factor shared secret (`X-GymGrow-Key` header)
from the settings screen.

This plugin does not call any external services and stores no personal data.

## Installation

 1. Upload the `gymgrow-connect` folder to `/wp-content/plugins/`, or install the ZIP
    via Plugins  Add New  Upload Plugin.
 2. Activate the plugin through the Plugins screen.
 3. (Optional) Visit Settings  GymGrow Connect to generate an API key, choose a default
    category, and set a default status.
 4. Create an Application Password for the publishing user under Users  Profile, and
    use it as Basic Auth in your pipeline.

## FAQ

### Does it require RankMath?

No. If RankMath is active the SEO fields take effect immediately. If not, the meta
is still stored under the RankMath meta keys and becomes live once RankMath is installed.

### How are the endpoints secured?

Every route has a capability-based `permission_callback`. Publishing requires `publish_posts`,
uploads require `upload_files`, and SEO updates require `edit_post` on the target
post. You can additionally require a matching `X-GymGrow-Key` header.

### Does it send data anywhere?

No. The plugin only receives requests; it does not phone home or contact third-party
services.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“GymGrow Connect” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ gymgrowplugin ](https://profiles.wordpress.org/gymgrowplugin/)

[Translate “GymGrow Connect” into your language.](https://translate.wordpress.org/projects/wp-plugins/gymgrow-connect)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/gymgrow-connect/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/gymgrow-connect/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/gymgrow-connect/)
by [RSS](https://plugins.trac.wordpress.org/log/gymgrow-connect/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.3

 * Security: omitting the `status` parameter now creates or updates a draft instead
   of publishing. Publishing requires explicitly passing `status=publish`, which
   remains gated by the `publish_posts` capability.

#### 1.0.2

 * Security: editing an existing post that is already published, private, or scheduled(
   future) now requires the `publish_posts` capability even when the request does
   not change the status.

#### 1.0.1

 * Security: the article endpoint now requires the `publish_posts` capability when
   an update changes a post to a published, private, or scheduled (future) status,
   not just `edit_post`.

#### 1.0.0

 * Initial release: article publish endpoint, media upload endpoint, RankMath SEO
   endpoint, optional API key, settings screen.

## Meta

 *  Version **1.0.3**
 *  Last updated **16 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [automation](https://wordpress.org/plugins/tags/automation/)[publishing](https://wordpress.org/plugins/tags/publishing/)
   [rankmath](https://wordpress.org/plugins/tags/rankmath/)[rest-api](https://wordpress.org/plugins/tags/rest-api/)
   [seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/gymgrow-connect/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/gymgrow-connect/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/gymgrow-connect/reviews/)

## Contributors

 *   [ gymgrowplugin ](https://profiles.wordpress.org/gymgrowplugin/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/gymgrow-connect/)