Publishing

WordPress (REST API)

Available

Publish AI-generated articles straight into any self-hosted WordPress site using native REST API + Application Passwords. No plugin install required — works with managed hosts, Pantheon, WP Engine, Kinsta, Bluehost, anywhere WordPress 5.6+ runs over HTTPS.

Prerequisites

  • WordPress 5.6 or newer (check WP Admin → Dashboard → At a Glance).
  • Your site must be served over HTTPS. WordPress disables Application Passwords on plain HTTP.
  • A user account with Editor or Administrator role.
  • The REST API must be reachable at /wp-json/wp/v2/. Security plugins like Wordfence can block it — see Troubleshooting below.

Setup guide

  1. Sign in to WordPress as an Editor or Administrator.
  2. Go to Users → Profile (or Users → All Users → Edit for a specific user).
  3. Scroll to Application Passwords. If this section is missing, see Troubleshooting.
  4. Enter KwikScaleAI as the application name and click Add New Application Password.
  5. Copy the generated password (it's shown only once — the format is xxxx xxxx xxxx xxxx xxxx xxxx, with or without spaces; both work).
  6. In KwikScaleAI, open Integrations → WordPress (REST API) → Connect.
  7. Paste your site URL, the WordPress username, and the application password. Click Test connection — you should see a success toast.

How it works

When you approve an article in KwikScaleAI, we make two HTTP calls to your WordPress site:

  1. A pre-flight GET /wp-json/ to confirm Application Passwords are available.
  2. A POST /wp-json/wp/v2/posts to create the article (or POST /wp-json/wp/v2/posts/{id} for updates).

Auth is HTTP Basic: we send Authorization: Basic base64(username:applicationPassword). The post body maps cleanly to WordPress fields:

POST /wp-json/wp/v2/posts
{
  "title": "How We Doubled Organic Traffic",
  "slug": "how-we-doubled-organic-traffic",
  "content": "<h1>...</h1><p>...</p>",
  "excerpt": "The exact playbook we used to 2x traffic...",
  "status": "publish",
  "categories": [12],
  "tags": [34, 56]
}

Configuration

siteUrlRequired

string (URL)

Your WordPress site URL. Must start with https://. Trailing slashes are stripped automatically.

usernameRequired

string

WordPress username (not email). Find it at Users → Profile.

applicationPasswordRequired

string

The 24-character password generated in Users → Profile → Application Passwords. Spaces are optional.

publishStatusOptional

'publish' | 'draft' | 'private'

publish goes live immediately. draft saves without publishing — useful if you want manual review in WP Admin. private makes the post visible only to logged-in admins.

Default: publish

defaultCategoryIdsOptional

number[]

Numeric WordPress category IDs to apply to every article. Find the ID in Posts → Categories— it's in the URL when you hover “Edit” (tag_ID=12). Empty array = uncategorized.

Default: []

defaultTagIdsOptional

number[]

Numeric WordPress tag IDs. Same lookup method as categories.

Default: []

Choosing a publish status

  • publish — recommended for fully autonomous pipelines. Articles go live the moment KwikScaleAI generates + scores them.
  • draft— recommended while you're still tuning prompts or editorial style. Articles land in the WP dashboard for human review before you click “Publish.”
  • private — rare. Useful for internal knowledge-base WordPress installs.

Capabilities

Update existing
Draft
Tags
Categories
Featured image
Scheduled publish
Delete

When to use the Plugin instead

If you own the WordPress install and can upload plugins, the KwikScaleAI WordPress Plugin is usually a better fit:

  • Single integration key (no Application Password needed).
  • Accepts tag/category names — no ID lookup.
  • Bypasses hosts that block /wp-json/wp/v2/.

Use the REST API integration when plugin install is not allowed — e.g. managed WP hosts with strict whitelists, or multi-tenant installs where you don't control wp-content/plugins.

Troubleshooting

Application Passwords section is missing
Three causes, in order of likelihood: (1) your site is on plain HTTP — WordPress hides Application Passwords over non-HTTPS connections; (2) a security plugin (iThemes, Wordfence) disabled them — look for a setting called “Disable Application Passwords”; (3) you're on WordPress < 5.6.
401 Unauthorized on every call
Usually an .htaccess issue. Apache strips the Authorization header by default on some shared hosts. Add this to .htaccess: RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]. If you're on Nginx, add fastcgi_pass_header Authorization; to your server block.
Security plugin blocks /wp-json/wp/v2/posts
Wordfence, iThemes, and All In One WP Security can rate-limit or outright block REST requests. Whitelist requests with User-Agent KwikScaleAI-publishing/1.0 or your server's outbound IP. If whitelisting isn't an option, switch to the WordPress Plugin integration — it registers under a separate namespace (/wp-json/kwikscaleai/v1/) that most WAFs don't touch.
403 Forbidden when creating posts
The user the Application Password belongs to doesn't have the 'edit_posts' + 'publish_posts' capability. Give them the Editor role, or use a dedicated user account created just for KwikScaleAI.
Posts are created but no categories/tags appear
The numeric IDs in your config don't exist. Double-check them in Posts → Categories and Posts → Tags. Or use the WordPress Plugin if you'd rather send names.
Connect test succeeds, publish fails with 500
Check PHP error logs on your WP host. Common cause: a must-use plugin or theme hook throwing an exception on post creation. Try deactivating non-essential plugins one by one to isolate the culprit — a good test is to create a post manually in WP Admin first; if that fails too, the REST path isn't the issue.

FAQ

Do I need WordPress 5.6 or newer?
Yes. Application Passwords ship with WordPress 5.6+ and require HTTPS. If you're on an older version, update WordPress — or use the KwikScaleAI Plugin integration, which works with WP 5.0+.
Can I pass tag/category names instead of numeric IDs?
Not with this integration in v1. WordPress's REST API expects numeric taxonomy IDs, and creating new terms by name from content is on the roadmap. If you want string tags, use the WordPress Plugin integration instead — it accepts both names and IDs.
Can KwikScaleAI upload featured images to WordPress?
Not yet in v1. The adapter only sends HTML content, title, slug, excerpt, status, categories, and tags. Featured-image upload via the REST media endpoint is planned.
What WordPress user role does the Application Password need?
Editor or Administrator. Authors can publish their own posts but cannot edit others'; Contributors can't publish at all. Use Editor unless you specifically need Administrator privileges.
How do I rotate the Application Password?
In WordPress: WP Admin → Users → Profile → Application Passwords → Revoke the old password, then generate a new one. Paste the new password into the KwikScaleAI dashboard. The old password stops working the moment you revoke it.

Ready to automate publishing?

Connect your site once. KwikScaleAI researches, writes, and publishes SEO content on autopilot.

Get started free