Automattic General API
The general API from Automattic — 5 operation(s) for general.
The general API from Automattic — 5 operation(s) for general.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/automattic-general-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WordPress.com REST API v1.1 General API
version: v1.1
description: 'The WordPress.com REST API, operated by Automattic. Derived by API Evangelist from Automattic''s own self-describing help document at https://public-api.wordpress.com/rest/v1.1/help (Accept: application/json), which publishes every endpoint''s method, path, description, path/query/body parameters and response fields. Security schemes come from https://public-api.wordpress.com/.well-known/openid-configuration. The error envelope was observed live.'
termsOfService: https://wordpress.com/tos/
contact:
name: WordPress.com Developer Resources
url: https://developer.wordpress.com/docs/api/
x-derived-from: https://public-api.wordpress.com/rest/v1.1/help
x-derived-by: API Evangelist enrichment pipeline
servers:
- url: https://public-api.wordpress.com/rest/v1.1
security:
- bearerAuth: []
tags:
- name: general
paths:
/sites/{site}/sync/now:
post:
operationId: postSitesBySiteSyncNow
summary: Force immediate sync of top items on a queue
description: Force immediate sync of top items on a queue
tags:
- general
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
response:
type: array
items: {}
description: The response from the server
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: site
in: path
required: true
schema:
type: string
description: The site ID, The site domain
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
queue:
type: string
description: sync or full_sync
/sites/{site}/sync/status:
get:
operationId: getSitesBySiteSyncStatus
summary: Status of the current full sync or the previous full sync
description: Status of the current full sync or the previous full sync
tags:
- general
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
posts_checksum:
type: string
description: Posts checksum. Needs to be requested using the filter parameter.
comments_checksum:
type: string
description: Comments checksum. Needs to be requested using the filter parameter.
post_meta_checksum:
type: string
description: Post Meta checksum. Needs to be requested using the filter parameter.
comment_meta_checksum:
type: string
description: Comment Meta checksum. Needs to be requested using the filter parameter.
started:
type: string
description: The unix timestamp when the last sync started
queue_finished:
type: string
description: The unix timestamp when the enqueuing was done for the last sync
send_started:
type: string
description: The unix timestamp when the last sent process started
finished:
type: string
description: The unix timestamp when the last sync finished
total:
type: array
items: {}
description: Count of actions that could be sent
queue:
type: array
items: {}
description: Count of actions that have been added to the queue
sent:
type: array
items: {}
description: Count of actions that have been sent
config:
type: array
items: {}
description: Configuration of the last full sync
queue_size:
type: integer
description: Number of items in the sync queue
queue_lag:
type: number
description: Time delay of the oldest item in the sync queue
queue_next_sync:
type: number
description: Time in seconds before trying to sync again
full_queue_size:
type: integer
description: Number of items in the full sync queue
full_queue_lag:
type: number
description: Time delay of the oldest item in the full sync queue
full_queue_next_sync:
type: number
description: Time in seconds before trying to sync the full sync queue again
cron_size:
type: integer
description: Size of the current cron array
next_cron:
type: integer
description: The number of seconds till the next item in cron.
progress:
type: array
items: {}
description: Full Sync status by module
debug_details:
type: array
items: {}
description: Details as to why Sync is disabled.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: site
in: path
required: true
schema:
type: string
description: The site ID, The site domain
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: List of comma-separated fields to return (see `response_format`).
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
/sites/{site}/translations:
get:
operationId: getSitesBySiteTranslations
summary: Gets info about a Jetpack blog's core installation
description: Gets info about a Jetpack blog's core installation
tags:
- general
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
translations:
type: array
items: {}
description: A list of translations that are available
autoupdate:
type: boolean
description: Whether or not we automatically update translations
log:
type: array
items: {}
description: An array of log strings.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: site
in: path
required: true
schema:
type: string
description: The site ID, The site domain
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
post:
operationId: postSitesBySiteTranslations
summary: Toggle automatic core updates for a Jetpack blog
description: Toggle automatic core updates for a Jetpack blog
tags:
- general
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
translations:
type: array
items: {}
description: A list of translations that are available
autoupdate:
type: boolean
description: Whether or not we automatically update translations
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: site
in: path
required: true
schema:
type: string
description: The site ID, The site domain
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
autoupdate:
type: boolean
description: Whether or not we automatically update translations
/sites/{site}/translations/update:
post:
operationId: postSitesBySiteTranslationsUpdate
summary: Update All Translations installation on a Jetpack blog
description: Update All Translations installation on a Jetpack blog
tags:
- general
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
log:
type: array
items: {}
description: An array of log strings.
success:
type: boolean
description: Was the operation successful
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: site
in: path
required: true
schema:
type: string
description: The site ID, The site domain
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
/sites/{site}/updates:
get:
operationId: getSitesBySiteUpdates
summary: Get counts for available updates
description: Get counts for available updates
tags:
- general
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
plugins:
type: integer
description: The total number of plugins updates.
themes:
type: integer
description: The total number of themes updates.
wordpress:
type: integer
description: The total number of core updates.
translations:
type: integer
description: The total number of translation updates.
total:
type: integer
description: The total number of updates.
wp_version:
type: string
description: The wp_version string.
wp_update_version:
type: string
description: The wp_version to update string.
jp_version:
type: string
description: The site Jetpack version.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: site
in: path
required: true
schema:
type: string
description: The site ID, The site domain
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
components:
schemas:
Error:
type: object
description: WordPress.com REST API error envelope (observed live).
properties:
error:
type: string
examples:
- not_found
message:
type: string
securitySchemes:
oauth2:
type: oauth2
description: WordPress.com OAuth 2.1 (see /.well-known/openid-configuration).
flows:
authorizationCode:
authorizationUrl: https://public-api.wordpress.com/oauth2-1/authorize
tokenUrl: https://public-api.wordpress.com/oauth2-1/token
refreshUrl: https://public-api.wordpress.com/oauth2-1/token
scopes:
global: ''
auth: ''
openid: ''
profile: ''
email: ''
users: ''
sites: ''
posts: ''
comments: ''
taxonomy: ''
follow: ''
sharing: ''
freshly-pressed: ''
notifications: ''
insights: ''
read: ''
stats: ''
media: ''
menus: ''
batch: ''
videos: ''
bearerAuth:
type: http
scheme: bearer
description: 'Authorization: Bearer <access_token>'