WordPress

App · Website Builders · 20 actions

Publish and manage a self-hosted WordPress site: write, update and delete posts and pages, organise them with categories and tags, and moderate comments.

Actions

ActionWhat it does
Create a categoryAdd a category to the site.
Create a pageCreate a new page.
Create a postWrite a new post to your WordPress site.
Create a tagAdd a tag to the site so posts can be filed under it.
Delete a categoryDelete a category.
Delete a commentMove a comment to the trash, or delete it outright.
Delete a pageMove a page to the trash, or delete it outright.
Delete a postMove a post to the trash, or delete it outright.
Delete a tagDelete a tag.
Find categoriesList or search the site's categories, or find the categories on one post.
Find commentsList comments across the site or on one post.
Find pagesList or search pages.
Find postsList or search posts.
Find tagsList or search the site's tags, or find the tags on one post.
Get a pageFetch one page by its ID, including its full content.
Get a postFetch one post by its ID, including its full content.
Moderate a commentApprove, hold, spam or trash a comment, or edit its text.
Post a commentLeave a comment on a post.
Update a pageChange an existing page.
Update a postChange an existing post.

Create a category

Add a category to the site. Categories can be nested under one another.

Inputs

NamenametextRequired
The category name, for example 'Product'.
Descriptiondescriptiontext
A description, shown by some themes.
Slugslugtext
The URL segment for the category. Leave empty to derive one from the name.
Parent category IDparent_category_idtext
The category to nest this one under. Leave empty, or use 0, for a top-level category.

Outputs

countnumber
descriptiontext
idnumber
linktext
nametext
parentnumber
slugtext
taxonomytext
Example output
{
  "count": 34,
  "description": "Release notes and product news.",
  "id": 7,
  "link": "https://example.com/category/product/",
  "name": "Product",
  "parent": 0,
  "slug": "product",
  "taxonomy": "category"
}

Create a page

Create a new page. Leave the status empty to save it as a draft.

Inputs

TitletitletextRequired
The page title, for example 'About us'.
ContentcontenttextRequired
The body of the page. HTML is allowed.
Statusstatustext
Whether to publish the page. Leave empty to save a draft.One of: publish (Published), future (Scheduled), draft, pending (Pending review), private.
Excerptexcerpttext
A short summary, used by some themes.
Slugslugtext
The URL segment for the page. Leave empty to derive one from the title.
Parent page IDparent_page_idtext
The page to nest this one under. Leave empty, or use 0, for a top-level page.
Menu ordermenu_ordernumber
Where the page sits among its siblings. Lower numbers come first.
Publish datepublish_datedate and time
When the page should be dated.
Comment statuscomment_statustext
Whether readers may comment on the page.One of: open, closed.

Outputs

authornumber
comment_statustext
contenttext
datetext
excerpttext
idnumber
linktext
menu_ordernumber
modifiedtext
parentnumber
slugtext
statustext
titletext
Example output
{
  "author": 1,
  "comment_status": "closed",
  "content": "<p>Who we are.</p>",
  "date": "2026-01-06T11:00:00",
  "excerpt": "",
  "id": 88,
  "link": "https://example.com/about-us/",
  "menu_order": 2,
  "modified": "2026-02-02T16:20:00",
  "parent": 0,
  "slug": "about-us",
  "status": "publish",
  "title": "About us"
}

Create a post

Write a new post to your WordPress site. Leave the status empty to save it as a draft.

Inputs

TitletitletextRequired
The post title, for example 'Our spring update'.
ContentcontenttextRequired
The body of the post. HTML is allowed.
Statusstatustext
Whether to publish the post. Leave empty to save a draft.One of: publish (Published), future (Scheduled), draft, pending (Pending review), private.
Excerptexcerpttext
A short summary shown in post listings.
Slugslugtext
The URL segment for the post. Leave empty to let WordPress derive one from the title.
Categoriescategorieslist
The categories to file the post under.
Tag IDstagstext
Tag IDs to apply, separated by commas. Use Find tags to look up an ID; a site can have far too many tags to list in a dropdown.
Publish datepublish_datedate and time
When the post should be dated. Set a future date with the Scheduled status to schedule it.
Comment statuscomment_statustext
Whether readers may comment on the post.One of: open, closed.
Post formatpost_formattext
The post format, if your theme uses them. Defaults to Standard.One of: standard, aside, chat, gallery, link, image, quote, status, video, audio.
Pin to the front pagestickytrue/false
Whether to keep the post at the top of the blog.

