Title: Blippinz AI SEO
Author: blippinz
Published: <strong>June 24, 2026</strong>
Last modified: June 24, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/blippinz-ai-seo.svg)

# Blippinz AI SEO

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

[Download](https://downloads.wordpress.org/plugin/blippinz-ai-seo.1.0.zip)

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

 [Support](https://wordpress.org/support/plugin/blippinz-ai-seo/)

## Description

**Blippinz AI SEO** is a lightweight WordPress plugin that bridges your external
AI content generation service with your WordPress site. It registers a secure, configurable
REST API endpoint that accepts AI-generated articles — including HTML content, titles,
and featured images — and creates them as WordPress posts automatically.

This plugin was built for the [Blippinz](https://blippinz.co.nz/) platform, which
uses artificial intelligence to generate SEO-optimised articles. Instead of manually
copying content from an AI tool into WordPress, Blippinz AI SEO handles the entire
publish flow: receive content  upload image  set featured image  create post  go
live.

**How it works:**

 1. Your AI service (or any HTTP client) sends a POST request to `/wp-json/blipaise/
    v1/addPost`
 2. The request is authenticated using an API key you set in the WordPress admin
 3. The plugin sanitises and validates all inputs
 4. It creates the WordPress post with the provided title, content, and status
 5. If an image is included (base64 or file upload), it is uploaded to the Media Library
    and set as the post’s featured image
 6. The API returns the new post ID, permalink, and media URL

**Key Features:**

 * **Secure API key authentication** — All requests to the post creation endpoint
   must carry a secret key set exclusively by you in WP Admin. No hardcoded defaults.
 * **Base64 image upload** — Send an image as a base64-encoded string in the JSON
   payload and the plugin automatically decodes, validates, and uploads it to the
   Media Library.
 * **Multipart file upload** — Alternatively, upload a file directly using `multipart/
   form-data`.
 * **Automatic featured image** — Uploaded images are set as the post’s featured
   image automatically.
 * **Configurable upload limits** — Set the maximum file size (1–50 MB) and allowed
   MIME types (JPEG, PNG, GIF, WEBP, PDF) from the settings page.
 * **Full input sanitisation** — All fields are sanitised using native WordPress
   functions (`sanitize_text_field`, `wp_kses_post`, `sanitize_key`, `absint`, `
   sanitize_file_name`).
 * **MIME type validation** — File types are verified against the server’s actual
   file contents using `wp_check_filetype_and_ext`, not just the filename or client-
   reported type.
 * **WordPress-native internationalisation** — All user-facing strings use the `
   blippinz-ai-seo` text domain and are ready for translation.

### Configuration

After activation, go to **Settings  Blippinz AI SEO** to configure:

**Blippinz API Key**
 The secret key that must be included in every request to the`
addPost` endpoint. Use a long, random string (e.g. a UUID or 32-character random
hex string). This key is stored in the WordPress options table and is never exposed
in the front-end.

**Max Upload Size (MB)**
 Maximum file size allowed for image uploads via this plugin.
Range: 1–50 MB. The effective limit is also capped by your server’s PHP `upload_max_filesize`
setting.

**Allowed File Types**
 Choose which MIME types are accepted for image uploads. 
Available options: JPEG, PNG, GIF, WEBP, PDF.

### REST API Reference

#### Base URL

    ```
    https://yoursite.com/wp-json/blipaise/v1
    ```

#### Authentication

All requests to the `addPost` endpoint must be authenticated. There are two methods:

**Method 1 — HTTP Header (recommended):**

    ```
    X-BLIPAISE-KEY: your-secret-api-key
    ```

**Method 2 — Query parameter:**

    ```
    ?api_key=your-secret-api-key
    ```

Requests with a missing, empty, or incorrect key will receive a `401 Unauthorized`
response.

WordPress administrators logged in via cookie/nonce (e.g. from the WP admin) can
also call the endpoint without an API key, provided they have the `edit_posts` capability.

#### Endpoints

**GET /status**

Returns the plugin status. Requires `edit_posts` capability (logged-in WordPress
users only).

Response:

    ```
    {
      "status": "ok",
      "plugin": "blippinz-ai-seo",
      "version": "1.0.0"
    }
    ```

**POST /addPost**

Creates a new WordPress post. Accepts JSON or multipart/form-data.

_Request Headers:_

    ```
    Content-Type: application/json
    X-BLIPAISE-KEY: your-secret-api-key
    ```

_JSON Body Parameters:_

 Field
 Type Required Description

 `title`
 string Yes The post title. Sanitised with `sanitize_text_field`.

 `content`
 string Yes The post body. Full HTML is accepted and sanitised with `
wp_kses_post`.

 `status`
 string No Post status. One of: `publish`, `draft`, `pending`, `private`.
Defaults to `publish`.

 `featured_media`
 integer No The attachment ID of an existing media library item
to use as the featured image.

 `image_data`
 string No A base64-encoded image to upload and set as the featured
image. May include a data URI prefix (e.g. `data:image/jpeg;base64,...`).

 `image_mime`
 string No The MIME type of the `image_data` image. Defaults to `image/
jpeg`. Must be in your configured allowlist.

_Example request (JSON with base64 image):_

    ```
    curl -X POST "https://yoursite.com/wp-json/blipaise/v1/addPost" \
      -H "Content-Type: application/json" \
      -H "X-BLIPAISE-KEY: your-secret-api-key" \
      -d '{
        "title": "10 SEO Tips That Actually Work in 2024",
        "content": "<h2>Introduction</h2><p>Search engine optimisation has changed...</p>",
        "status": "publish",
        "image_data": "/9j/4AAQSkZJRgABAQAAAQABAAD...",
        "image_mime": "image/jpeg"
      }'
    ```

_Example request (multipart file upload):_

    ```
    curl -X POST "https://yoursite.com/wp-json/blipaise/v1/addPost" \
      -H "X-BLIPAISE-KEY: your-secret-api-key" \
      -F "title=My Article" \
      -F "content=<p>Body content here.</p>" \
      -F "status=publish" \
      -F "file=@/path/to/image.jpg"
    ```

_Success Response (200 OK):_

    ```
    {
      "status": "ok",
      "plugin": "blippinz-ai-seo",
      "version": "1.0.0",
      "post_id": 42,
      "link": "https://yoursite.com/10-seo-tips-that-actually-work-in-2024/",
      "uploaded_media_id": 17,
      "uploaded_media_url": "https://yoursite.com/wp-content/uploads/2024/06/blipaise-20240622-120000.jpg"
    }
    ```

_Error Responses:_

 HTTP Code
 Error Code Cause

 400
 `blipaise_invalid_payload` Request body is empty or not valid JSON

 400
 `blipaise_missing_fields` `title` or `content` is empty

 400
 `blipaise_invalid_file_type` Uploaded file MIME type is not in the allowlist

 400
 `blipaise_file_too_large` Uploaded file exceeds the configured size limit

 400
 `blipaise_invalid_image_data` `image_data` is not valid base64 content

 400
 `blipaise_upload_failed` WordPress file system error during upload

 401
 — Missing or incorrect API key

## Installation

**From the WordPress Admin (recommended):**

 1. Go to **Plugins  Add New** in your WordPress dashboard.
 2. Search for **Blippinz AI SEO**.
 3. Click **Install Now**, then **Activate**.
 4. Navigate to **Settings  Blippinz AI SEO** and configure your API key.

**Manual installation:**

 1. Download the plugin ZIP file.
 2. Extract and upload the `blippinz-ai-seo` folder to `/wp-content/plugins/` on your
    server.
 3. Go to **Plugins** in your WordPress dashboard and click **Activate** next to Blippinz
    AI SEO.
 4. Navigate to **Settings  Blippinz AI SEO** and set a strong, unique API key.

**Important:** The REST endpoint will reject all API-key-authenticated requests 
until you have saved a key in the settings page.

## FAQ

### The endpoint returns 401. What’s wrong?

Make sure you have saved an API key in **Settings  Blippinz AI SEO** and that you
are sending it exactly as saved — either in the `X-BLIPAISE-KEY` header or as the`
api_key` query parameter. The key comparison is case-sensitive.

### Can I send HTML in the content field?

Yes. The `content` field is processed through WordPress’s `wp_kses_post()`, which
allows safe post HTML including headings, paragraphs, lists, links, images, tables,
and inline styles. Script tags and event attributes are stripped.

### What happens to the uploaded image?

The image is decoded (if base64) and written to the WordPress uploads directory,
then registered as a Media Library attachment and set as the post’s featured image.
It is treated identically to any image uploaded via the WordPress media uploader.

### Can I use this without the Blippinz platform?

Yes — the plugin is a general-purpose authenticated REST endpoint for post creation.
Any HTTP client or script can call it with the correct API key.

### How do I rotate or reset the API key?

Go to **Settings  Blippinz AI SEO**, enter a new key, and click **Save Settings**.
Old keys are immediately invalidated.

### Does uninstalling the plugin delete my posts?

No. Posts created via this plugin are standard WordPress posts and remain after 
uninstalling. However, the plugin’s stored options (API key and upload settings)
are deleted from the database on uninstall.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Blippinz AI SEO” is open source software. The following people have contributed
to this plugin.

Contributors

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

[Translate “Blippinz AI SEO” into your language.](https://translate.wordpress.org/projects/wp-plugins/blippinz-ai-seo)

### Interested in development?

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

## Changelog

#### 1.0.0

 * Initial public release.
 * Registered `POST /wp-json/blipaise/v1/addPost` endpoint with API key authentication.
 * Registered `GET /wp-json/blipaise/v1/status` endpoint (requires `edit_posts` 
   capability).
 * Admin settings page for API key and upload configuration (max size, allowed MIME
   types).
 * Base64 image upload support with automatic Media Library registration and featured
   image assignment.
 * Multipart file upload support (keys: `file`, `image`, `featured_image`, `featured_media`).
 * MIME type validation using `wp_check_filetype_and_ext` against server-side file
   inspection.
 * Full input sanitisation on all fields using native WordPress functions.
 * Plugin options deleted on uninstall to prevent credential leakage.

## Meta

 *  Version **1.0.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[content automation](https://wordpress.org/plugins/tags/content-automation/)
   [rest-api](https://wordpress.org/plugins/tags/rest-api/)[seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/blippinz-ai-seo/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/blippinz-ai-seo/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/blippinz-ai-seo/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/blippinz-ai-seo/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://blippinz.co.nz/)