Automattic General API

The general API from Automattic — 5 operation(s) for general.

Operations 6

POST /sites/{site}/sync/now Force immediate sync of top items on a queue #
GET /sites/{site}/sync/status Status of the current full sync or the previous full sync #
GET /sites/{site}/translations Gets info about a Jetpack blog's core installation #
POST /sites/{site}/translations Toggle automatic core updates for a Jetpack blog #
POST /sites/{site}/translations/update Update All Translations installation on a Jetpack blog #
GET /sites/{site}/updates Get counts for available updates #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/automattic-general-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

automattic-general-api-openapi.yml Raw ↑
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>'