Outputs

authornumber
categorieslist
comment_statustext
contenttext
datetext
excerpttext
formattext
idnumber
linktext
modifiedtext
slugtext
statustext
stickytrue/false
tagslist
titletext
Example output
{
  "author": 1,
  "categories": [
    7
  ],
  "comment_status": "open",
  "content": "<p>Everything that shipped this quarter.</p>",
  "date": "2026-03-14T09:30:00",
  "excerpt": "<p>Everything that shipped this quarter.</p>",
  "format": "standard",
  "id": 412,
  "link": "https://example.com/spring-product-update/",
  "modified": "2026-03-14T09:30:00",
  "slug": "spring-product-update",
  "status": "publish",
  "sticky": false,
  "tags": [
    21,
    22
  ],
  "title": "Spring product update"
}

Create a tag

Add a tag to the site so posts can be filed under it.

Inputs

NamenametextRequired
The tag name, for example 'changelog'.
Descriptiondescriptiontext
A description, shown by some themes.
Slugslugtext
The URL segment for the tag. Leave empty to derive one from the name.

Outputs

countnumber
descriptiontext
idnumber
linktext
nametext
parentnumber
slugtext
taxonomytext
Example output
{
  "count": 12,
  "description": "",
  "id": 21,
  "link": "https://example.com/tag/changelog/",
  "name": "changelog",
  "parent": 0,
  "slug": "changelog",
  "taxonomy": "post_tag"
}

Delete a category

Delete a category. WordPress has no trash for categories, so this is permanent: posts filed under it keep their content and fall back to the default category.

Inputs

Category IDcategory_idtextRequired
The numeric ID of the category to delete.

Outputs

countnumber
descriptiontext
idnumber
linktext
nametext
parentnumber
slugtext
taxonomytext
Example output
{
  "count": 34,
  "description": "Release notes and product news.",
  "id": 7,
  "link": "https://example.com/category/product/",
  "name": "Product",
  "parent": 0,
  "slug": "product",
  "taxonomy": "category"
}

Delete a comment

Move a comment to the trash, or delete it outright. A trashed comment can be restored from the WordPress admin; a permanent delete cannot be undone.

Inputs

Comment IDcomment_idtextRequired
The numeric ID of the comment to delete.
Delete permanentlypermanentlytrue/false
Turn this on to skip the trash and delete the comment for good.

Outputs

author_emailtext
author_nametext
author_urltext
contenttext
datetext
idnumber
linktext
parentnumber
postnumber
statustext
Example output
{
  "author_email": "dana@example.com",
  "author_name": "Dana Reader",
  "author_url": "",
  "content": "<p>This is exactly what we needed, thank you.</p>",
  "date": "2026-03-14T12:05:00",
  "id": 903,
  "link": "https://example.com/spring-product-update/#comment-903",
  "parent": 0,
  "post": 412,
  "status": "trash"
}

Delete a page

Move a page to the trash, or delete it outright. A trashed page can be restored from the WordPress admin; a permanent delete cannot be undone.

Inputs

Page IDpage_idtextRequired
The numeric ID of the page to delete.
Delete permanentlypermanentlytrue/false
Turn this on to skip the trash and delete the page for good.

Outputs

authornumber
comment_statustext
contenttext
datetext
excerpttext
idnumber
linktext
menu_ordernumber
modifiedtext
parentnumber
slugtext
statustext
titletext
Example output
{
  "author": 1,
  "comment_status": "closed",
  "content": "<p>Who we are.</p>",
  "date": "2026-01-06T11:00:00",
  "excerpt": "",
  "id": 88,
  "link": "https://example.com/about-us/",
  "menu_order": 2,
  "modified": "2026-02-02T16:20:00",
  "parent": 0,
  "slug": "about-us",
  "status": "trash",
  "title": "About us"
}

