WordPress Upload Guide
Publish posts — text, posts with images, or posts with a video — to a self-hosted WordPress site using the IndReelForge API. WordPress connects with your site URL, a username and an application password, through the WordPress REST API.
Supported Content Types
| Type | Endpoint | Notes |
|---|---|---|
| Text post | POST /api/upload_text | A standard WordPress post |
| Post with images | POST /api/upload_photos | Images are uploaded to your Media Library |
| Post with video | POST /api/upload | Max 64 MB |
Requirements and Limits
| Requirement | Value |
|---|---|
| Site | Self-hosted WordPress with the REST API enabled |
| User | A WordPress user who can publish posts |
| Max file size | 64 MB (your server's upload limit may be lower) |
| Posting rate | Limited only by your server |
WordPress-Specific Fields
| Field | Description |
|---|---|
wordpress_status | Set to draft to save the post as a draft instead of publishing it |
wordpress_categories | Category IDs for the post, comma-separated (e.g. 3,7). Find an ID in wp-admin → Posts → Categories (hover the name and read tag_ID= in the link) or at /wp-json/wp/v2/categories. Names are ignored. |
wordpress_tags | Tag IDs, comma-separated, same as categories (/wp-json/wp/v2/tags). |
wordpress_title | Override title for WordPress only |
Create an Application Password
Application passwords are built into WordPress (5.6 and later). They let IndReelForge post without your real login password, and you can revoke them at any time.
- Sign in to your WordPress admin (
https://example.com/wp-admin) as the user who will publish. - Go to Users → Profile.
- Scroll to Application Passwords, enter a name (e.g.
IndReelForge) and click Add New Application Password. - Copy the generated password (e.g.
abcd efgh ijkl mnop qrst uvwx). WordPress shows it only once.
Can't see Application Passwords?
The section is hidden if the site isn't served over HTTPS or a security plugin has disabled application passwords or the REST API. Enable HTTPS / the REST API and try again.
Connect WordPress
From the dashboard
- Dashboard → Profiles → select your profile
- Click Connect next to WordPress
- Enter the Site URL, Username and Application password
- IndReelForge verifies the details with your site before saving — status shows Connected
With the API
curl -X POST https://api.indreelforge.com/api/profiles/my-brand/connect/wordpress/credentials \
-H 'Authorization: Apikey YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"site_url": "https://example.com", "username": "admin", "app_password": "abcd efgh ijkl mnop qrst uvwx"}'
| Field | Required | Description |
|---|---|---|
site_url | Yes | Your WordPress site address |
username | Yes | A WordPress user who can publish posts |
app_password | Yes | The application password generated for that user |
See Connect with Credentials for the full request and response format.
Publish a Text Post
curl -X POST https://api.indreelforge.com/api/upload_text \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-brand' \
-F 'title=Our 2026 product roadmap' \
-F 'description=Here is everything we are shipping this year...' \
-F 'platform[]=wordpress' \
-F 'wordpress_categories=3' \
-F 'wordpress_tags=12,15'
Save a Draft with Images
curl -X POST https://api.indreelforge.com/api/upload_photos \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-brand' \
-F 'title=Event recap: Launch Week' \
-F 'description=Photos from our launch week meetup.' \
-F 'photos[]=@/path/to/photo1.jpg' \
-F 'photos[]=@/path/to/photo2.jpg' \
-F 'platform[]=wordpress' \
-F 'wordpress_status=draft'
Publish a Post with a Video
curl -X POST https://api.indreelforge.com/api/upload \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-brand' \
-F 'title=Watch: how the new editor works' \
-F 'video=@/path/to/video.mp4' \
-F 'platform[]=wordpress'
Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
Connect fails with INVALID_CREDENTIALS | Wrong username or application password, or the password was revoked | Create a new application password and reconnect |
| Connect fails, site unreachable | The REST API (/wp-json/) is blocked by a security plugin, firewall or maintenance mode | Allow access to /wp-json/ and try again |
| "Sorry, you are not allowed to create posts" | The user's role can't publish | Use an Author, Editor or Administrator account |
| Media upload fails | The file is bigger than your server's upload limit | Raise upload_max_filesize / post_max_size on the server, or send a smaller file |
| WordPress.com site won't connect | Only self-hosted WordPress is supported | Use a self-hosted site |