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 '