Delete a post

Move a post to the trash, or delete it outright. A trashed post can be restored from the WordPress admin; a permanent delete cannot be undone.

Inputs

Post IDpost_idtextRequired
The numeric ID of the post to delete.
Delete permanentlypermanentlytrue/false
Turn this on to skip the trash and delete the post for good.

Outputs

authornumber
categorieslist
comment_statustext
contenttext
datetext
excerpttext
formattext
idnumber
linktext
modifiedtext
slugtext
statustext
stickytrue/false
tagslist
titletext
Example output
{
  "author": 1,
  "categories": [
    7
  ],
  "comment_status": "open",
  "content": "<p>Everything that shipped this quarter.</p>",
  "date": "2026-03-14T09:30:00",
  "excerpt": "<p>Everything that shipped this quarter.</p>",
  "format": "standard",
  "id": 412,
  "link": "https://example.com/spring-product-update/",
  "modified": "2026-03-14T09:30:00",
  "slug": "spring-product-update",
  "status": "trash",
  "sticky": false,
  "tags": [
    21,
    22
  ],
  "title": "Spring product update"
}

Delete a tag

Delete a tag. WordPress has no trash for tags, so this is permanent: posts carrying it keep their content and simply lose the tag.

Inputs

Tag IDtag_idtextRequired
The numeric ID of the tag to delete.

Outputs

countnumber
descriptiontext
idnumber
linktext
nametext
parentnumber
slugtext
taxonomytext
Example output
{
  "count": 12,
  "description": "",
  "id": 21,
  "link": "https://example.com/tag/changelog/",
  "name": "changelog",
  "parent": 0,
  "slug": "changelog",
  "taxonomy": "post_tag"
}

Find categories

List or search the site's categories, or find the categories on one post.

Inputs

Searchsearchtext
Only return categories matching this text.
Parent category IDparent_category_idtext
Only return categories nested under this one. Use 0 for top-level categories.
Post IDpost_idtext
Only return the categories assigned to this post.
Hide unused categorieshide_emptytrue/false
Turn this on to leave out categories with no published posts.
Sort directionordertext
Whether to sort ascending or descending.One of: asc (Ascending), desc (Descending).
Sort byorder_bytext
Which field to sort by. Defaults to name.One of: id, include (Given ID order), name, slug, include_slugs (Given slug order), term_group (Term Group), description, count.
Results per pageper_pagenumber
How many results to return, 1 to 100. Defaults to 10.From 1 to 100.
Pagepagenumber
Which page of results to return. Starts at 1.At least 1.
Slugslugtext
Only return the category with this exact slug.

Outputs

countnumber
itemslist
Example output
{
  "count": 1,
  "items": [
    {
      "count": 34,
      "description": "Release notes and product news.",
      "id": 7,
      "link": "https://example.com/category/product/",
      "name": "Product",
      "parent": 0,
      "slug": "product",
      "taxonomy": "category"
    }
  ]
}

Find comments

List comments across the site or on one post. Set the status to 'Awaiting moderation' to fetch the moderation queue.

Inputs

Post IDpost_idtext
Only return comments on this post.
Searchsearchtext
Only return comments matching this text.
Statusstatustext
Which comments to return. Defaults to approved comments only.One of: approve (Approved), hold (Awaiting moderation), spam, trash (Trashed), all (All statuses).
Author emailauthor_emailtext
Only return comments left by this email address.
Parent comment IDparent_comment_idtext
Only return replies to this comment. Use 0 for top-level comments only.
Posted afterpublished_afterdate and time
Only return comments left after this moment.
Posted beforepublished_beforedate and time
Only return comments left before this moment.
Sort directionordertext
Whether to sort ascending or descending.One of: asc (Ascending), desc (Descending).
Sort byorder_bytext
Which field to sort by. Defaults to date.One of: date, date_gmt (Date (GMT)), id, include (Given ID order), post, parent, type.
Results per pageper_pagenumber
How many results to return, 1 to 100. Defaults to 10.From 1 to 100.
Pagepagenumber
Which page of results to return. Starts at 1.At least 1.

Outputs

