# Jetpack HTTP API Jetpack's HTTP API is built as an [extension to the WP-API](http://v2.wp-api.org/extending/adding/). Thus, you may find additional information on approaching the API in the [WP API Docs](http://v2.wp-api.org/). ## API Authentication and authorization The API requests rely on [cookie-based authentication and a specific nonce](http://v2.wp-api.org/guide/authentication/#cookie-authentication) for requests to be authorized. ### API Request Authorization via nonces The WP REST API infrastructure requires a nonce for authorizing of the request itself. Ensure to use the `X-WP-Nonce` header on your request. ``` X-WP-Nonce: e1cff122e1 ``` The nonce is being served on the Jetpack admin page by usage of the [wp_localize_script](https://codex.wordpress.org/Function_Reference/wp_localize_script) mechanism for passing values from PHP code to the JS scope. It's created for the action `wp_rest` and made available in the Jetpack Admin Page as: ``` window.Initial_State.WP_API_nonce; ``` The root URL for the the API is found on the same page as: ``` window.Initial_State.WP_API_root; ``` ## Discovery WP-API-compatible [capabilities document](http://v2.wp-api.org/guide/discovery/) for the endpoints registered by Jetpack. `GET /wp-json/jetpack/v4` ## API Reference All endpoints return and accept JSON. Make sure you add the proper `content-type` header to your PUT/POST requests sending JSON objects. ``` 'Content-type': 'application/json' ``` ### Jetpack connection Operations related to Jetpack's connection to WordPress.com #### GET /wp-json/jetpack/v4/connection-status Fetch Jetpack's current connection status. #### GET /wp-json/jetpack/v4/connect-url Fetch a fresh WordPress.com URL for connecting the Jetpack installation. #### GET /wp-json/jetpack/v4/user-connection-data Fetch the data of the current's user WordPress.com account. #### POST /wp-json/jetpack/v4/disconnect/site Disconnect the Jetpack installation from WordPress.com servers. **This endpoint does not take Body parameters** #### POST /wp-json/jetpack/v4/recheck-ssl Check if the site has SSL enabled. **This endpoint does not take Body parameters** ### Jetpack modules #### GET /wp-json/jetpack/v4/module/all Get a list of all Jetpacks modules, its description, other properties and the module's options #### GET /wp-json/jetpack/v4/module/:module-slug Get a single module description and properties by its slug. **URL parameters** * `module-slug`: {String} The identifier of the module to get info about. #### POST /wp-json/jetpack/v4/module/:module-slug/active Activate or deactivate a module by its slug Accepts a JSON object in the body like: ``` { "active": true } ``` **URL parameters** * `module-slug`: {String} The identifier of the module on which to act. **Body parameters** * `active`: {Boolean} Send false to deactivate the module. #### POST /wp-json/jetpack/v4/module/activate Activate several modules at a time by their slug **Body parameters** * `modules`: {Array} An array of strings of identifiers of the modules to activate ``` { "modules": [ "protect", "monitor", "likes" ] } ``` #### POST /wp-json/jetpack/v4/module/:module-slug Update an option's value for a module **URL parameters** * `module-slug`: {String} The identifier of the module on which to act. **Body parameters** * Accepts a simple object with the key of the option to update and the new value. Accepts a JSON object in the body like: ``` { "option-key": "new-option-value" } ``` ### Jetpack miscellaneous settings ### GET /wp-json/jetpack/v4/settings Fetch a list of Jetpack settings not related to a particular module. ### POST /wp-json/jetpack/v4/settings/update Update a setting value **Body parameters** * Accepts a simple object with the key of the setting to update and the new value. Accepts a JSON object in the body like: ``` { "setting-key": "new-setting-value" } ``` #### POST /wp-json/jetpack/v4/jumpstart/activate Activate Jumpstart turning on some options and settings to a recommended state. **This endpoint does not take Body parameters** #### POST /wp-json/jetpack/v4/jumpstart/deactivate Deactivate Jumpstart reverting options to their default state. **This endpoint does not take Body parameters** #### POST /wp-json/jetpack/v4/reset/:options_or_modules Reset Jetpack module options or Jetpack modules activation state to default values. **URL parameters** * `options_or_modules`: {String} Available values: * `"options"`: all the modules' options will be re-set to their default values. * `"modules"`: the modules activation state will be reset to their defaults. **This endpoint does not take Body parameters** ### Users Operations related to the site's users linked to WordPress.com accounts. #### POST /wp-json/jetpack/v4/unlink Unlink current user from the related WordPress.com account. **This endpoint does not take Body parameters** ### Site information Operations related to information about the site. ### Jetpack notices #### POST /wp-json/jetpack/v4/notice/:notice/dismiss Dismiss a Jetpack notice by Id. **URL parameters** * `notice`: {String} The identifier of the notice to dismiss. Possible values: * `"feedback_dash_request"` * `"welcome"`. ** HTTP Status codes** * `404` - When `:notice` is not valid or absent #### GET /wp-json/jetpack/v4/site Get current site data ### Protect module related operations ##### GET /wp-json/jetpack/v4/module/protect/count/get Get count of blocked attacks by Protect. ### Monitor module related operations #### GET /wp-json/jetpack/v4/module/monitor/downtime/last Get from the Monitor module, the last time the site was down. ### Verification Tools module related operations #### GET /wp-json/jetpack/v4/module/verification-tools/services Get services that this site is verified with. ### Site's plugins related operations #### GET /wp-json/jetpack/v4/updates/plugins Get number of updated available for currently installed WordPress plugins. ### Akismet related operations #### GET /wp-json/jetpack/v4/akismet/stats/get Get stats from Akismet filtered spam. ### VaultPress options #### GET /wp-json/jetpack/v4/module/vaultpress/data get date of last backup or status and information about actions for user to take.