Maton

WordPress.com

Access the WordPress.com REST API with managed OAuth authentication. Create and manage posts, pages, and site content on WordPress.com hosted sites.

Reference

Get Site Information

GET /wordpress/rest/v1.1/sites/{site_id_or_domain}

Response:

{
  "ID": 252505333,
  "name": "My Blog",
  "description": "Just another WordPress.com site",
  "URL": "https://myblog.wordpress.com",
  "capabilities": {
    "edit_pages": true,
    "edit_posts": true,
    "edit_others_posts": true,
    "delete_posts": true
  }
}

The site identifier can be either:

  • Numeric site ID (e.g., 252505333)
  • Domain name (e.g., myblog.wordpress.com or en.blog.wordpress.com)

List Posts

GET /wordpress/rest/v1.1/sites/{site}/posts

Query Parameters:

  • number - Number of posts to return (default: 20, max: 100)
  • offset - Offset for pagination
  • page - Page number
  • page_handle - Cursor for pagination (from response meta.next_page)
  • order - Sort order: DESC or ASC
  • order_by - Sort field: date, modified, title, comment_count, ID
  • status - Post status: publish, draft, pending, private, future, trash, any
  • type - Post type: post, page, any
  • search - Search term
  • category - Category slug
  • tag - Tag slug
  • author - Author ID
  • fields - Comma-separated list of fields to return

Response:

{
  "found": 150,
  "posts": [
    {
      "ID": 83587,
      "site_ID": 3584907,
      "author": {
        "ID": 257479511,
        "login": "username",
        "name": "John Doe"
      },
      "date": "2026-02-09T15:00:00+00:00",
      "modified": "2026-02-09T16:30:00+00:00",
      "title": "My Post Title",
      "excerpt": "<p>Post excerpt...</p>",
      "content": "<p>Full post content...</p>",
      "slug": "my-post-title",
      "status": "publish",
      "type": "post",
      "categories": {...},
      "tags": {...}
    }
  ],
  "meta": {
    "next_page": "value=2026-02-09T15%3A00%3A00%2B00%3A00&id=83587"
  }
}

Get Post

GET /wordpress/rest/v1.1/sites/{site}/posts/{post_id}

Response:

{
  "ID": 83587,
  "site_ID": 3584907,
  "author": {...},
  "date": "2026-02-09T15:00:00+00:00",
  "title": "My Post Title",
  "content": "<p>Full post content...</p>",
  "slug": "my-post-title",
  "status": "publish",
  "type": "post",
  "categories": {
    "news": {
      "ID": 123,
      "name": "News",
      "slug": "news"
    }
  },
  "tags": {
    "featured": {
      "ID": 456,
      "name": "Featured",
      "slug": "featured"
    }
  }
}

Create Post

POST /wordpress/rest/v1.1/sites/{site}/posts/new
Content-Type: application/json

{
  "title": "New Post Title",
  "content": "<p>Post content here...</p>",
  "status": "draft",
  "categories": "news, updates",
  "tags": "featured, important"
}

Parameters:

  • title - Post title (required)
  • content - Post content (HTML)
  • excerpt - Post excerpt
  • status - publish, draft, pending, private, future
  • date - Post date (ISO 8601)
  • categories - Comma-separated category names or slugs
  • tags - Comma-separated tag names or slugs
  • format - Post format: standard, aside, chat, gallery, link, image, quote, status, video, audio
  • slug - URL slug
  • featured_image - Featured image attachment ID
  • sticky - Whether post is sticky (boolean)
  • password - Password to protect post

Response:

{
  "ID": 123,
  "site_ID": 252505333,
  "title": "New Post Title",
  "status": "draft",
  "date": "2026-02-10T09:50:35+00:00"
}

Update Post

POST /wordpress/rest/v1.1/sites/{site}/posts/{post_id}
Content-Type: application/json

{
  "title": "Updated Title",
  "content": "<p>Updated content...</p>"
}

Uses the same parameters as Create Post.

Delete Post

POST /wordpress/rest/v1.1/sites/{site}/posts/{post_id}/delete

Moves post to trash. Returns the deleted post with status: "trash".

List Pages

GET /wordpress/rest/v1.1/sites/{site}/posts?type=page

Create Page

POST /wordpress/rest/v1.1/sites/{site}/posts/new?type=page
Content-Type: application/json

{
  "title": "About Us",
  "content": "<p>About page content...</p>",
  "status": "publish"
}

Get Page Dropdown List

GET /wordpress/rest/v1.1/sites/{site}/dropdown-pages/

Returns a simplified list of pages for dropdowns/menus.

Get Page Templates

GET /wordpress/rest/v1.1/sites/{site}/page-templates

Returns available page templates for the site's theme.

Get Post Likes

GET /wordpress/rest/v1.1/sites/{site}/posts/{post_id}/likes

Response:

{
  "found": 99,
  "i_like": false,
  "can_like": true,
  "site_ID": 3584907,
  "post_ID": 83587,
  "likes": [...]
}

Like Post

POST /wordpress/rest/v1.1/sites/{site}/posts/{post_id}/likes/new

Unlike Post

POST /wordpress/rest/v1.1/sites/{site}/posts/{post_id}/likes/mine/delete

Check Reblog Status

GET /wordpress/rest/v1.1/sites/{site}/posts/{post_id}/reblogs/mine

Response:

{
  "can_reblog": true,
  "can_user_reblog": true,
  "is_reblogged": false
}

List Post Types

GET /wordpress/rest/v1.1/sites/{site}/post-types

Response:

{
  "found": 3,
  "post_types": {
    "post": {
      "name": "post",
      "label": "Posts",
      "labels": {...}
    },
    "page": {
      "name": "page",
      "label": "Pages",
      "labels": {...}
    }
  }
}

Get Post Counts

GET /wordpress/rest/v1.1/sites/{site}/post-counts/{post_type}

Example: /sites/{site}/post-counts/post or /sites/{site}/post-counts/page

Response:

{
  "counts": {
    "all": {"count": 150},
    "publish": {"count": 120},
    "draft": {"count": 25},
    "trash": {"count": 5}
  }
}

List Site Users

GET /wordpress/rest/v1.1/sites/{site}/users

Response:

{
  "found": 3,
  "users": [
    {
      "ID": 277004271,
      "login": "username",
      "name": "John Doe",
      "email": "john@example.com",
      "roles": ["administrator"]
    }
  ]
}

Get User Settings

GET /wordpress/rest/v1.1/me/settings

Response:

{
  "enable_translator": true,
  "surprise_me": false,
  "holidaysnow": false,
  "user_login": "username"
}

Update User Settings

POST /wordpress/rest/v1.1/me/settings/
Content-Type: application/json

{
  "enable_translator": false
}

Get User's Liked Posts

GET /wordpress/rest/v1.1/me/likes

Response:

{
  "found": 10,
  "likes": [
    {
      "ID": 83587,
      "site_ID": 3584907,
      "title": "Liked Post Title"
    }
  ]
}

Get Site Embeds

GET /wordpress/rest/v1.1/sites/{site}/embeds

Returns available embed handlers for the site.

Get Available Shortcodes

GET /wordpress/rest/v1.1/sites/{site}/shortcodes

Returns shortcodes available on the site.

Resources

On this page