countnumber
itemslist
Example output
{
  "count": 1,
  "items": [
    {
      "author_email": "dana@example.com",
      "author_name": "Dana Reader",
      "author_url": "",
      "content": "<p>This is exactly what we needed, thank you.</p>",
      "date": "2026-03-14T12:05:00",
      "id": 903,
      "link": "https://example.com/spring-product-update/#comment-903",
      "parent": 0,
      "post": 412,
      "status": "approved"
    }
  ]
}

Find pages

List or search pages. Every filter is optional; with none set this returns the site's published pages.

Inputs

Searchsearchtext
Only return pages matching this text.
Statusesstatuslist
Only return pages with these statuses. Defaults to published pages only.One or more of: publish (Published), future (Scheduled), draft, pending (Pending review), private.
Parent page IDparent_page_idtext
Only return pages nested under this one. Use 0 for top-level pages.
Sort directionordertext
Whether to sort ascending or descending.One of: asc (Ascending), desc (Descending).
Sort byorder_bytext
Which field to sort by. Defaults to date.One of: author, date, id, include (Given ID order), modified, parent, relevance, slug, include_slugs (Given slug order), title, menu_order (Menu order).
Results per pageper_pagenumber
How many results to return, 1 to 100. Defaults to 10.From 1 to 100.
Pagepagenumber
Which page of results to return. Starts at 1.At least 1.
Slugslugtext
Only return the page with this exact slug.

Outputs

countnumber
itemslist
Example output
{
  "count": 1,
  "items": [
    {
      "author": 1,
      "comment_status": "closed",
      "content": "<p>Who we are.</p>",
      "date": "2026-01-06T11:00:00",
      "excerpt": "",
      "id": 88,
      "link": "https://example.com/about-us/",
      "menu_order": 2,
      "modified": "2026-02-02T16:20:00",
      "parent": 0,
      "slug": "about-us",
      "status": "publish",
      "title": "About us"
    }
  ]
}

Find posts

List or search posts. Every filter is optional; with none set this returns the site's most recent published posts.

Inputs

Searchsearchtext
Only return posts matching this text.
Statusesstatuslist
Only return posts with these statuses. Defaults to published posts only.One or more of: publish (Published), future (Scheduled), draft, pending (Pending review), private.
Categoriescategorieslist
Only return posts in these categories.
Tag IDstagstext
Only return posts with these tag IDs. Use Find tags to look up an ID; a site can have far too many tags to list in a dropdown.
Author IDauthor_idtext
Only return posts written by this user ID.
Published afterpublished_afterdate and time
Only return posts dated after this moment.
Published beforepublished_beforedate and time
Only return posts dated before this moment.
Sort directionordertext
Whether to sort ascending or descending.One of: asc (Ascending), desc (Descending).
Sort byorder_bytext
Which field to sort by. Defaults to date.One of: author, date, id, include (Given ID order), modified, parent, relevance, slug, include_slugs (Given slug order), title.
Results per pageper_pagenumber
How many results to return, 1 to 100. Defaults to 10.From 1 to 100.
Pagepagenumber
Which page of results to return. Starts at 1.At least 1.
Slugslugtext
Only return the post with this exact slug.

Outputs

countnumber
itemslist
Example output
{
  "count": 1,
  "items": [
    {
      "author": 1,
      "categories": [
        7
      ],
      "comment_status": "open",
      "content": "<p>Everything that shipped this quarter.</p>",
      "date": "2026-03-14T09:30:00",
      "excerpt": "<p>Everything that shipped this quarter.</p>",
      "format": "standard",
      "id": 412,
      "link": "https://example.com/spring-product-update/",
      "modified": "2026-03-14T09:30:00",
      "slug": "spring-product-update",
      "status": "publish",
      "sticky": false,
      "tags": [
        21,
        22
      ],
      "title": "Spring product update"
    }
  ]
}

Find tags

List or search the site's tags, or find the tags on one post. This is how to look up the tag IDs the post actions take.

Inputs

Searchsearchtext
Only return tags matching this text.
Post IDpost_idtext
Only return the tags assigned to this post.
Hide unused tagshide_emptytrue/false
Turn this on to leave out tags with no published posts.
Sort directionordertext
Whether to sort ascending or descending.One of: asc (Ascending), desc (Descending).
Sort byorder_bytext
Which field to sort by. Defaults to name.One of: id, include (Given ID order), name, slug, include_slugs (Given slug order), term_group (Term Group), description, count.
Results per pageper_pagenumber
How many results to return, 1 to 100. Defaults to 10.From 1 to 100.
Pagepagenumber
Which page of results to return. Starts at 1.At least 1.
Slugslugtext
Only return the tag with this exact slug.

Outputs

countnumber
itemslist
Example output
{
  "count": 1,
  "items": [
    {
      "count": 12,
      "description": "",
      "id": 21,
      "link": "https://example.com/tag/changelog/",
      "name": "changelog",
      "parent": 0,
      "slug": "changelog",
      "taxonomy": "post_tag"
    }
  ]
}

Get a page

Fetch one page by its ID, including its full content.

Inputs

Page IDpage_idtextRequired
The numeric ID of the page to fetch.

Outputs

authornumber
comment_statustext
contenttext
datetext
excerpttext
idnumber
linktext
menu_ordernumber
modifiedtext
parentnumber
slugtext
statustext
titletext
Example output
{
  "author": 1,
  "comment_status": "closed",
  "content": "<p>Who we are.</p>",
  "date": "2026-01-06T11:00:00",
  "excerpt": "",
  "id": 88,
  "link": "https://example.com/about-us/",
  "menu_order": 2,
  "modified": "2026-02-02T16:20:00",
  "parent": 0,
  "slug": "about-us",
  "status": "publish",
  "title": "About us"
}

Get a post

Fetch one post by its ID, including its full content.

Inputs

Post IDpost_idtextRequired
The numeric ID of the post to fetch.

Outputs

authornumber
categorieslist
comment_statustext
contenttext
datetext
excerpttext
formattext
idnumber
linktext
modifiedtext
slugtext
statustext
stickytrue/false
tagslist
titletext
Example output
{
  "author": 1,
  "categories": [
    7
  ],
  "comment_status": "open",
  "content": "<p>Everything that shipped this quarter.</p>",
  "date": "2026-03-14T09:30:00",
  "excerpt": "<p>Everything that shipped this quarter.</p>",
  "format": "standard",
  "id": 412,
  "link": "https://example.com/spring-product-update/",
  "modified": "2026-03-14T09:30:00",
  "slug": "spring-product-update",
  "status": "publish",
  "sticky": false,
  "tags": [
    21,
    22
  ],
  "title": "Spring product update"
}

Moderate a comment

Approve, hold, spam or trash a comment, or edit its text. Fill in only what you want to change.

Inputs

Comment IDcomment_idtextRequired
The numeric ID of the comment to change.
Commentcontenttext
New text for the comment.
Moderationstatustext
What to do with the comment.One of: approved (Approve), hold (Hold for moderation), spam (Mark as spam), unspam (Not spam), trash (Move to trash), untrash (Restore from trash).
Author nameauthor_nametext
A corrected name for the comment's author.
Author emailauthor_emailtext
A corrected email address for the author.

Outputs

author_emailtext
author_nametext
author_urltext
contenttext
datetext
idnumber
linktext
parentnumber
postnumber
statustext
Example output
{
  "author_email": "dana@example.com",
  "author_name": "Dana Reader",
  "author_url": "",
  "content": "<p>This is exactly what we needed, thank you.</p>",
  "date": "2026-03-14T12:05:00",
  "id": 903,
  "link": "https://example.com/spring-product-update/#comment-903",
  "parent": 0,
  "post": 412,
  "status": "hold"
}

Post a comment

Leave a comment on a post. The post must be published or private (WordPress rejects comments on drafts) and its comment status must be open.

Inputs

Post IDpost_idtextRequired
The numeric ID of the post to comment on.
CommentcontenttextRequired
The comment text. WordPress rejects a second comment with the same author and exactly the same text.
Author nameauthor_nametext
Who the comment is from. Leave empty to comment as the connected WordPress user.
Author emailauthor_emailtext
The comment author's email address.
Author websiteauthor_urltext
A website to link the author's name to.
Reply to comment IDparent_comment_idtext
The comment this one replies to. Leave empty for a top-level comment.
Statusstatustext
Whether the comment goes live straight away. Leave empty to let the site's moderation settings decide.One of: approved (Approve), hold (Hold for moderation), spam (Mark as spam), unspam (Not spam), trash (Move to trash), untrash (Restore from trash).

Outputs

author_emailtext
author_nametext
author_urltext
contenttext
datetext
idnumber
linktext
parentnumber
postnumber
statustext
Example output
{
  "author_email": "dana@example.com",
  "author_name": "Dana Reader",
  "author_url": "",
  "content": "<p>This is exactly what we needed, thank you.</p>",
  "date": "2026-03-14T12:05:00",
  "id": 903,
  "link": "https://example.com/spring-product-update/#comment-903",
  "parent": 0,
  "post": 412,
  "status": "approved"
}

Update a page

Change an existing page. Fill in only the fields you want to change; everything left empty stays as it is.

Inputs

Page IDpage_idtextRequired
The numeric ID of the page to change.
Titletitletext
A new title for the page.
Contentcontenttext
New body content. HTML is allowed.
Statusstatustext
A new status for the page.One of: publish (Published), future (Scheduled), draft, pending (Pending review), private.
Excerptexcerpttext
A new short summary for the page.
Slugslugtext
A new URL segment. Changing this changes the page's public address.
Parent page IDparent_page_idtext
The page to nest this one under. Use 0 to move it back to the top level.
Menu ordermenu_ordernumber
Where the page sits among its siblings. Lower numbers come first.

Outputs

authornumber
comment_statustext
contenttext
datetext
excerpttext
idnumber
linktext
menu_ordernumber
modifiedtext
parentnumber
slugtext
statustext
titletext
Example output
{
  "author": 1,
  "comment_status": "closed",
  "content": "<p>Who we are.</p>",
  "date": "2026-01-06T11:00:00",
  "excerpt": "",
  "id": 88,
  "link": "https://example.com/about-us/",
  "menu_order": 2,
  "modified": "2026-02-02T16:20:00",
  "parent": 0,
  "slug": "about-us",
  "status": "publish",
  "title": "About our team"
}

Update a post

Change an existing post. Fill in only the fields you want to change; everything left empty stays as it is.

Inputs

Post IDpost_idtextRequired
The numeric ID of the post to change.
Titletitletext
A new title for the post.
Contentcontenttext
New body content. HTML is allowed.
Statusstatustext
A new status. Set this to Published to publish a draft.One of: publish (Published), future (Scheduled), draft, pending (Pending review), private.
Excerptexcerpttext
A new short summary for the post.
Slugslugtext
A new URL segment. Changing this changes the post's public address.
Categoriescategorieslist
The categories the post should have. This replaces its current categories rather than adding to them.
Tag IDstagstext
The tag IDs the post should have, separated by commas. This replaces its current tags. Use Find tags to look up an ID; a site can have far too many tags to list in a dropdown.
Comment statuscomment_statustext
Whether readers may comment on the post.One of: open, closed.
Post formatpost_formattext
A new post format, if your theme uses them.One of: standard, aside, chat, gallery, link, image, quote, status, video, audio.
Pin to the front pagestickytrue/false
Whether to keep the post at the top of the blog.

Outputs

authornumber
categorieslist
comment_statustext
contenttext
datetext
excerpttext
formattext
idnumber
linktext
modifiedtext
slugtext
statustext
stickytrue/false
tagslist
titletext
Example output
{
  "author": 1,
  "categories": [
    7
  ],
  "comment_status": "open",
  "content": "<p>Everything that shipped this quarter.</p>",
  "date": "2026-03-14T09:30:00",
  "excerpt": "<p>Everything that shipped this quarter.</p>",
  "format": "standard",
  "id": 412,
  "link": "https://example.com/spring-product-update/",
  "modified": "2026-03-14T09:30:00",
  "slug": "spring-product-update",
  "status": "publish",
  "sticky": false,
  "tags": [
    21,
    22
  ],
  "title": "Spring product update (revised)"
}

On this page