info: contact: name: MainWP Support url: https://mainwp.com/support/ license: name: GPLv3 or later url: https://www.gnu.org/licenses/gpl-3.0.html description: | REST API v2 for the MainWP Dashboard plugin. All endpoints return JSON and require an API key sent as a bearer token in the `Authorization` header. Create keys in your Dashboard under MainWP Dashboard > API Access > API Keys. Endpoint paths are relative to the WordPress site running your MainWP Dashboard, so a full request URL looks like `https://your-dashboard.example.com/wp-json/mainwp/v2/sites`. Endpoint reference with examples: https://docs.mainwp.com/api-reference/rest-api/overview title: MainWP Dashboard REST API version: 6.1.5 openapi: 3.1.0 servers: - url: "{dashboardUrl}" description: The WordPress site where your MainWP Dashboard plugin is installed. variables: dashboardUrl: default: https://your-dashboard.example.com description: Base URL of the WordPress site running your MainWP Dashboard. security: - bearerAuth: [] tags: - name: Sites description: 'Connected child sites: inventory, connection state, plugins, themes, and per-site actions.' externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/sites - name: Clients description: Client records and the custom client fields defined on the Dashboard. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/clients - name: Tags description: Tags, also called groups, and the sites and clients they cover. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/tags - name: Updates description: Available core, plugin, theme, and translation updates, plus running and ignoring them. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/updates - name: Costs description: Cost Tracker records and the sites and clients they are assigned to. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/costs - name: Posts description: Posts on child sites. Each route reads or writes on the child site while the request runs. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/posts - name: Pages description: Pages on child sites. Each route reads or writes on the child site while the request runs. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/pages - name: Users description: Users on child sites, including CSV import and administrator password changes. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/users - name: Monitors description: 'Uptime monitors: current status, heartbeat history, incidents, and monitor settings.' externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/monitoring - name: Settings description: Dashboard settings grouped by settings screen, plus the maintenance tools. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/settings - name: API Keys description: REST API keys for the Dashboard, including the legacy v1 keys the list route returns. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/api-keys - name: Batch description: The global batch route, which fans a single request out across several controllers. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/batch - name: Comments description: Comment moderation across child sites. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/extensions - name: Time Tracker description: Time tracking tasks, buckets, and per-client settings. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/extensions - name: SSL Monitor description: SSL certificate status for child sites served over HTTPS. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/extensions - name: Domain Monitor description: Domain registration and expiry data for child sites. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/extensions - name: Lighthouse description: Google PageSpeed Insights audits and their stored results. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/extensions - name: Pro Reports description: Activity data used to build client reports. externalDocs: description: Endpoint reference with examples. url: https://docs.mainwp.com/api-reference/rest-api/extensions paths: /wp-json/mainwp/v2/batch: post: operationId: postBatch summary: Run grouped actions across controllers description: Runs grouped actions against the sites, clients, updates, costs, and tags controllers in one request. The response mirrors the request structure. The default limit is 100 items across all groups. tags: - Batch requestBody: required: true content: application/json: schema: type: object properties: sites: type: object description: Site actions. Only this group takes the action arrays. properties: create: type: array description: Sites to connect. Same fields as `POST /sites/add`. items: $ref: '#/components/schemas/SiteCreateInput' sync: type: array description: Site IDs to sync. items: type: integer reconnect: type: array description: Site IDs to reconnect. items: type: integer disconnect: type: array description: Site IDs to disconnect. items: type: integer suspend: type: array description: Site IDs to suspend. items: type: integer check: type: array description: Site IDs to run a connection check against. items: type: integer remove: type: array description: Site IDs to remove from the Dashboard. items: type: integer security: type: array description: Site IDs to return a security snapshot for. items: type: integer plugins: type: array description: Site IDs to return the installed plugins for. items: type: integer themes: type: array description: Site IDs to return the installed themes for. items: type: integer non-mainwp-changes: type: array description: Site IDs to return changes made outside MainWP for. items: type: integer clients: type: object properties: create: type: array description: Clients to create. Same fields as `POST /clients/add`. items: $ref: '#/components/schemas/ClientCreateInput' costs: type: object properties: create: type: array description: Cost records to create. Same fields as `POST /costs/add`. items: $ref: '#/components/schemas/CostInput' tags: type: object properties: create: type: array description: Tags to create. Same fields as `POST /tags/add`. items: $ref: '#/components/schemas/TagCreateInput' updates: type: object properties: create: type: array description: 'Accepted by the route but not implemented: the updates controller has no create handler, so every item comes back as an `invalid-method` error. Use the routes under `/updates` instead.' items: type: object responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putBatch summary: Run grouped actions across controllers description: Runs grouped actions against the sites, clients, updates, costs, and tags controllers in one request. The response mirrors the request structure. The default limit is 100 items across all groups. tags: - Batch requestBody: required: true content: application/json: schema: type: object properties: sites: type: object description: Site actions. Only this group takes the action arrays. properties: create: type: array description: Sites to connect. Same fields as `POST /sites/add`. items: $ref: '#/components/schemas/SiteCreateInput' sync: type: array description: Site IDs to sync. items: type: integer reconnect: type: array description: Site IDs to reconnect. items: type: integer disconnect: type: array description: Site IDs to disconnect. items: type: integer suspend: type: array description: Site IDs to suspend. items: type: integer check: type: array description: Site IDs to run a connection check against. items: type: integer remove: type: array description: Site IDs to remove from the Dashboard. items: type: integer security: type: array description: Site IDs to return a security snapshot for. items: type: integer plugins: type: array description: Site IDs to return the installed plugins for. items: type: integer themes: type: array description: Site IDs to return the installed themes for. items: type: integer non-mainwp-changes: type: array description: Site IDs to return changes made outside MainWP for. items: type: integer clients: type: object properties: create: type: array description: Clients to create. Same fields as `POST /clients/add`. items: $ref: '#/components/schemas/ClientCreateInput' costs: type: object properties: create: type: array description: Cost records to create. Same fields as `POST /costs/add`. items: $ref: '#/components/schemas/CostInput' tags: type: object properties: create: type: array description: Tags to create. Same fields as `POST /tags/add`. items: $ref: '#/components/schemas/TagCreateInput' updates: type: object properties: create: type: array description: 'Accepted by the route but not implemented: the updates controller has no create handler, so every item comes back as an `invalid-method` error. Use the routes under `/updates` instead.' items: type: object responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchBatch summary: Run grouped actions across controllers description: Runs grouped actions against the sites, clients, updates, costs, and tags controllers in one request. The response mirrors the request structure. The default limit is 100 items across all groups. tags: - Batch requestBody: required: true content: application/json: schema: type: object properties: sites: type: object description: Site actions. Only this group takes the action arrays. properties: create: type: array description: Sites to connect. Same fields as `POST /sites/add`. items: $ref: '#/components/schemas/SiteCreateInput' sync: type: array description: Site IDs to sync. items: type: integer reconnect: type: array description: Site IDs to reconnect. items: type: integer disconnect: type: array description: Site IDs to disconnect. items: type: integer suspend: type: array description: Site IDs to suspend. items: type: integer check: type: array description: Site IDs to run a connection check against. items: type: integer remove: type: array description: Site IDs to remove from the Dashboard. items: type: integer security: type: array description: Site IDs to return a security snapshot for. items: type: integer plugins: type: array description: Site IDs to return the installed plugins for. items: type: integer themes: type: array description: Site IDs to return the installed themes for. items: type: integer non-mainwp-changes: type: array description: Site IDs to return changes made outside MainWP for. items: type: integer clients: type: object properties: create: type: array description: Clients to create. Same fields as `POST /clients/add`. items: $ref: '#/components/schemas/ClientCreateInput' costs: type: object properties: create: type: array description: Cost records to create. Same fields as `POST /costs/add`. items: $ref: '#/components/schemas/CostInput' tags: type: object properties: create: type: array description: Tags to create. Same fields as `POST /tags/add`. items: $ref: '#/components/schemas/TagCreateInput' updates: type: object properties: create: type: array description: 'Accepted by the route but not implemented: the updates controller has no create handler, so every item comes back as an `invalid-method` error. Use the routes under `/updates` instead.' items: type: object responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients: get: operationId: getClients summary: List clients description: Returns the stored client records. tags: - Clients parameters: - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/add: post: operationId: postClientsAdd summary: Create a client description: Creates a client record and optionally assigns sites to it. tags: - Clients parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClientCreateInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/batch: post: operationId: postClientsBatch summary: Batch create, update, and delete clients description: Creates, updates, and deletes clients in one request. The response is a map of action group to per-item results, not the standard envelope. tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Clients to create. items: $ref: '#/components/schemas/ClientCreateInput' update: type: array description: Clients to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/ClientBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putClientsBatch summary: Batch create, update, and delete clients description: Creates, updates, and deletes clients in one request. The response is a map of action group to per-item results, not the standard envelope. tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Clients to create. items: $ref: '#/components/schemas/ClientCreateInput' update: type: array description: Clients to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/ClientBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchClientsBatch summary: Batch create, update, and delete clients description: Creates, updates, and deletes clients in one request. The response is a map of action group to per-item results, not the standard envelope. tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Clients to create. items: $ref: '#/components/schemas/ClientCreateInput' update: type: array description: Clients to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/ClientBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/count: get: operationId: getClientsCount summary: Count clients description: Returns how many clients match the filters. tags: - Clients parameters: - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string responses: '200': description: The number of matching records. content: application/json: schema: $ref: '#/components/schemas/TotalCount' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/fields: get: operationId: getClientsFields summary: List client fields description: Lists the custom client fields defined on the Dashboard. tags: - Clients parameters: - name: exclude in: query description: Exclude client field IDs. required: false schema: type: string - name: include in: query description: Include client field IDs. required: false schema: type: string - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 - name: pre_page in: query description: Number of client fields per page. The name is spelled `pre_page` on this route, not `per_page`. required: false schema: type: integer minimum: 1 maximum: 200 - name: search in: query description: Search client field name. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/fields/add: post: operationId: postClientsFieldsAdd summary: Create a client field description: Creates a custom client field. tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Field description. name: type: string description: Field name. required: - description - name responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/fields/{id_name}/delete: parameters: - name: id_name in: path description: Client field ID or field name. required: true schema: type: string delete: operationId: deleteClientsFieldsIdNameDelete summary: Delete a client field description: Deletes a custom client field and the values stored against it. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/fields/{id_name}/edit: parameters: - name: id_name in: path description: Client field ID or field name. required: true schema: type: string put: operationId: putClientsFieldsIdNameEdit summary: Update a client field description: Renames a custom client field or changes its description. tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Field description. name: type: string description: Field name. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchClientsFieldsIdNameEdit summary: Update a client field description: Renames a custom client field or changes its description. tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Field description. name: type: string description: Field name. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getClientsIdEmail summary: Get one client description: Returns one client record. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/costs: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getClientsIdEmailCosts summary: List client costs description: Returns the Cost Tracker records assigned to a client. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/edit: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string post: operationId: postClientsIdEmailEdit summary: Update a client description: Updates a client record. Send only the fields you want to change. tags: - Clients requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClientEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putClientsIdEmailEdit summary: Update a client description: Updates a client record. Send only the fields you want to change. tags: - Clients requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClientEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchClientsIdEmailEdit summary: Update a client description: Updates a client record. Send only the fields you want to change. tags: - Clients requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClientEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/remove: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string delete: operationId: deleteClientsIdEmailRemove summary: Delete a client description: Deletes a client record. Sites assigned to it stay connected and lose the assignment. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/sites: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getClientsIdEmailSites summary: List client sites description: Lists the sites assigned to a client. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/sites/count: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getClientsIdEmailSitesCount summary: Count client sites description: Returns how many sites are assigned to a client. tags: - Clients responses: '200': description: The number of matching records. content: application/json: schema: $ref: '#/components/schemas/TotalCount' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/suspend: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string post: operationId: postClientsIdEmailSuspend summary: Suspend a client description: Suspends a client and the sites assigned to it. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putClientsIdEmailSuspend summary: Suspend a client description: Suspends a client and the sites assigned to it. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchClientsIdEmailSuspend summary: Suspend a client description: Suspends a client and the sites assigned to it. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/clients/{id_email}/unsuspend: parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string post: operationId: postClientsIdEmailUnsuspend summary: Unsuspend a client description: Returns a suspended client and its sites to normal operation. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putClientsIdEmailUnsuspend summary: Unsuspend a client description: Returns a suspended client and its sites to normal operation. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchClientsIdEmailUnsuspend summary: Unsuspend a client description: Returns a suspended client and its sites to normal operation. tags: - Clients responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/comments: x-requires-extension: MainWP Comments get: operationId: getComments summary: List comments across sites description: Lists comments from the selected sites. Comments are read from each child site while the request runs. Requires the MainWP Comments extension on the Dashboard. tags: - Comments parameters: - name: clients in: query description: Comma-separated client IDs to filter by. required: false schema: type: string - name: dtsstart in: query description: Start date filter (Y-m-d). required: false schema: type: string - name: dtsstop in: query description: End date filter (Y-m-d). required: false schema: type: string - name: groups in: query description: Comma-separated group names to filter by. required: false schema: type: string - name: keyword in: query description: Keyword to search within comment content. required: false schema: type: string - name: maximum in: query description: Maximum number of comments to return per site (default 50). required: false schema: type: integer minimum: 1 maximum: 500 default: 50 - name: status in: query description: 'Comment status: approved, pending, spam, trash, or all.' required: false schema: type: string enum: - approved - pending - spam - trash - all default: all - name: websites in: query description: Comma-separated site IDs to filter by. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/comments/{id_domain}: x-requires-extension: MainWP Comments parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getCommentsIdDomain summary: List comments on one site description: Lists comments from one site. Requires the MainWP Comments extension on the Dashboard. tags: - Comments parameters: - name: clients in: query description: Comma-separated client IDs to filter by. required: false schema: type: string - name: dtsstart in: query description: Start date filter (Y-m-d). required: false schema: type: string - name: dtsstop in: query description: End date filter (Y-m-d). required: false schema: type: string - name: groups in: query description: Comma-separated group names to filter by. required: false schema: type: string - name: keyword in: query description: Keyword to search within comment content. required: false schema: type: string - name: maximum in: query description: Maximum number of comments to return per site (default 50). required: false schema: type: integer minimum: 1 maximum: 500 default: 50 - name: status in: query description: 'Comment status: approved, pending, spam, trash, or all.' required: false schema: type: string enum: - approved - pending - spam - trash - all default: all - name: websites in: query description: Comma-separated site IDs to filter by. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/comments/{id_domain}/bulk-action: x-requires-extension: MainWP Comments parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string put: operationId: putCommentsIdDomainBulkAction summary: Act on several comments description: Applies one action to several comments on the same site. Requires the MainWP Comments extension on the Dashboard. tags: - Comments requestBody: required: true content: application/json: schema: type: object properties: action: type: string enum: - approve - unapprove - spam - unspam - trash - restore - delete description: Action to perform on the comments. comment_ids: type: string description: Comma-separated comment IDs to act on. required: - action - comment_ids responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchCommentsIdDomainBulkAction summary: Act on several comments description: Applies one action to several comments on the same site. Requires the MainWP Comments extension on the Dashboard. tags: - Comments requestBody: required: true content: application/json: schema: type: object properties: action: type: string enum: - approve - unapprove - spam - unspam - trash - restore - delete description: Action to perform on the comments. comment_ids: type: string description: Comma-separated comment IDs to act on. required: - action - comment_ids responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/comments/{id_domain}/{id_comment}/action: x-requires-extension: MainWP Comments parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_comment in: path description: Comment ID on the child site. required: true schema: type: integer put: operationId: putCommentsIdDomainIdCommentAction summary: Act on one comment description: Approves, unapproves, marks as spam, trashes, restores, or deletes a single comment. Requires the MainWP Comments extension on the Dashboard. tags: - Comments requestBody: required: true content: application/json: schema: type: object properties: action: type: string enum: - approve - unapprove - spam - unspam - trash - restore - delete description: Action to perform on the comment. required: - action responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchCommentsIdDomainIdCommentAction summary: Act on one comment description: Approves, unapproves, marks as spam, trashes, restores, or deletes a single comment. Requires the MainWP Comments extension on the Dashboard. tags: - Comments requestBody: required: true content: application/json: schema: type: object properties: action: type: string enum: - approve - unapprove - spam - unspam - trash - restore - delete description: Action to perform on the comment. required: - action responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs: get: operationId: getCosts summary: List costs description: Lists Cost Tracker records. Requires the built-in Cost Tracker module to be enabled. tags: - Costs parameters: - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string - name: category in: query description: Product category to filter on. required: false schema: type: string - name: type in: query description: Payment type to filter on. required: false schema: type: string enum: - any - subscription - lifetime responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/add: post: operationId: postCostsAdd summary: Create a cost description: Creates a Cost Tracker record. Assign it to at least one of `sites`, `groups`, or `clients`, or the request fails with a 400. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CostInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '400': description: 'No target given: send at least one of `sites`, `groups`, or `clients`.' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putCostsAdd summary: Create a cost description: Creates a Cost Tracker record. Assign it to at least one of `sites`, `groups`, or `clients`, or the request fails with a 400. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CostInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '400': description: 'No target given: send at least one of `sites`, `groups`, or `clients`.' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchCostsAdd summary: Create a cost description: Creates a Cost Tracker record. Assign it to at least one of `sites`, `groups`, or `clients`, or the request fails with a 400. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CostInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '400': description: 'No target given: send at least one of `sites`, `groups`, or `clients`.' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/batch: post: operationId: postCostsBatch summary: Batch create, update, and delete costs description: Creates, updates, and deletes cost records in one request. The response is a map of action group to per-item results, not the standard envelope. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Cost records to create. items: $ref: '#/components/schemas/CostInput' update: type: array description: Cost records to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/CostBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putCostsBatch summary: Batch create, update, and delete costs description: Creates, updates, and deletes cost records in one request. The response is a map of action group to per-item results, not the standard envelope. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Cost records to create. items: $ref: '#/components/schemas/CostInput' update: type: array description: Cost records to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/CostBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchCostsBatch summary: Batch create, update, and delete costs description: Creates, updates, and deletes cost records in one request. The response is a map of action group to per-item results, not the standard envelope. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Cost records to create. items: $ref: '#/components/schemas/CostInput' update: type: array description: Cost records to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/CostBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/{id}: parameters: - name: id in: path description: Cost record ID. required: true schema: type: integer get: operationId: getCostsId summary: Get one cost description: Returns one Cost Tracker record. Requires the built-in Cost Tracker module to be enabled. tags: - Costs responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/{id}/clients: parameters: - name: id in: path description: Cost record ID. required: true schema: type: integer get: operationId: getCostsIdClients summary: List clients linked to a cost description: Lists the clients a cost record is assigned to. Requires the built-in Cost Tracker module to be enabled. tags: - Costs responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/{id}/edit: parameters: - name: id in: path description: Cost record ID. required: true schema: type: integer post: operationId: postCostsIdEdit summary: Update a cost description: Updates a Cost Tracker record. The same fields are required as when creating one. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CostInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '400': description: 'No target given: send at least one of `sites`, `groups`, or `clients`.' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putCostsIdEdit summary: Update a cost description: Updates a Cost Tracker record. The same fields are required as when creating one. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CostInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '400': description: 'No target given: send at least one of `sites`, `groups`, or `clients`.' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchCostsIdEdit summary: Update a cost description: Updates a Cost Tracker record. The same fields are required as when creating one. Requires the built-in Cost Tracker module to be enabled. tags: - Costs requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CostInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '400': description: 'No target given: send at least one of `sites`, `groups`, or `clients`.' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/{id}/remove: parameters: - name: id in: path description: Cost record ID. required: true schema: type: integer delete: operationId: deleteCostsIdRemove summary: Delete a cost description: Deletes a Cost Tracker record. Requires the built-in Cost Tracker module to be enabled. tags: - Costs responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/costs/{id}/sites: parameters: - name: id in: path description: Cost record ID. required: true schema: type: integer get: operationId: getCostsIdSites summary: List sites linked to a cost description: Lists the sites a cost record is assigned to. Requires the built-in Cost Tracker module to be enabled. tags: - Costs responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors: get: operationId: getMonitors summary: List monitors description: Lists uptime monitors with their uptime ratios, response times, and last check result. tags: - Monitors parameters: - name: exclude in: query description: Exclude monitor IDs. required: false schema: type: string - name: include in: query description: Include monitor IDs. required: false schema: type: string - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of monitors per page. required: false schema: type: integer minimum: 1 maximum: 200 default: 20 - name: search in: query description: Search string. required: false schema: type: string - name: status in: query description: Monitor status. required: false schema: type: string enum: - up - down - pending - first - paused responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/basic: get: operationId: getMonitorsBasic summary: List monitors with basic fields description: Lists uptime monitors with only their ID, URL, and last status. tags: - Monitors parameters: - name: exclude in: query description: Exclude monitor IDs. required: false schema: type: string - name: include in: query description: Include monitor IDs. required: false schema: type: string - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of monitors per page. required: false schema: type: integer minimum: 1 maximum: 200 default: 20 - name: search in: query description: Search string. required: false schema: type: string - name: status in: query description: Monitor status. required: false schema: type: string enum: - up - down - pending - first - paused responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/count: get: operationId: getMonitorsCount summary: Count monitors description: Returns how many monitors match the filters. tags: - Monitors parameters: - name: exclude in: query description: Exclude monitor IDs. required: false schema: type: string - name: include in: query description: Include monitor IDs. required: false schema: type: string - name: search in: query description: Search string. required: false schema: type: string - name: status in: query description: Monitor status. required: false schema: type: string enum: - up - down - pending - first - paused responses: '200': description: The count. content: application/json: schema: $ref: '#/components/schemas/CountResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/settings: put: operationId: putMonitorsSettings summary: Update global monitor settings description: Updates the uptime monitoring defaults that individual monitors fall back to. Send the body as `application/json`. tags: - Monitors requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean description: Enable or disable monitoring globally. expected_status: type: string description: Expected HTTP status codes, as a comma separated list such as `200,301`. interval: type: string description: Default check frequency (e.g., "5m", "1h"). keyword: type: string description: Keyword to match. maxretries: type: integer description: Number of retries on failure. method: type: string enum: - useglobal - head - get - post - push - patch - delete description: Monitor method. timeout: type: string description: Request timeout in milliseconds. type: type: string enum: - useglobal - http - ping - keyword description: Monitor type. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchMonitorsSettings summary: Update global monitor settings description: Updates the uptime monitoring defaults that individual monitors fall back to. Send the body as `application/json`. tags: - Monitors requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean description: Enable or disable monitoring globally. expected_status: type: string description: Expected HTTP status codes, as a comma separated list such as `200,301`. interval: type: string description: Default check frequency (e.g., "5m", "1h"). keyword: type: string description: Keyword to match. maxretries: type: integer description: Number of retries on failure. method: type: string enum: - useglobal - head - get - post - push - patch - delete description: Monitor method. timeout: type: string description: Request timeout in milliseconds. type: type: string enum: - useglobal - http - ping - keyword description: Monitor type. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getMonitorsIdDomain summary: Get one monitor description: Returns one monitor with its heartbeat statistics block. tags: - Monitors responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}/basic: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getMonitorsIdDomainBasic summary: Get basic monitor details description: Returns the ID, URL, and current status of one monitor. tags: - Monitors responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}/check: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postMonitorsIdDomainCheck summary: Run a monitor check now description: Checks the monitored URL straight away and returns the status code and resulting up or down state. tags: - Monitors responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}/heartbeat: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getMonitorsIdDomainHeartbeat summary: Get heartbeat history description: Returns the individual checks recorded for one monitor over the selected period. tags: - Monitors parameters: - name: limit in: query description: Limit number of heartbeats. required: false schema: type: integer - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 default: 1 - name: period in: query description: Window to return checks for. Either `24h`, `7d`, `30d`, or an ISO 8601 range written as `start/end`, for example `2024-01-01T00:00:00Z/2024-01-02T00:00:00Z`. required: false schema: type: string default: 30d - name: since in: query description: ISO8601 datetime, only return newer entries. required: false schema: type: string - name: status in: query description: Monitor status. required: false schema: type: string enum: - up - down - pending - first - paused responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}/incidents: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getMonitorsIdDomainIncidents summary: List monitor incidents description: Lists the downtime incidents recorded for one monitor. tags: - Monitors parameters: - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of monitors per page. required: false schema: type: integer minimum: 1 maximum: 200 default: 20 responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}/incidents/count: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getMonitorsIdDomainIncidentsCount summary: Count monitor incidents description: Returns the number of down checks across the incidents on the requested page. tags: - Monitors parameters: - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of monitors per page. required: false schema: type: integer minimum: 1 maximum: 200 default: 20 responses: '200': description: The count. content: application/json: schema: $ref: '#/components/schemas/CountResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/monitors/{id_domain}/settings: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string put: operationId: putMonitorsIdDomainSettings summary: Update settings for one monitor description: Updates the monitoring settings for one site. Set a field to `useglobal` to fall back to the global defaults. tags: - Monitors requestBody: required: true content: application/json: schema: type: object properties: active: type: string enum: - '0' - '1' - useglobal description: Enable or disable monitoring for this site. Set `useglobal` to follow the global default. expected_status: type: string description: Expected HTTP status codes, as a comma separated list such as `200,301`. Set `useglobal` to follow the global default. interval: type: string description: Default check frequency (e.g., "5m", "1h"). keyword: type: string description: Keyword to match. maxretries: type: integer description: Number of retries on failure. method: type: string enum: - useglobal - head - get - post - push - patch - delete description: Monitor method. timeout: type: string description: Request timeout in milliseconds. type: type: string enum: - useglobal - http - ping - keyword description: Monitor type. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchMonitorsIdDomainSettings summary: Update settings for one monitor description: Updates the monitoring settings for one site. Set a field to `useglobal` to fall back to the global defaults. tags: - Monitors requestBody: required: true content: application/json: schema: type: object properties: active: type: string enum: - '0' - '1' - useglobal description: Enable or disable monitoring for this site. Set `useglobal` to follow the global default. expected_status: type: string description: Expected HTTP status codes, as a comma separated list such as `200,301`. Set `useglobal` to follow the global default. interval: type: string description: Default check frequency (e.g., "5m", "1h"). keyword: type: string description: Keyword to match. maxretries: type: integer description: Number of retries on failure. method: type: string enum: - useglobal - head - get - post - push - patch - delete description: Monitor method. timeout: type: string description: Request timeout in milliseconds. type: type: string enum: - useglobal - http - ping - keyword description: Monitor type. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pages: get: operationId: getPages summary: List pages across sites description: Lists pages from the selected sites. Pages are read from each child site while the request runs, so response time grows with the number of sites. tags: - Pages parameters: - name: clients in: query description: Search by clients. required: false schema: type: string - name: dtsstart in: query description: Search by start date. required: false schema: type: string - name: dtsstop in: query description: Search by stop date. required: false schema: type: string - name: groups in: query description: Search by tags. required: false schema: type: string - name: maximum in: query description: Maximum number of pages to return. required: false schema: type: integer minimum: 1 maximum: 200 default: 10 - name: post_type in: query description: Search by page type. required: false schema: type: string - name: search in: query description: Search by keyword. required: false schema: type: string - name: search_on in: query description: Search by title or content. required: false schema: type: string enum: - title - body - Title and Body - name: status in: query description: Search by status. required: false schema: type: string enum: - publish - pending - private - future - draft - trash - name: websites in: query description: Websites child site field IDs. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pages/{id_domain}/create: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postPagesIdDomainCreate summary: Create a page description: Creates a page on one site and returns its ID and permalink. tags: - Pages requestBody: required: true content: application/json: schema: type: object properties: comment_status: type: string enum: - open - closed description: Comment status. featured_image_data: type: object description: Featured image extra data. is_sticky: type: integer enum: - 0 - 1 description: Sticky status. ping_status: type: string enum: - open - closed description: Ping status. post_content: type: string description: Page content. post_custom: type: object description: Custom meta key/values. post_date: type: string description: Page date (YYYY-MM-DD HH:MM:SS). post_date_gmt: type: string description: Page date GMT (YYYY-MM-DD HH:MM:SS). post_excerpt: type: string description: Page excerpt. post_featured_image: type: string description: Featured image URL or data. post_name: type: string description: Page slug. post_password: type: string description: Page password. post_status: type: string enum: - publish - pending - private - future - draft - trash description: Page status. post_title: type: string description: Page title. required: - post_content - post_name - post_status - post_title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pages/{id_domain}/{id_page}: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_page in: path description: Page ID on the child site. required: true schema: type: integer get: operationId: getPagesIdDomainIdPage summary: Get one page description: Returns one page with its content and metadata, read from the child site. tags: - Pages responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pages/{id_domain}/{id_page}/delete: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_page in: path description: Page ID on the child site. required: true schema: type: integer delete: operationId: deletePagesIdDomainIdPageDelete summary: Delete a page description: Deletes one page from the child site. tags: - Pages responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pages/{id_domain}/{id_page}/edit: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_page in: path description: Page ID on the child site. required: true schema: type: integer put: operationId: putPagesIdDomainIdPageEdit summary: Update a page description: Updates the content or metadata of one page. tags: - Pages requestBody: required: true content: application/json: schema: type: object properties: comment_status: type: string enum: - open - closed description: Comment status. featured_image_data: type: object description: Featured image extra data. is_sticky: type: integer enum: - 0 - 1 description: Sticky status. ping_status: type: string enum: - open - closed description: Ping status. post_content: type: string description: Page content. post_custom: type: object description: Custom meta key/values. post_date: type: string description: Page date (YYYY-MM-DD HH:MM:SS). post_date_gmt: type: string description: Page date GMT (YYYY-MM-DD HH:MM:SS). post_excerpt: type: string description: Page excerpt. post_featured_image: type: string description: Featured image URL or data. post_name: type: string description: Page slug. post_password: type: string description: Page password. post_status: type: string enum: - publish - pending - private - future - draft - trash description: Page status. post_title: type: string description: Page title. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchPagesIdDomainIdPageEdit summary: Update a page description: Updates the content or metadata of one page. tags: - Pages requestBody: required: true content: application/json: schema: type: object properties: comment_status: type: string enum: - open - closed description: Comment status. featured_image_data: type: object description: Featured image extra data. is_sticky: type: integer enum: - 0 - 1 description: Sticky status. ping_status: type: string enum: - open - closed description: Ping status. post_content: type: string description: Page content. post_custom: type: object description: Custom meta key/values. post_date: type: string description: Page date (YYYY-MM-DD HH:MM:SS). post_date_gmt: type: string description: Page date GMT (YYYY-MM-DD HH:MM:SS). post_excerpt: type: string description: Page excerpt. post_featured_image: type: string description: Featured image URL or data. post_name: type: string description: Page slug. post_password: type: string description: Page password. post_status: type: string enum: - publish - pending - private - future - draft - trash description: Page status. post_title: type: string description: Page title. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pages/{id_domain}/{id_page}/update-status: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_page in: path description: Page ID on the child site. required: true schema: type: integer put: operationId: putPagesIdDomainIdPageUpdateStatus summary: Change page status description: Changes only the status of one page. tags: - Pages requestBody: required: true content: application/json: schema: type: object properties: status: type: string enum: - unpublish - publish - approve - trash - delete - restore description: New status. required: - status responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchPagesIdDomainIdPageUpdateStatus summary: Change page status description: Changes only the status of one page. tags: - Pages requestBody: required: true content: application/json: schema: type: object properties: status: type: string enum: - unpublish - publish - approve - trash - delete - restore description: New status. required: - status responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/posts: get: operationId: getPosts summary: List posts across sites description: Lists posts from the selected sites. Posts are read from each child site while the request runs, so response time grows with the number of sites. tags: - Posts parameters: - name: clients in: query description: Search by clients. required: false schema: type: string - name: dtsstart in: query description: Search by start date. required: false schema: type: string - name: dtsstop in: query description: Search by stop date. required: false schema: type: string - name: groups in: query description: Search by tags. required: false schema: type: string - name: maximum in: query description: Maximum number of posts to return. required: false schema: type: integer minimum: 1 maximum: 200 default: 50 - name: post_type in: query description: Search by post type. required: false schema: type: string - name: search in: query description: Search by keyword. required: false schema: type: string - name: search_on in: query description: Search by title or content. required: false schema: type: string enum: - title - body - Title and Body - name: status in: query description: Search by status. required: false schema: type: string enum: - publish - pending - private - future - draft - trash - name: websites in: query description: Websites child site field IDs. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/posts/{id_domain}/create: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postPostsIdDomainCreate summary: Create a post description: Creates a post on one site and returns its ID and permalink. tags: - Posts requestBody: required: true content: application/json: schema: type: object properties: comment_status: type: string enum: - open - closed description: Comment status. is_sticky: type: integer enum: - 0 - 1 description: Sticky status. ping_status: type: string enum: - open - closed description: Ping status. post_category: type: string description: Post categories (raw string). post_content: type: string description: Post content. post_custom: type: object description: Custom meta key/values. post_date: type: string description: Post date (YYYY-MM-DD HH:MM:SS). post_date_gmt: type: string description: Post date GMT (YYYY-MM-DD HH:MM:SS). post_excerpt: type: string description: Post excerpt. post_featured_image: type: string description: Featured image URL or data. post_gallery_images: type: array items: type: object properties: id: type: integer description: Attachment ID on the source site. Used to remap gallery IDs in the post content. src: type: string format: uri description: Image URL. The child site downloads this into its media library. title: type: string description: Attachment title. alt: type: string description: Alt text. caption: type: string description: Attachment caption. description: type: string description: Attachment description. description: Gallery images array. post_name: type: string description: Post slug. post_password: type: string description: Post password. post_status: type: string enum: - publish - pending - private - future - draft - trash description: Post status. post_tags: type: string description: Post tags (string). post_title: type: string description: Post title. required: - post_content - post_name - post_status - post_title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/posts/{id_domain}/{id_post}: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_post in: path description: Post ID on the child site. required: true schema: type: integer get: operationId: getPostsIdDomainIdPost summary: Get one post description: Returns one post with its content and metadata, read from the child site. tags: - Posts responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/posts/{id_domain}/{id_post}/delete: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_post in: path description: Post ID on the child site. required: true schema: type: integer delete: operationId: deletePostsIdDomainIdPostDelete summary: Delete a post description: Deletes one post from the child site. tags: - Posts responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/posts/{id_domain}/{id_post}/edit: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_post in: path description: Post ID on the child site. required: true schema: type: integer put: operationId: putPostsIdDomainIdPostEdit summary: Update a post description: Updates the content or metadata of one post. tags: - Posts requestBody: required: true content: application/json: schema: type: object properties: comment_status: type: string enum: - open - closed description: Comment status. is_sticky: type: integer enum: - 0 - 1 description: Sticky status. ping_status: type: string enum: - open - closed description: Ping status. post_category: type: string description: Post categories (raw string). post_content: type: string description: Post content. post_custom: type: object description: Custom meta key/values. post_date: type: string description: Post date (YYYY-MM-DD HH:MM:SS). post_date_gmt: type: string description: Post date GMT (YYYY-MM-DD HH:MM:SS). post_excerpt: type: string description: Post excerpt. post_name: type: string description: Post slug. post_password: type: string description: Post password. post_status: type: string enum: - publish - pending - private - future - draft - trash description: Post status. post_tags: type: string description: Post tags (string). post_title: type: string description: Post title. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchPostsIdDomainIdPostEdit summary: Update a post description: Updates the content or metadata of one post. tags: - Posts requestBody: required: true content: application/json: schema: type: object properties: comment_status: type: string enum: - open - closed description: Comment status. is_sticky: type: integer enum: - 0 - 1 description: Sticky status. ping_status: type: string enum: - open - closed description: Ping status. post_category: type: string description: Post categories (raw string). post_content: type: string description: Post content. post_custom: type: object description: Custom meta key/values. post_date: type: string description: Post date (YYYY-MM-DD HH:MM:SS). post_date_gmt: type: string description: Post date GMT (YYYY-MM-DD HH:MM:SS). post_excerpt: type: string description: Post excerpt. post_name: type: string description: Post slug. post_password: type: string description: Post password. post_status: type: string enum: - publish - pending - private - future - draft - trash description: Post status. post_tags: type: string description: Post tags (string). post_title: type: string description: Post title. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/posts/{id_domain}/{id_post}/update-status: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: id_post in: path description: Post ID on the child site. required: true schema: type: integer put: operationId: putPostsIdDomainIdPostUpdateStatus summary: Change post status description: Changes only the status of one post. tags: - Posts requestBody: required: true content: application/json: schema: type: object properties: status: type: string enum: - unpublish - publish - approve - trash - delete - restore description: New status. required: - status responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchPostsIdDomainIdPostUpdateStatus summary: Change post status description: Changes only the status of one post. tags: - Posts requestBody: required: true content: application/json: schema: type: object properties: status: type: string enum: - unpublish - publish - approve - trash - delete - restore description: New status. required: - status responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/rest-api/add-key: post: operationId: postRestApiAddKey summary: Create an API key description: Creates an API key. The token is returned once in this response and cannot be read again. tags: - API Keys requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean description: Enable or disable API key. description: type: string description: API key description. permissions: type: string description: Permission scope, as a comma separated list of `read` and `write`. `write` is the Write & Delete permission in the Dashboard interface. required: - active - permissions responses: '200': description: The key was created and the token is in the response. content: application/json: schema: $ref: '#/components/schemas/ApiKeyCreated' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/rest-api/delete-key/{key_identifier}: parameters: - name: key_identifier in: path description: API key ID, or the `ck_` identifier of a legacy v1 key. required: true schema: type: string delete: operationId: deleteRestApiDeleteKeyKeyIdentifier summary: Delete an API key description: Deletes an API key. Requests using it stop working right away. tags: - API Keys responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/rest-api/edit-key/{key_identifier}: parameters: - name: key_identifier in: path description: API key ID, or the `ck_` identifier of a legacy v1 key. required: true schema: type: string put: operationId: putRestApiEditKeyKeyIdentifier summary: Update an API key description: Changes the description, permission scope, or active state of an API key. tags: - API Keys requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean description: Enable or disable API key. description: type: string description: API key description. permissions: type: string description: Permission scope, as a comma separated list of `read` and `write`. `write` is the Write & Delete permission in the Dashboard interface. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchRestApiEditKeyKeyIdentifier summary: Update an API key description: Changes the description, permission scope, or active state of an API key. tags: - API Keys requestBody: required: true content: application/json: schema: type: object properties: active: type: boolean description: Enable or disable API key. description: type: string description: API key description. permissions: type: string description: Permission scope, as a comma separated list of `read` and `write`. `write` is the Write & Delete permission in the Dashboard interface. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/rest-api/keys: get: operationId: getRestApiKeys summary: List API keys description: Lists the API keys on the Dashboard. Legacy v1 keys are merged into the same result set. tags: - API Keys parameters: - name: page in: query description: Page number. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of keys per page. required: false schema: type: integer minimum: 1 maximum: 200 default: 20 responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/advanced: get: operationId: getSettingsAdvanced summary: Get Advanced settings description: Returns the values on the Advanced settings screen. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/advanced/edit: put: operationId: putSettingsAdvancedEdit summary: Update Advanced settings description: Updates the Advanced settings, including the request throttling limits. Send the body as `application/json`. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: mainwp_chunksitesnumber: type: integer minimum: 1 maximum: 30 description: Chunk sites number. mainwp_chunksleepinterval: type: integer minimum: 0 maximum: 20 description: Chunk sleep interval. mainwp_connect_signature_algo: type: integer description: OpenSSL signature algorithm. mainwp_force_use_ipv4: type: boolean description: Force use IPv4. mainwp_maximum_install_update_requests: type: integer minimum: 1 maximum: 20 description: Maximum install and update requests. mainwp_maximum_ip_requests: type: integer minimum: 1 maximum: 10 description: Maximum IP requests. mainwp_maximum_requests: type: integer minimum: 1 maximum: 20 description: Maximum requests. mainwp_maximum_sync_requests: type: integer minimum: 1 maximum: 20 description: Maximum sync requests. mainwp_maximum_uptime_monitoring_requests: type: integer minimum: 1 maximum: 100 description: Maximum uptime monitoring requests. mainwp_minimum_delay: type: integer minimum: 100 maximum: 5000 multipleOf: 100 description: Minimum delay. mainwp_minimum_ip_delay: type: integer minimum: 500 maximum: 5000 multipleOf: 100 description: Minimum IP delay. mainwp_optimize: type: boolean description: Optimize data loading. mainwp_ssl_verify_certificate: type: boolean description: Verify SSL certificate. mainwp_verify_connection_method: type: integer enum: - 1 - 2 description: Verify connection method. mainwp_wp_cron: type: boolean description: Use WP Cron. sync_data: type: object additionalProperties: type: integer enum: - 0 - 1 description: Sync data toggles, keyed by the setting names already stored on the Dashboard. Send 1 to enable a key and 0 to disable it. Unknown keys are rejected. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsAdvancedEdit summary: Update Advanced settings description: Updates the Advanced settings, including the request throttling limits. Send the body as `application/json`. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: mainwp_chunksitesnumber: type: integer minimum: 1 maximum: 30 description: Chunk sites number. mainwp_chunksleepinterval: type: integer minimum: 0 maximum: 20 description: Chunk sleep interval. mainwp_connect_signature_algo: type: integer description: OpenSSL signature algorithm. mainwp_force_use_ipv4: type: boolean description: Force use IPv4. mainwp_maximum_install_update_requests: type: integer minimum: 1 maximum: 20 description: Maximum install and update requests. mainwp_maximum_ip_requests: type: integer minimum: 1 maximum: 10 description: Maximum IP requests. mainwp_maximum_requests: type: integer minimum: 1 maximum: 20 description: Maximum requests. mainwp_maximum_sync_requests: type: integer minimum: 1 maximum: 20 description: Maximum sync requests. mainwp_maximum_uptime_monitoring_requests: type: integer minimum: 1 maximum: 100 description: Maximum uptime monitoring requests. mainwp_minimum_delay: type: integer minimum: 100 maximum: 5000 multipleOf: 100 description: Minimum delay. mainwp_minimum_ip_delay: type: integer minimum: 500 maximum: 5000 multipleOf: 100 description: Minimum IP delay. mainwp_optimize: type: boolean description: Optimize data loading. mainwp_ssl_verify_certificate: type: boolean description: Verify SSL certificate. mainwp_verify_connection_method: type: integer enum: - 1 - 2 description: Verify connection method. mainwp_wp_cron: type: boolean description: Use WP Cron. sync_data: type: object additionalProperties: type: integer enum: - 0 - 1 description: Sync data toggles, keyed by the setting names already stored on the Dashboard. Send 1 to enable a key and 0 to disable it. Unknown keys are rejected. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/api-backups: get: operationId: getSettingsApiBackups summary: Get API backup provider settings description: Returns the configuration for each API backup provider. Stored secrets come back masked. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/api-backups/{api_slug}/edit: parameters: - name: api_slug in: path description: Backup provider slug, as returned by `GET /settings/api-backups`. required: true schema: type: string put: operationId: putSettingsApiBackupsApiSlugEdit summary: Update an API backup provider description: Updates the connection settings for one API backup provider. Which fields apply depends on the provider. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: account_email: type: string description: Account email (for Cloudways). company_id: type: string description: Company ID (for kinsta). enabled: type: boolean description: Enable/Disable the provider. password: type: string description: API password. secrets: type: object properties: api_key: type: string description: API key (for kinsta). required: - api_key description: Secrets (Cpanel not used). site_path: type: string description: Site path (for cPanel). url: type: string description: Server URL (for cPanel). username: type: string description: API username. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsApiBackupsApiSlugEdit summary: Update an API backup provider description: Updates the connection settings for one API backup provider. Which fields apply depends on the provider. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: account_email: type: string description: Account email (for Cloudways). company_id: type: string description: Company ID (for kinsta). enabled: type: boolean description: Enable/Disable the provider. password: type: string description: API password. secrets: type: object properties: api_key: type: string description: API key (for kinsta). required: - api_key description: Secrets (Cpanel not used). site_path: type: string description: Site path (for cPanel). url: type: string description: Server URL (for cPanel). username: type: string description: API username. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker: get: operationId: getSettingsCostTracker summary: Get Cost Tracker settings description: Returns the currency and number formatting settings, the product categories, and the payment methods. Requires the built-in Cost Tracker module to be enabled. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/edit: put: operationId: putSettingsCostTrackerEdit summary: Update Cost Tracker settings description: Updates the currency and number formatting used for cost records. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: currency: type: string description: Currency. currency_position: type: string enum: - left - right - left_space - right_space description: Currency position. decimal_separator: type: string description: Decimal separator. thousand_separator: type: string description: Thousand separator. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsCostTrackerEdit summary: Update Cost Tracker settings description: Updates the currency and number formatting used for cost records. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: currency: type: string description: Currency. currency_position: type: string enum: - left - right - left_space - right_space description: Currency position. decimal_separator: type: string description: Decimal separator. thousand_separator: type: string description: Thousand separator. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/payment-methods/add: post: operationId: postSettingsCostTrackerPaymentMethodsAdd summary: Add a payment method description: Adds a payment method that cost records can be filed under. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: Payment method title. required: - title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/payment-methods/{slug}/delete: parameters: - name: slug in: path description: Payment method slug. required: true schema: type: string delete: operationId: deleteSettingsCostTrackerPaymentMethodsSlugDelete summary: Delete a payment method description: Deletes a payment method. Requires the built-in Cost Tracker module to be enabled. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/payment-methods/{slug}/edit: parameters: - name: slug in: path description: Payment method slug. required: true schema: type: string put: operationId: putSettingsCostTrackerPaymentMethodsSlugEdit summary: Update a payment method description: Renames a payment method. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: Payment method title. required: - title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsCostTrackerPaymentMethodsSlugEdit summary: Update a payment method description: Renames a payment method. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: Payment method title. required: - title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/product-types/add: post: operationId: postSettingsCostTrackerProductTypesAdd summary: Add a product type description: Adds a product type that cost records can be filed under. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: color: type: string description: Product type color. icon: type: string description: Product type icon. title: type: string description: Product type title. required: - title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/product-types/{slug}/delete: parameters: - name: slug in: path description: Product type slug. required: true schema: type: string delete: operationId: deleteSettingsCostTrackerProductTypesSlugDelete summary: Delete a product type description: Deletes a product type. The types that ship with the module cannot be deleted. Requires the built-in Cost Tracker module to be enabled. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/cost-tracker/product-types/{slug}/edit: parameters: - name: slug in: path description: Product type slug. required: true schema: type: string put: operationId: putSettingsCostTrackerProductTypesSlugEdit summary: Update a product type description: Updates a product type. The types that ship with the module cannot be renamed. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: color: type: string description: Product type color. icon: type: string description: Product type icon. title: type: string description: Product type title. required: - title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsCostTrackerProductTypesSlugEdit summary: Update a product type description: Updates a product type. The types that ship with the module cannot be renamed. Requires the built-in Cost Tracker module to be enabled. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: color: type: string description: Product type color. icon: type: string description: Product type icon. title: type: string description: Product type title. required: - title responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/dashboard-insights: get: operationId: getSettingsDashboardInsights summary: Get Dashboard Insights settings description: Returns whether insights logging is turned on. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/dashboard-insights/edit: put: operationId: putSettingsDashboardInsightsEdit summary: Update Dashboard Insights settings description: Turns insights logging on or off. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: enable_insights_logging: type: integer enum: - 0 - 1 description: Enable insights logging. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsDashboardInsightsEdit summary: Update Dashboard Insights settings description: Turns insights logging on or off. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: enable_insights_logging: type: integer enum: - 0 - 1 description: Enable insights logging. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/emails: get: operationId: getSettingsEmails summary: Get email notification settings description: Returns every email notification type with its heading, subject, recipients, and enabled state. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/emails/{mail_type}/edit: parameters: - name: mail_type in: path description: Email notification type slug, as returned by `GET /settings/emails`. required: true schema: type: string put: operationId: putSettingsEmailsMailTypeEdit summary: Update one email notification description: Updates the heading, subject, recipients, or enabled state of one email notification type. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: disable: type: boolean description: Disable mail. heading: type: string description: Mail name. recipients: type: string description: Mail recipients. subject: type: string description: Mail description. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsEmailsMailTypeEdit summary: Update one email notification description: Updates the heading, subject, recipients, or enabled state of one email notification type. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: disable: type: boolean description: Disable mail. heading: type: string description: Mail name. recipients: type: string description: Mail recipients. subject: type: string description: Mail description. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/general: get: operationId: getSettingsGeneral summary: Get General settings description: Returns the values on the General settings screen. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/general/edit: put: operationId: putSettingsGeneralEdit summary: Update General settings description: Updates the General settings. Send the body as `application/json` and include only the fields you want to change. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: automatic_daily_update: type: array description: Plugin automatic daily update. backup_before_upgrade: type: boolean description: Backup before upgrade. backup_before_upgrade_days: type: integer description: Days to check for backup before upgrade. check_http_response: type: boolean description: Check HTTP response after update. check_http_response_method: type: string enum: - head - get description: HTTP method for response check. date_format: type: string description: Date format. dayinmonth_auto_update: type: integer minimum: 0 maximum: 31 description: Day in month for auto updates. dayinweek_auto_update: type: integer minimum: 0 maximum: 6 description: Day in week for auto updates. delay_autoupdate: type: integer enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 14 - 30 description: Delay automatic updates. disable_update_confirmations: type: integer enum: - 0 - 1 - 2 description: Disable update confirmations. frequency_auto_update: type: string enum: - daily - weekly - monthly description: Frequency of auto updates. frequency_daily_update: type: integer minimum: 1 maximum: 12 description: Frequency of daily updates (1-12). hide_update_everything: type: boolean description: Hide update everything button. mainwp_archive_format: type: string enum: - zip - tar.gz - tar.bz2 - tar description: Archive format. mainwp_backup_on_external_sources: type: string description: Backup on external sources. mainwp_backups_on_server: type: string description: Backups on server. mainwp_chunked_backup_tasks: type: boolean description: Chunked backup tasks. mainwp_enable_legacy_backup_feature: type: boolean description: Enable legacy backup feature. mainwp_notification_on_backup_fail: type: boolean description: Notification on backup fail. mainwp_notification_on_backup_start: type: boolean description: Notification on backup start. mainwp_primary_backup: type: string enum: - '' - module-api-backups description: Primary backup method. mainwp_widgets: type: object additionalProperties: type: integer enum: - 0 - 1 description: Dashboard widget visibility, keyed by widget name. Send 1 to show a widget and 0 to hide it. Unknown keys are rejected. numberdays_outdate_plugin_theme: type: integer description: Number of days to consider plugin/theme as outdated. plugin_automatic_daily_update: type: boolean description: Plugin automatic daily update. show_language_updates: type: boolean description: Show language updates. sidebar_position: type: boolean description: Sidebar position. theme_automatic_daily_update: type: boolean description: Theme automatic daily update. time_auto_update: type: string description: Auto update time (whole hour, 24h). time_daily_update: type: string description: Time for daily updates (HH:MM format). time_format: type: string description: Time format. timezone_string: type: string description: Timezone. trans_automatic_daily_update: type: array description: Translation automatic daily update. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsGeneralEdit summary: Update General settings description: Updates the General settings. Send the body as `application/json` and include only the fields you want to change. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: automatic_daily_update: type: array description: Plugin automatic daily update. backup_before_upgrade: type: boolean description: Backup before upgrade. backup_before_upgrade_days: type: integer description: Days to check for backup before upgrade. check_http_response: type: boolean description: Check HTTP response after update. check_http_response_method: type: string enum: - head - get description: HTTP method for response check. date_format: type: string description: Date format. dayinmonth_auto_update: type: integer minimum: 0 maximum: 31 description: Day in month for auto updates. dayinweek_auto_update: type: integer minimum: 0 maximum: 6 description: Day in week for auto updates. delay_autoupdate: type: integer enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 14 - 30 description: Delay automatic updates. disable_update_confirmations: type: integer enum: - 0 - 1 - 2 description: Disable update confirmations. frequency_auto_update: type: string enum: - daily - weekly - monthly description: Frequency of auto updates. frequency_daily_update: type: integer minimum: 1 maximum: 12 description: Frequency of daily updates (1-12). hide_update_everything: type: boolean description: Hide update everything button. mainwp_archive_format: type: string enum: - zip - tar.gz - tar.bz2 - tar description: Archive format. mainwp_backup_on_external_sources: type: string description: Backup on external sources. mainwp_backups_on_server: type: string description: Backups on server. mainwp_chunked_backup_tasks: type: boolean description: Chunked backup tasks. mainwp_enable_legacy_backup_feature: type: boolean description: Enable legacy backup feature. mainwp_notification_on_backup_fail: type: boolean description: Notification on backup fail. mainwp_notification_on_backup_start: type: boolean description: Notification on backup start. mainwp_primary_backup: type: string enum: - '' - module-api-backups description: Primary backup method. mainwp_widgets: type: object additionalProperties: type: integer enum: - 0 - 1 description: Dashboard widget visibility, keyed by widget name. Send 1 to show a widget and 0 to hide it. Unknown keys are rejected. numberdays_outdate_plugin_theme: type: integer description: Number of days to consider plugin/theme as outdated. plugin_automatic_daily_update: type: boolean description: Plugin automatic daily update. show_language_updates: type: boolean description: Show language updates. sidebar_position: type: boolean description: Sidebar position. theme_automatic_daily_update: type: boolean description: Theme automatic daily update. time_auto_update: type: string description: Auto update time (whole hour, 24h). time_daily_update: type: string description: Time for daily updates (HH:MM format). time_format: type: string description: Time format. timezone_string: type: string description: Timezone. trans_automatic_daily_update: type: array description: Translation automatic daily update. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/monitoring: get: operationId: getSettingsMonitoring summary: Get monitoring settings description: Returns the global uptime and site health monitoring settings. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/monitoring/edit: put: operationId: putSettingsMonitoringEdit summary: Update monitoring settings description: Updates the global uptime and site health monitoring settings. Send the body as `application/json`. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: mainwp_disable_sites_health_monitoring: type: boolean description: Disable sites health monitoring. mainwp_sitehealth_threshold: type: integer enum: - 80 - 100 description: Site health threshold. mainwp_uptime_monitoring_active: type: boolean description: Enable or disable monitoring globally. mainwp_uptime_monitoring_down_confirmation_check: type: integer enum: - 0 - 1 description: Uptime monitoring down confirmation check. mainwp_uptime_monitoring_interval: type: integer description: Uptime monitoring interval. mainwp_uptime_monitoring_keyword: type: string description: Uptime monitoring keyword. mainwp_uptime_monitoring_timeout: type: integer description: Uptime monitoring timeout. mainwp_uptime_monitoring_type: type: string enum: - http - ping - keyword description: Uptime monitoring type. mainwp_uptime_monitoring_up_status_codes: type: array items: type: integer description: Uptime monitoring up status codes. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsMonitoringEdit summary: Update monitoring settings description: Updates the global uptime and site health monitoring settings. Send the body as `application/json`. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: mainwp_disable_sites_health_monitoring: type: boolean description: Disable sites health monitoring. mainwp_sitehealth_threshold: type: integer enum: - 80 - 100 description: Site health threshold. mainwp_uptime_monitoring_active: type: boolean description: Enable or disable monitoring globally. mainwp_uptime_monitoring_down_confirmation_check: type: integer enum: - 0 - 1 description: Uptime monitoring down confirmation check. mainwp_uptime_monitoring_interval: type: integer description: Uptime monitoring interval. mainwp_uptime_monitoring_keyword: type: string description: Uptime monitoring keyword. mainwp_uptime_monitoring_timeout: type: integer description: Uptime monitoring timeout. mainwp_uptime_monitoring_type: type: string enum: - http - ping - keyword description: Uptime monitoring type. mainwp_uptime_monitoring_up_status_codes: type: array items: type: integer description: Uptime monitoring up status codes. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools: get: operationId: getSettingsTools summary: Get Tools settings description: Returns the interface settings on the Tools screen. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/clear-activation-data: post: operationId: postSettingsToolsClearActivationData summary: Clear extension activation data description: Clears the stored extension licence activation data. You need to activate your extensions again afterwards. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/destroy-sessions: post: operationId: postSettingsToolsDestroySessions summary: Start a destroy sessions job description: Starts a background job that ends every logged in WordPress session on the Dashboard, including your own. Poll the status route with the returned `destroy_id`. tags: - Settings responses: '200': description: The job was started. content: application/json: schema: $ref: '#/components/schemas/DestroySessionsStarted' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/destroy-sessions-status/{destroy_id}: parameters: - name: destroy_id in: path description: Job ID returned when the destroy sessions job started. required: true schema: type: string get: operationId: getSettingsToolsDestroySessionsStatusDestroyId summary: Get destroy sessions job status description: Returns the progress of a destroy sessions job. tags: - Settings responses: '200': description: The current job status. content: application/json: schema: $ref: '#/components/schemas/ToolJobStatus' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/disconnect-all-sites: post: operationId: postSettingsToolsDisconnectAllSites summary: Start a disconnect all sites job description: Starts a background job that disconnects every site from the Dashboard. Poll the status route with the returned `disconnect_id`. tags: - Settings responses: '200': description: The job was started. content: application/json: schema: $ref: '#/components/schemas/DisconnectAllSitesStarted' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/disconnect-all-sites-status/{disconnect_id}: parameters: - name: disconnect_id in: path description: Job ID returned when the disconnect all sites job started. required: true schema: type: string get: operationId: getSettingsToolsDisconnectAllSitesStatusDisconnectId summary: Get disconnect all sites job status description: Returns the progress of a disconnect all sites job. tags: - Settings responses: '200': description: The current job status. content: application/json: schema: $ref: '#/components/schemas/ToolJobStatus' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/edit: put: operationId: putSettingsToolsEdit summary: Update Tools settings description: Updates the Dashboard theme and the guided tour, video, and chat options. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: chatbase: type: boolean description: Enable chatbase. guided_tours: type: boolean description: Enable guided tours. guided_video: type: boolean description: Enable youtube embeds. mainwp_theme: type: string enum: - default - default-2024 - classic - dark - wpadmin - minimalistic description: MainWP theme. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSettingsToolsEdit summary: Update Tools settings description: Updates the Dashboard theme and the guided tour, video, and chat options. tags: - Settings requestBody: required: true content: application/json: schema: type: object properties: chatbase: type: boolean description: Enable chatbase. guided_tours: type: boolean description: Enable guided tours. guided_video: type: boolean description: Enable youtube embeds. mainwp_theme: type: string enum: - default - default-2024 - classic - dark - wpadmin - minimalistic description: MainWP theme. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/renew-connections: post: operationId: postSettingsToolsRenewConnections summary: Start a renew connections job description: Starts a background job that renews the connection credentials for every connected site. Poll the status route with the returned `renew_id`. tags: - Settings responses: '200': description: The job was started. content: application/json: schema: $ref: '#/components/schemas/RenewConnectionsStarted' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/renew-connections-status/{renew_id}: parameters: - name: renew_id in: path description: Job ID returned when the renew connections job started. required: true schema: type: string get: operationId: getSettingsToolsRenewConnectionsStatusRenewId summary: Get renew connections job status description: Returns the progress of a renew connections job. tags: - Settings responses: '200': description: The current job status. content: application/json: schema: $ref: '#/components/schemas/ToolJobStatus' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/settings/tools/restore-info-messages: post: operationId: postSettingsToolsRestoreInfoMessages summary: Restore dismissed messages description: Brings back the information messages that were dismissed in the Dashboard interface. tags: - Settings responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites: get: operationId: getSites summary: List sites description: Returns the stored record for every connected site. Set `full_data` or `with_tags` to `false` to trim the payload. tags: - Sites parameters: - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string - name: status in: query description: Connection status to filter on. required: false schema: type: string enum: - any - connected - disconnected - suspended - available_update - name: with_tags in: query description: Include the tags assigned to each site. required: false schema: type: boolean default: true - name: full_data in: query description: Include the full stored record instead of the core fields only. required: false schema: type: boolean default: true - name: custom_fields in: query description: Comma separated list of extra fields to add to each record. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/add: post: operationId: postSitesAdd summary: Add a site description: Connects a child site to the Dashboard. `url` and `admin` are always required. Send `adminpassword` when Password Authentication is enabled on the child site, `uniqueid` when Unique Security ID is enabled, or both when both are enabled. tags: - Sites requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteCreateInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/basic: get: operationId: getSitesBasic summary: List sites with basic fields description: 'Returns a short record per site: ID, name, URL, and connection status.' tags: - Sites parameters: - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string - name: status in: query description: Connection status to filter on. required: false schema: type: string enum: - any - connected - disconnected - suspended - available_update responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/batch: post: operationId: postSitesBatch summary: Batch create, update, and delete sites description: Creates, updates, and deletes sites in one request. The response is a map of action group to per-item results, not the standard envelope. The default limit is 100 items across all groups. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Sites to create. items: $ref: '#/components/schemas/SiteCreateInput' update: type: array description: Sites to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/SiteBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesBatch summary: Batch create, update, and delete sites description: Creates, updates, and deletes sites in one request. The response is a map of action group to per-item results, not the standard envelope. The default limit is 100 items across all groups. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Sites to create. items: $ref: '#/components/schemas/SiteCreateInput' update: type: array description: Sites to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/SiteBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesBatch summary: Batch create, update, and delete sites description: Creates, updates, and deletes sites in one request. The response is a map of action group to per-item results, not the standard envelope. The default limit is 100 items across all groups. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Sites to create. items: $ref: '#/components/schemas/SiteCreateInput' update: type: array description: Sites to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/SiteBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/check: post: operationId: postSitesCheck summary: Check all sites description: Runs an HTTP availability check against every site that matches the filters. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesCheck summary: Check all sites description: Runs an HTTP availability check against every site that matches the filters. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesCheck summary: Check all sites description: Runs an HTTP availability check against every site that matches the filters. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/count: get: operationId: getSitesCount summary: Count sites description: Returns how many sites match the filters. The response is a bare `count` object with no `success` key. tags: - Sites parameters: - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string - name: status in: query description: Connection status to filter on. required: false schema: type: string enum: - any - connected - disconnected - suspended - available_update responses: '200': description: The number of matching sites. content: application/json: schema: $ref: '#/components/schemas/SitesCount' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/disconnect: post: operationId: postSitesDisconnect summary: Disconnect all sites description: Drops the Dashboard connection for every site that matches the filters. The sites stay listed and can be reconnected. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesDisconnect summary: Disconnect all sites description: Drops the Dashboard connection for every site that matches the filters. The sites stay listed and can be reconnected. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesDisconnect summary: Disconnect all sites description: Drops the Dashboard connection for every site that matches the filters. The sites stay listed and can be reconnected. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/reconnect: post: operationId: postSitesReconnect summary: Reconnect all sites description: Re-establishes the connection for every site that matches the filters. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesReconnect summary: Reconnect all sites description: Re-establishes the connection for every site that matches the filters. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesReconnect summary: Reconnect all sites description: Re-establishes the connection for every site that matches the filters. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Per-site results. content: application/json: schema: $ref: '#/components/schemas/BulkSiteResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/sync: post: operationId: postSitesSync summary: Sync all sites description: Starts a sync for every site that matches the filters. When the Dashboard queues the work the response carries a `job_id` instead of per-site results. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BulkSiteResult' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesSync summary: Sync all sites description: Starts a sync for every site that matches the filters. When the Dashboard queues the work the response carries a `job_id` instead of per-site results. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BulkSiteResult' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesSync summary: Sync all sites description: Starts a sync for every site that matches the filters. When the Dashboard queues the work the response carries a `job_id` instead of per-site results. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: include: type: string description: Comma separated list of IDs to limit the result set to. exclude: type: string description: Comma separated list of IDs to leave out of the result set. responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BulkSiteResult' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomain summary: Get one site description: Returns the stored record for one site. The response is a bare `data` object with no `success` key. tags: - Sites responses: '200': description: The site record. content: application/json: schema: $ref: '#/components/schemas/SiteRecord' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/check: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainCheck summary: Check one site description: Runs an HTTP availability check against one site and returns the status code it answered with. tags: - Sites responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainCheck summary: Check one site description: Runs an HTTP availability check against one site and returns the status code it answered with. tags: - Sites responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainCheck summary: Check one site description: Runs an HTTP availability check against one site and returns the status code it answered with. tags: - Sites responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/client: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainClient summary: Get the client linked to a site description: Returns the client record a site is assigned to. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/costs: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainCosts summary: List costs linked to a site description: Returns the Cost Tracker records a site is assigned to. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/disconnect: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainDisconnect summary: Disconnect one site description: Drops the Dashboard connection for one site. The site stays listed and can be reconnected. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainDisconnect summary: Disconnect one site description: Drops the Dashboard connection for one site. The site stays listed and can be reconnected. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainDisconnect summary: Disconnect one site description: Drops the Dashboard connection for one site. The site stays listed and can be reconnected. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/edit: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainEdit summary: Update a site description: Updates the Dashboard-side settings for one site. tags: - Sites requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainEdit summary: Update a site description: Updates the Dashboard-side settings for one site. tags: - Sites requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainEdit summary: Update a site description: Updates the Dashboard-side settings for one site. tags: - Sites requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/non-mainwp-changes: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainNonMainwpChanges summary: List changes made outside MainWP description: Lists plugin, theme, and core changes made on the child site outside the Dashboard. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view - name: source in: query description: Limit the list to one change source. required: false schema: type: string - name: actions in: query description: Comma separated actions to include. required: false schema: type: string - name: contexts in: query description: Comma separated contexts to include. required: false schema: type: string - name: total_count in: query description: Number of records to return. required: false schema: type: integer - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/plugins: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainPlugins summary: List plugins on a site description: Lists the plugins installed on one site. tags: - Sites parameters: - name: status in: query description: Activation state to filter on. required: false schema: type: string enum: - any - active - inactive - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 - name: must_use in: query description: Set to 1 to return must-use plugins only. required: false schema: type: integer enum: - 0 - 1 responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/plugins/abandoned: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainPluginsAbandoned summary: List abandoned plugins on a site description: Lists plugins on the site whose authors have not published an update within the period set in your Dashboard. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/plugins/activate: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainPluginsActivate summary: Activate plugins on a site description: Activates one or more plugins on a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to act on, comma separated for several. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainPluginsActivate summary: Activate plugins on a site description: Activates one or more plugins on a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to act on, comma separated for several. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainPluginsActivate summary: Activate plugins on a site description: Activates one or more plugins on a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to act on, comma separated for several. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/plugins/deactivate: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainPluginsDeactivate summary: Deactivate plugins on a site description: Deactivates one or more plugins on a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to act on, comma separated for several. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainPluginsDeactivate summary: Deactivate plugins on a site description: Deactivates one or more plugins on a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to act on, comma separated for several. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainPluginsDeactivate summary: Deactivate plugins on a site description: Deactivates one or more plugins on a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to act on, comma separated for several. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/plugins/delete: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string delete: operationId: deleteSitesIdDomainPluginsDelete summary: Delete plugins from a site description: Deletes one or more plugins from a site. Pass plugin file paths in `slug`, comma separated for several. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view - name: slug in: query description: Plugin file paths to delete, comma separated for several. required: true schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/reconnect: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainReconnect summary: Reconnect one site description: Re-establishes the connection for one site. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainReconnect summary: Reconnect one site description: Re-establishes the connection for one site. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainReconnect summary: Reconnect one site description: Re-establishes the connection for one site. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/remove: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string delete: operationId: deleteSitesIdDomainRemove summary: Remove a site from the Dashboard description: Removes a site from the Dashboard. The child site and its content are left in place. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/security: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainSecurity summary: Get the security snapshot for a site description: Returns the security check results the child site reported at its last sync. tags: - Sites responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/suspend: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainSuspend summary: Suspend one site description: Suspends one site. Suspended sites are skipped by syncs and update runs. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainSuspend summary: Suspend one site description: Suspends one site. Suspended sites are skipped by syncs and update runs. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainSuspend summary: Suspend one site description: Suspends one site. Suspended sites are skipped by syncs and update runs. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/sync: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainSync summary: Sync one site description: Syncs one site. The response carries a `job_id` when the Dashboard queues the work. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Sites responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/Success' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainSync summary: Sync one site description: Syncs one site. The response carries a `job_id` when the Dashboard queues the work. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Sites responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/Success' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainSync summary: Sync one site description: Syncs one site. The response carries a `job_id` when the Dashboard queues the work. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Sites responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/Success' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/themes: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainThemes summary: List themes on a site description: Lists the themes installed on one site. tags: - Sites parameters: - name: status in: query description: Activation state to filter on. required: false schema: type: string enum: - any - active - inactive - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/themes/abandoned: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSitesIdDomainThemesAbandoned summary: List abandoned themes on a site description: Lists themes on the site whose authors have not published an update within the period set in your Dashboard. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/themes/activate: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainThemesActivate summary: Activate a theme on a site description: Activates a theme on a site. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slug to activate. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainThemesActivate summary: Activate a theme on a site description: Activates a theme on a site. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slug to activate. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainThemesActivate summary: Activate a theme on a site description: Activates a theme on a site. tags: - Sites requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slug to activate. required: - slug responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/themes/delete: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string delete: operationId: deleteSitesIdDomainThemesDelete summary: Delete themes from a site description: Deletes one or more themes from a site. tags: - Sites parameters: - name: slug in: query description: Theme slugs to delete, comma separated for several. required: true schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/sites/{id_domain}/unsuspend: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSitesIdDomainUnsuspend summary: Unsuspend one site description: Returns a suspended site to normal operation. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSitesIdDomainUnsuspend summary: Unsuspend one site description: Returns a suspended site to normal operation. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSitesIdDomainUnsuspend summary: Unsuspend one site description: Returns a suspended site to normal operation. tags: - Sites parameters: - name: context in: query description: Scope of the request. Determines which fields the response carries. required: false schema: type: string default: view responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags: get: operationId: getTags summary: List tags description: Lists tags with the sites assigned to each one. tags: - Tags parameters: - name: page in: query description: Page of the result set to return. required: false schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Number of records per page. required: false schema: type: integer minimum: 1 - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/add: post: operationId: postTagsAdd summary: Create a tag description: Creates a tag. tags: - Tags requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TagCreateInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/batch: post: operationId: postTagsBatch summary: Batch create, update, and delete tags description: Creates, updates, and deletes tags in one request. The response is a map of action group to per-item results, not the standard envelope. tags: - Tags requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Tags to create. items: $ref: '#/components/schemas/TagCreateInput' update: type: array description: Tags to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/TagBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putTagsBatch summary: Batch create, update, and delete tags description: Creates, updates, and deletes tags in one request. The response is a map of action group to per-item results, not the standard envelope. tags: - Tags requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Tags to create. items: $ref: '#/components/schemas/TagCreateInput' update: type: array description: Tags to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/TagBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchTagsBatch summary: Batch create, update, and delete tags description: Creates, updates, and deletes tags in one request. The response is a map of action group to per-item results, not the standard envelope. tags: - Tags requestBody: required: true content: application/json: schema: type: object properties: create: type: array description: Tags to create. items: $ref: '#/components/schemas/TagCreateInput' update: type: array description: Tags to update. Each item is looked up by its `id`. items: $ref: '#/components/schemas/TagBatchUpdateItem' delete: type: array description: IDs of records to delete. items: type: integer responses: '200': description: Per-item results, grouped the same way as the request. content: application/json: schema: $ref: '#/components/schemas/BatchResult' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/{id}: parameters: - name: id in: path description: Tag ID. required: true schema: type: integer get: operationId: getTagsId summary: Get one tag description: Returns one tag with the sites assigned to it. tags: - Tags responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/{id}/clients: parameters: - name: id in: path description: Tag ID. required: true schema: type: integer get: operationId: getTagsIdClients summary: List clients in a tag description: Lists the clients that own the sites assigned to a tag. tags: - Tags responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/{id}/edit: parameters: - name: id in: path description: Tag ID. required: true schema: type: integer post: operationId: postTagsIdEdit summary: Update a tag description: Renames a tag or changes its colour. tags: - Tags requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TagEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putTagsIdEdit summary: Update a tag description: Renames a tag or changes its colour. tags: - Tags requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TagEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchTagsIdEdit summary: Update a tag description: Renames a tag or changes its colour. tags: - Tags requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TagEditInput' responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/{id}/remove: parameters: - name: id in: path description: Tag ID. required: true schema: type: integer delete: operationId: deleteTagsIdRemove summary: Delete a tag description: Deletes a tag. The sites that carried it stay connected. tags: - Tags responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/tags/{id}/sites: parameters: - name: id in: path description: Tag ID. required: true schema: type: integer get: operationId: getTagsIdSites summary: List sites in a tag description: Lists the sites assigned to a tag. tags: - Tags responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker: x-requires-extension: MainWP Time Tracker get: operationId: getTimeTracker summary: List time tracker tasks description: Lists the tracked tasks across clients and sites. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/buckets: x-requires-extension: MainWP Time Tracker get: operationId: getTimeTrackerBuckets summary: List buckets description: Lists the time buckets across clients. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/buckets/{id}: x-requires-extension: MainWP Time Tracker parameters: - name: id in: path description: Bucket ID. required: true schema: type: integer get: operationId: getTimeTrackerBucketsId summary: Get one bucket description: Returns one time bucket with its balance. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/clients: x-requires-extension: MainWP Time Tracker get: operationId: getTimeTrackerClients summary: List Time Tracker clients description: Lists the clients that Time Tracker holds data for. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/clients/{id_email}: x-requires-extension: MainWP Time Tracker parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getTimeTrackerClientsIdEmail summary: Get one Time Tracker client description: Returns the Time Tracker record for one client. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/clients/{id_email}/buckets: x-requires-extension: MainWP Time Tracker parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getTimeTrackerClientsIdEmailBuckets summary: List buckets for one client description: Lists the time buckets that belong to one client. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/clients/{id_email}/settings: x-requires-extension: MainWP Time Tracker parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getTimeTrackerClientsIdEmailSettings summary: Get Time Tracker settings for one client description: Returns the Time Tracker settings that apply to one client. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/clients/{id_email}/tasks: x-requires-extension: MainWP Time Tracker parameters: - name: id_email in: path description: Client ID or email. required: true schema: type: string get: operationId: getTimeTrackerClientsIdEmailTasks summary: List tasks for one client description: Lists the tracked tasks that belong to one client. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/settings: x-requires-extension: MainWP Time Tracker get: operationId: getTimeTrackerSettings summary: Get Time Tracker settings description: Returns the Time Tracker settings that apply to every client. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/sites/{id_domain}/tasks: x-requires-extension: MainWP Time Tracker parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getTimeTrackerSitesIdDomainTasks summary: List tasks for one site description: Lists the tracked tasks that belong to one site. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/tasks/add: x-requires-extension: MainWP Time Tracker post: operationId: postTimeTrackerTasksAdd summary: Create a task description: Creates a time tracker task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker requestBody: required: true content: application/json: schema: type: object description: Task fields. The Time Tracker extension defines which fields are accepted. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/tasks/{id}: x-requires-extension: MainWP Time Tracker parameters: - name: id in: path description: Task ID. required: true schema: type: integer get: operationId: getTimeTrackerTasksId summary: Get one task description: Returns one task with its recorded time. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/tasks/{id}/edit: x-requires-extension: MainWP Time Tracker parameters: - name: id in: path description: Task ID. required: true schema: type: integer post: operationId: postTimeTrackerTasksIdEdit summary: Update a task description: Updates a time tracker task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker requestBody: required: true content: application/json: schema: type: object description: Task fields to change. The Time Tracker extension defines which fields are accepted. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putTimeTrackerTasksIdEdit summary: Update a task description: Updates a time tracker task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker requestBody: required: true content: application/json: schema: type: object description: Task fields to change. The Time Tracker extension defines which fields are accepted. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchTimeTrackerTasksIdEdit summary: Update a task description: Updates a time tracker task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker requestBody: required: true content: application/json: schema: type: object description: Task fields to change. The Time Tracker extension defines which fields are accepted. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/tasks/{id}/pause: x-requires-extension: MainWP Time Tracker parameters: - name: id in: path description: Task ID. required: true schema: type: integer post: operationId: postTimeTrackerTasksIdPause summary: Pause a task timer description: Pauses the timer on a task and keeps the time recorded so far. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putTimeTrackerTasksIdPause summary: Pause a task timer description: Pauses the timer on a task and keeps the time recorded so far. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchTimeTrackerTasksIdPause summary: Pause a task timer description: Pauses the timer on a task and keeps the time recorded so far. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/tasks/{id}/start: x-requires-extension: MainWP Time Tracker parameters: - name: id in: path description: Task ID. required: true schema: type: integer post: operationId: postTimeTrackerTasksIdStart summary: Start a task timer description: Starts the timer on a task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putTimeTrackerTasksIdStart summary: Start a task timer description: Starts the timer on a task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchTimeTrackerTasksIdStart summary: Start a task timer description: Starts the timer on a task. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/time-tracker/tasks/{id}/stop: x-requires-extension: MainWP Time Tracker parameters: - name: id in: path description: Task ID. required: true schema: type: integer post: operationId: postTimeTrackerTasksIdStop summary: Stop a task timer description: Stops the timer on a task and closes the current time entry. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putTimeTrackerTasksIdStop summary: Stop a task timer description: Stops the timer on a task and closes the current time entry. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchTimeTrackerTasksIdStop summary: Stop a task timer description: Stops the timer on a task and closes the current time entry. Requires the MainWP Time Tracker extension on the Dashboard. tags: - Time Tracker responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates: get: operationId: getUpdates summary: List available updates description: Lists the pending core, plugin, theme, and translation updates for every site, keyed by site ID. tags: - Updates parameters: - name: type in: query description: Update types to return, comma separated. Accepts `all`, `wp`, `plugins`, `themes`, and `translations`. required: false schema: type: string - name: search in: query description: Return only records matching this string. required: false schema: type: string - name: include in: query description: Comma separated list of IDs to limit the result set to. required: false schema: type: string - name: exclude in: query description: Comma separated list of IDs to leave out of the result set. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/ignored: get: operationId: getUpdatesIgnored summary: List ignored updates description: Lists the plugin and theme updates ignored across the whole Dashboard. tags: - Updates parameters: - name: type in: query description: Update types to return, comma separated. Accepts `all`, `plugins`, and `themes`. required: false schema: type: string - name: search in: query description: Return only records matching this string. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/update: post: operationId: postUpdatesUpdate summary: Run updates on all sites description: Starts the pending updates across every site. The response carries a `job_id` and `queued_count` when the Dashboard queues the work. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: Update types to run, comma separated. Accepts `all`, `wp`, `plugins`, `themes`, and `translations`. responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/UpdateRunStarted' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesUpdate summary: Run updates on all sites description: Starts the pending updates across every site. The response carries a `job_id` and `queued_count` when the Dashboard queues the work. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: Update types to run, comma separated. Accepts `all`, `wp`, `plugins`, `themes`, and `translations`. responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/UpdateRunStarted' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesUpdate summary: Run updates on all sites description: Starts the pending updates across every site. The response carries a `job_id` and `queued_count` when the Dashboard queues the work. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: Update types to run, comma separated. Accepts `all`, `wp`, `plugins`, `themes`, and `translations`. responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/UpdateRunStarted' - $ref: '#/components/schemas/QueuedAction' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getUpdatesIdDomain summary: List available updates for one site description: Lists the pending updates for one site. tags: - Updates parameters: - name: type in: query description: Update types to return, comma separated. Accepts `all`, `wp`, `plugins`, `themes`, and `translations`. required: false schema: type: string - name: search in: query description: Return only records matching this string. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/ignore/plugins: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainIgnorePlugins summary: Ignore plugin updates on one site description: Hides plugin updates for one site. Send `slug` to ignore named plugins, or leave it out to ignore every plugin update on the site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to ignore, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainIgnorePlugins summary: Ignore plugin updates on one site description: Hides plugin updates for one site. Send `slug` to ignore named plugins, or leave it out to ignore every plugin update on the site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to ignore, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainIgnorePlugins summary: Ignore plugin updates on one site description: Hides plugin updates for one site. Send `slug` to ignore named plugins, or leave it out to ignore every plugin update on the site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to ignore, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/ignore/themes: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainIgnoreThemes summary: Ignore theme updates on one site description: Hides theme updates for one site. Send `slug` to ignore named themes, or leave it out to ignore every theme update on the site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slugs to ignore, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainIgnoreThemes summary: Ignore theme updates on one site description: Hides theme updates for one site. Send `slug` to ignore named themes, or leave it out to ignore every theme update on the site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slugs to ignore, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainIgnoreThemes summary: Ignore theme updates on one site description: Hides theme updates for one site. Send `slug` to ignore named themes, or leave it out to ignore every theme update on the site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slugs to ignore, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/ignore/wp: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainIgnoreWp summary: Ignore the core update on one site description: Hides the pending WordPress core update for one site until a newer version ships. tags: - Updates responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainIgnoreWp summary: Ignore the core update on one site description: Hides the pending WordPress core update for one site until a newer version ships. tags: - Updates responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainIgnoreWp summary: Ignore the core update on one site description: Hides the pending WordPress core update for one site until a newer version ships. tags: - Updates responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/ignored: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getUpdatesIdDomainIgnored summary: List ignored updates for one site description: Lists the updates ignored for one site, including the entries ignored Dashboard-wide. tags: - Updates parameters: - name: type in: query description: Update types to return, comma separated. Accepts `all`, `plugins`, and `themes`. required: false schema: type: string - name: search in: query description: Return only records matching this string. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/update: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainUpdate summary: Run updates on one site description: Starts the pending updates on one site. The response carries a `job_id` when the Dashboard queues the work. tags: - Updates responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/UpdateRunStarted' - $ref: '#/components/schemas/QueuedAction' '400': description: The site is suspended. Unsuspend it before running updates. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainUpdate summary: Run updates on one site description: Starts the pending updates on one site. The response carries a `job_id` when the Dashboard queues the work. tags: - Updates responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/UpdateRunStarted' - $ref: '#/components/schemas/QueuedAction' '400': description: The site is suspended. Unsuspend it before running updates. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainUpdate summary: Run updates on one site description: Starts the pending updates on one site. The response carries a `job_id` when the Dashboard queues the work. tags: - Updates responses: '200': description: Success. The shape depends on whether the Dashboard ran the work inline or queued it. content: application/json: schema: oneOf: - $ref: '#/components/schemas/UpdateRunStarted' - $ref: '#/components/schemas/QueuedAction' '400': description: The site is suspended. Unsuspend it before running updates. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/update/plugins: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainUpdatePlugins summary: Update plugins on one site description: Updates plugins on one site. Send `slug` to pick specific plugins, or leave it out to update every plugin with an update pending. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainUpdatePlugins summary: Update plugins on one site description: Updates plugins on one site. Send `slug` to pick specific plugins, or leave it out to update every plugin with an update pending. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainUpdatePlugins summary: Update plugins on one site description: Updates plugins on one site. Send `slug` to pick specific plugins, or leave it out to update every plugin with an update pending. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Plugin file paths to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/update/themes: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainUpdateThemes summary: Update themes on one site description: Updates themes on one site. Send `slug` to pick specific themes, or leave it out to update every theme with an update pending. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slugs to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainUpdateThemes summary: Update themes on one site description: Updates themes on one site. Send `slug` to pick specific themes, or leave it out to update every theme with an update pending. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slugs to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainUpdateThemes summary: Update themes on one site description: Updates themes on one site. Send `slug` to pick specific themes, or leave it out to update every theme with an update pending. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Theme slugs to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/update/translations: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainUpdateTranslations summary: Update translations on one site description: Updates translation files on one site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Translation slugs to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainUpdateTranslations summary: Update translations on one site description: Updates translation files on one site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Translation slugs to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainUpdateTranslations summary: Update translations on one site description: Updates translation files on one site. tags: - Updates requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: Translation slugs to update, comma separated for several. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/updates/{id_domain}/update/wp: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postUpdatesIdDomainUpdateWp summary: Update WordPress core on one site description: Runs the pending WordPress core update on one site. tags: - Updates responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putUpdatesIdDomainUpdateWp summary: Update WordPress core on one site description: Runs the pending WordPress core update on one site. tags: - Updates responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUpdatesIdDomainUpdateWp summary: Update WordPress core on one site description: Runs the pending WordPress core update on one site. tags: - Updates responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/users: get: operationId: getUsers summary: List users across sites description: Lists users from the selected sites. Users are read from each child site while the request runs. tags: - Users parameters: - name: clients in: query description: Search by clients. required: false schema: type: string - name: groups in: query description: Search by tags. required: false schema: type: string - name: roles in: query description: Search by roles. required: false schema: type: array items: type: string enum: - administrator - subscriber - editor - author - contributor - name: search in: query description: Search by user name. required: false schema: type: string - name: websites in: query description: Websites child site field IDs. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/users/create: post: operationId: postUsersCreate summary: Create a user on selected sites description: Creates the same user account on every selected site and reports which sites succeeded. tags: - Users requestBody: required: true content: application/json: schema: type: object properties: clients: type: string description: Search by clients. email: type: string description: Email. first_name: type: string description: First name. groups: type: string description: Search by tags. last_name: type: string description: Last name. password: type: string description: Password. role: type: string enum: - administrator - subscriber - editor - author - contributor description: Role to assign on each target site. send_password: type: boolean description: Send password. user_url: type: string description: User website. username: type: string description: Username. websites: type: string description: Websites child site field IDs. required: - email - username responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/users/import: post: operationId: postUsersImport summary: Import users from a CSV file description: Creates users from an uploaded CSV file. Send the request as `multipart/form-data`. The response is an import report and has no `success` key. tags: - Users requestBody: required: true content: multipart/form-data: schema: type: object properties: csv_file: type: string format: binary description: CSV file holding one user per row. has_header: type: boolean default: true description: Skip the first row of the file as a header row. required: - csv_file responses: '200': description: The import report. content: application/json: schema: $ref: '#/components/schemas/UserImportReport' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/users/update-admin-password: put: operationId: putUsersUpdateAdminPassword summary: Update administrator passwords description: Sets a new password for the administrator account MainWP uses on each selected site. tags: - Users requestBody: required: true content: application/json: schema: type: object properties: clients: type: string description: Search by clients. groups: type: string description: Search by tags. password: type: string description: Password. websites: type: string description: Websites child site field IDs. required: - password responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUsersUpdateAdminPassword summary: Update administrator passwords description: Sets a new password for the administrator account MainWP uses on each selected site. tags: - Users requestBody: required: true content: application/json: schema: type: object properties: clients: type: string description: Search by clients. groups: type: string description: Search by tags. password: type: string description: Password. websites: type: string description: Websites child site field IDs. required: - password responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/users/{id_domain}/{user_id}/delete: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: user_id in: path description: User ID on the child site. required: true schema: type: integer delete: operationId: deleteUsersIdDomainUserIdDelete summary: Delete a user from one site description: Deletes one user from one site. Content owned by the user is handled by WordPress on the child site. tags: - Users responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/users/{id_domain}/{user_id}/edit: parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: user_id in: path description: User ID on the child site. required: true schema: type: integer put: operationId: putUsersIdDomainUserIdEdit summary: Update a user on one site description: Updates the profile fields of one user on one site. tags: - Users requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Description. display_name: type: string description: Display name. email: type: string description: Email. first_name: type: string description: First name. last_name: type: string description: Last name. nickname: type: string description: Nickname. password: type: string description: Password. role: type: string enum: - administrator - subscriber - editor - author - contributor description: Role to assign on each target site. user_url: type: string description: User website. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchUsersIdDomainUserIdEdit summary: Update a user on one site description: Updates the profile fields of one user on one site. tags: - Users requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Description. display_name: type: string description: Display name. email: type: string description: Email. first_name: type: string description: First name. last_name: type: string description: Last name. nickname: type: string description: Nickname. password: type: string description: Password. role: type: string enum: - administrator - subscriber - editor - author - contributor description: Role to assign on each target site. user_url: type: string description: User website. responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/domain-monitor/profiles: x-requires-extension: MainWP Domain Monitor get: operationId: getDomainMonitorProfiles summary: List domain profiles for all sites description: Returns the registration and expiry data the extension recorded for every monitored domain. Requires the MainWP Domain Monitor extension on the Dashboard. tags: - Domain Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/domain-monitor/profiles/{id_domain}: x-requires-extension: MainWP Domain Monitor parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getDomainMonitorProfilesIdDomain summary: Get the domain profile for one site description: Returns the registration and expiry data the extension recorded for one domain. Requires the MainWP Domain Monitor extension on the Dashboard. tags: - Domain Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/domain-monitor/{id_domain}: x-requires-extension: MainWP Domain Monitor parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postDomainMonitorIdDomain summary: Run a domain check for one site description: Looks up the domain registration for one site now and stores the result. Requires the MainWP Domain Monitor extension on the Dashboard. tags: - Domain Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putDomainMonitorIdDomain summary: Run a domain check for one site description: Looks up the domain registration for one site now and stores the result. Requires the MainWP Domain Monitor extension on the Dashboard. tags: - Domain Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchDomainMonitorIdDomain summary: Run a domain check for one site description: Looks up the domain registration for one site now and stores the result. Requires the MainWP Domain Monitor extension on the Dashboard. tags: - Domain Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/lighthouse/audit: x-requires-extension: MainWP Lighthouse post: operationId: postLighthouseAudit summary: Run Lighthouse audits for all sites description: Starts a Lighthouse audit for every site the extension supports. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putLighthouseAudit summary: Run Lighthouse audits for all sites description: Starts a Lighthouse audit for every site the extension supports. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchLighthouseAudit summary: Run Lighthouse audits for all sites description: Starts a Lighthouse audit for every site the extension supports. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/lighthouse/audit/{id_domain}: x-requires-extension: MainWP Lighthouse parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postLighthouseAuditIdDomain summary: Run a Lighthouse audit for one site description: Starts a Lighthouse audit for one site. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putLighthouseAuditIdDomain summary: Run a Lighthouse audit for one site description: Starts a Lighthouse audit for one site. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchLighthouseAuditIdDomain summary: Run a Lighthouse audit for one site description: Starts a Lighthouse audit for one site. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/lighthouse/results: x-requires-extension: MainWP Lighthouse get: operationId: getLighthouseResults summary: List Lighthouse results for all sites description: Returns the stored performance, accessibility, best practice, and SEO scores for every audited site. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/lighthouse/results/{id_domain}: x-requires-extension: MainWP Lighthouse parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getLighthouseResultsIdDomain summary: Get Lighthouse results for one site description: Returns the stored Lighthouse scores for one site. Requires the MainWP Lighthouse extension on the Dashboard. tags: - Lighthouse responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/pro-reports/{id_domain}/{report}: x-requires-extension: MainWP Pro Reports parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string - name: report in: path description: Report data set to return. required: true schema: type: string enum: - plugins - themes - wordpress - posts - pages - users - comments - menus - media - widgets - backups - maintenance - sucuri - wordfence - ithemes - virusdie - domainmonitor - sslmonitor - pagespeed - woocomstatus - vulnerable - ga - matomo - lighthouse - aum - uptime - atarim - protect - scan - website - abandoned - pending - misc - multi-tokens get: operationId: getProReportsIdDomainReport summary: Get one Pro Reports data set description: Returns the activity records behind one Pro Reports section for a site and date range. The `report` path segment selects the data set. Requires the MainWP Pro Reports extension on the Dashboard. tags: - Pro Reports parameters: - name: start_date in: query description: Start of the range in `Y-m-d` format. When either date is missing, the range defaults to the last year. required: false schema: type: string - name: end_date in: query description: End of the range in `Y-m-d` format. When either date is missing, the range defaults to the last year. required: false schema: type: string - name: action in: query description: Activity action to filter on. Which actions apply depends on the report. required: false schema: type: string - name: format in: query description: Response format. required: false schema: type: string - name: multi_tokens in: query description: Report template content whose tokens the Dashboard resolves, for example `[client.name]`. Required when `report` is `multi-tokens`; ignored by every other report. required: false schema: type: string responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/ssl-monitor/info: x-requires-extension: MainWP SSL Monitor get: operationId: getSslMonitorInfo summary: List SSL status for all sites description: Returns the certificate status the extension recorded for every monitored site. Requires the MainWP SSL Monitor extension on the Dashboard. tags: - SSL Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/ssl-monitor/info/{id_domain}: x-requires-extension: MainWP SSL Monitor parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string get: operationId: getSslMonitorInfoIdDomain summary: Get SSL status for one site description: Returns the certificate status the extension recorded for one site. Requires the MainWP SSL Monitor extension on the Dashboard. tags: - SSL Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/Success' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' /wp-json/mainwp/v2/ssl-monitor/{id_domain}: x-requires-extension: MainWP SSL Monitor parameters: - name: id_domain in: path description: Site ID or domain. required: true schema: type: string post: operationId: postSslMonitorIdDomain summary: Run an SSL check for one site description: Checks the certificate on one site now and stores the result. Requires the MainWP SSL Monitor extension on the Dashboard. tags: - SSL Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: putSslMonitorIdDomain summary: Run an SSL check for one site description: Checks the certificate on one site now and stores the result. Requires the MainWP SSL Monitor extension on the Dashboard. tags: - SSL Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' patch: operationId: patchSslMonitorIdDomain summary: Run an SSL check for one site description: Checks the certificate on one site now and stores the result. Requires the MainWP SSL Monitor extension on the Dashboard. tags: - SSL Monitor responses: '200': description: Success. content: application/json: schema: $ref: '#/components/schemas/SuccessMessage' '401': description: The API key is missing, malformed, or disabled, or does not carry the permission this method needs. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No record matches the identifier in the path. content: application/json: schema: $ref: '#/components/schemas/Error' components: securitySchemes: bearerAuth: type: http scheme: bearer description: 'API key created under MainWP Dashboard > API Access > API Keys, sent as `Authorization: Bearer `.' schemas: Success: type: object description: Standard success envelope. The shape of `data` depends on the endpoint, and list endpoints add `total`. properties: success: type: integer enum: - 0 - 1 description: 1 when the call succeeded. Some routes report a failed action as 0 inside an HTTP 200 response. message: type: string description: Human readable result, present on most write calls. data: description: Payload the route returns. total: type: integer description: Number of records in the full result set. pages: type: integer description: Number of pages in the full result set. required: - success SuccessMessage: type: object description: Success envelope for calls that return no payload. properties: success: type: integer enum: - 0 - 1 description: 1 when the call succeeded. Some routes report a failed action as 0 inside an HTTP 200 response. message: type: string description: Human readable result. required: - success QueuedAction: type: object description: Returned when the Dashboard queues the work instead of running it inline. Job status is exposed through the `mainwp/get-batch-job-status-v1` ability on the WordPress Abilities API, which uses WordPress authentication rather than the MainWP API key; no MainWP REST API v2 route serves it. properties: success: type: integer enum: - 1 message: type: string description: Human readable result. job_id: type: string description: Job identifier to pass to the `mainwp/get-batch-job-status-v1` ability. queued_count: type: integer description: Number of items placed on the queue. total: type: integer description: Number of items the call covered. required: - success UpdateRunStarted: type: object description: Returned when an update run starts inline. properties: success: type: integer enum: - 1 message: type: string description: Human readable result. last_time_start_batch_updates: type: string description: When the Dashboard last started a batch update run. summary: description: Per-site outcome, present when the run finished inline. site: description: The site the run covered, on the per-site route. required: - success Error: type: object description: WordPress REST API error body. properties: code: type: string description: Machine readable error code. message: type: string description: Human readable error text. data: type: object properties: status: type: integer description: HTTP status code. required: - code - message SitesCount: type: object description: Bare count response. This route does not send the `success` key. properties: count: type: integer description: Number of matching sites. TotalCount: type: object properties: success: type: integer enum: - 1 total: type: integer description: Number of matching records. CountResult: type: object properties: success: type: integer enum: - 0 - 1 description: 1 when the count was produced, 0 when the monitor or its data could not be found. count: type: integer description: Number of matching records. SiteRecord: type: object description: Bare site response. This route does not send the `success` key. properties: data: type: object description: The stored site record. BulkSiteResult: type: object description: Per-site outcome of a fleet-wide action. This shape does not carry the `success` key. properties: total: type: integer description: Number of sites the action covered. data: type: object description: Outcome per site, keyed by site ID. additionalProperties: {} BatchResult: type: object description: Per-item results keyed by action group, for example `create`, `update`, and `delete`. Failed items carry an `error` object in place of the record. additionalProperties: {} ApiKeyCreated: type: object properties: success: type: integer enum: - 1 message: type: string description: Human readable result. token: type: string description: The bearer token. Shown once and not retrievable later. UserImportReport: type: object description: Result of a CSV import. This route does not send the `success` key. properties: total: type: integer description: Rows read from the file. success_count: type: integer description: Rows that created a user. failed_count: type: integer description: Rows that failed. success_users: type: array description: Created users, with the row each came from. items: type: object failed_users: type: array description: Failed rows, each with the reason. items: type: object DestroySessionsStarted: type: object description: Acknowledgement that the destroy sessions job was queued. properties: success: type: integer enum: - 1 message: type: string description: Human readable result. destroy_id: type: string description: Identifier to poll the status route with. status_url: type: string format: uri description: Full URL of the status route for this job. RenewConnectionsStarted: type: object description: Acknowledgement that the renew connections job was queued. properties: success: type: integer enum: - 1 message: type: string description: Human readable result. renew_id: type: string description: Identifier to poll the status route with. status_url: type: string format: uri description: Full URL of the status route for this job. DisconnectAllSitesStarted: type: object description: Acknowledgement that the disconnect all sites job was queued. properties: success: type: integer enum: - 1 message: type: string description: Human readable result. disconnect_id: type: string description: Identifier to poll the status route with. status_url: type: string format: uri description: Full URL of the status route for this job. ToolJobStatus: type: object description: Progress of a background maintenance job. properties: success: type: boolean status: type: string description: Current job state. total: type: integer description: Items the job covers. processed: type: integer description: Items handled so far. failed: type: integer description: Items that failed. progress: type: number description: Completion as a percentage. errors: type: array description: Errors recorded so far. items: type: object properties: site_id: type: integer description: Site the error belongs to. error: type: string description: Error text. started_at: type: - string - 'null' description: Reserved. Current Dashboard versions return an empty string or null. completed_at: type: - integer - string - 'null' description: Unix timestamp of when the job finished. An empty string or null while the job is still running. ClientBatchUpdateItem: type: object description: One client update inside a batch request. The client is looked up by `id`. properties: id: type: integer description: ID of the record to update. name: type: string description: Client name. client_email: type: string format: email description: Primary contact email. client_phone: type: string description: Primary contact phone number. address_1: type: string description: Street address, first line. address_2: type: string description: Street address, second line. city: type: string description: City. state: type: string description: State or region. zip: type: string description: Postal code. country: type: string description: Country. note: type: string description: Free-form note stored with the client. client_facebook: type: string description: Facebook profile URL. client_twitter: type: string description: X, formerly Twitter, profile URL. client_instagram: type: string description: Instagram profile URL. client_linkedin: type: string description: LinkedIn profile URL. primary_contact_id: type: integer description: Contact record to use as the primary contact. selected_sites: type: array items: type: integer description: Site IDs assigned to the client. Replaces the current assignment. required: - id ClientCreateInput: type: object description: Fields for a new client record. properties: name: type: string description: Client name. client_email: type: string format: email description: Primary contact email. client_phone: type: string description: Primary contact phone number. address_1: type: string description: Street address, first line. address_2: type: string description: Street address, second line. city: type: string description: City. state: type: string description: State or region. zip: type: string description: Postal code. country: type: string description: Country. note: type: string description: Free-form note stored with the client. client_facebook: type: string description: Facebook profile URL. client_twitter: type: string description: X, formerly Twitter, profile URL. client_instagram: type: string description: Instagram profile URL. client_linkedin: type: string description: LinkedIn profile URL. primary_contact_id: type: integer description: Contact record to use as the primary contact. selected_sites: type: array items: type: integer description: Site IDs to assign to the client. required: - name ClientEditInput: type: object description: Fields on an existing client record. Send only the fields you want to change. properties: name: type: string description: Client name. client_email: type: string format: email description: Primary contact email. client_phone: type: string description: Primary contact phone number. address_1: type: string description: Street address, first line. address_2: type: string description: Street address, second line. city: type: string description: City. state: type: string description: State or region. zip: type: string description: Postal code. country: type: string description: Country. note: type: string description: Free-form note stored with the client. client_facebook: type: string description: Facebook profile URL. client_twitter: type: string description: X, formerly Twitter, profile URL. client_instagram: type: string description: Instagram profile URL. client_linkedin: type: string description: LinkedIn profile URL. primary_contact_id: type: integer description: Contact record to use as the primary contact. selected_sites: type: array items: type: integer description: Site IDs assigned to the client. Replaces the current assignment. CostBatchUpdateItem: type: object description: One cost update inside a batch request. The record is looked up by `id`. properties: id: type: integer description: ID of the record to update. name: type: string description: Cost name. price: type: number description: Amount charged per renewal period. payment_type: type: string enum: - subscription - lifetime description: Payment type. product_type: type: string description: Product type slug, as listed by `GET /settings/cost-tracker`. license_type: type: string description: Licence type. cost_tracker_status: type: string description: Record status. product_color: type: string description: Hex colour used for the record in the interface. payment_method: type: string description: Payment method slug, as listed by `GET /settings/cost-tracker`. renewal_type: type: string description: Renewal period. last_renewal: type: string description: Date of the last renewal. Any format `strtotime()` accepts. sites: type: array items: type: integer description: Site IDs the cost applies to. groups: type: array items: type: integer description: Tag IDs the cost applies to. clients: type: array items: type: integer description: Client IDs the cost applies to. product_slug: type: string description: Slug of the product the cost covers. url: type: string format: uri description: Link to the vendor or product page. note: type: string description: Free-form note stored with the record. icon_hidden: type: string description: Icon shown against the record. required: - cost_tracker_status - id - license_type - name - payment_method - payment_type - price - product_color - product_type - renewal_type CostInput: type: object description: Fields for a cost record. properties: name: type: string description: Cost name. price: type: number description: Amount charged per renewal period. payment_type: type: string enum: - subscription - lifetime description: Payment type. product_type: type: string description: Product type slug, as listed by `GET /settings/cost-tracker`. license_type: type: string description: Licence type. cost_tracker_status: type: string description: Record status. product_color: type: string description: Hex colour used for the record in the interface. payment_method: type: string description: Payment method slug, as listed by `GET /settings/cost-tracker`. renewal_type: type: string description: Renewal period. last_renewal: type: string description: Date of the last renewal. Any format `strtotime()` accepts. sites: type: array items: type: integer description: Site IDs the cost applies to. groups: type: array items: type: integer description: Tag IDs the cost applies to. clients: type: array items: type: integer description: Client IDs the cost applies to. product_slug: type: string description: Slug of the product the cost covers. url: type: string format: uri description: Link to the vendor or product page. note: type: string description: Free-form note stored with the record. icon_hidden: type: string description: Icon shown against the record. required: - cost_tracker_status - license_type - name - payment_method - payment_type - price - product_color - product_type - renewal_type SiteBatchUpdateItem: type: object description: One site update inside a batch request. The site is looked up by `id`. properties: id: type: integer description: ID of the record to update. name: type: string description: Name to show for the site in the Dashboard. adminname: type: string description: Administrator username on the child site. groupids: type: string description: Comma separated tag IDs the site belongs to. client_id: type: integer description: Client the site belongs to. uniqueid: type: string writeOnly: true description: Unique Security ID configured on the child site. http_user: type: string writeOnly: true description: Username for HTTP Basic authentication in front of the child site. http_pass: type: string writeOnly: true description: Password for HTTP Basic authentication in front of the child site. protocol: type: string description: Scheme used to reach the site. sslversion: type: string description: SSL version to force for requests to this site. force_use_ipv4: type: boolean description: Force IPv4 for requests to this site. disablehealthchecking: type: integer enum: - 0 - 1 description: Set to 1 to stop running site health checks. healththreshold: type: integer description: Health score below which the site counts as unhealthy. suspended: type: integer enum: - 0 - 1 description: Set to 1 to suspend the site. automatic_update: type: integer enum: - 0 - 1 description: Set to 1 to include the site in automatic updates. backup_before_upgrade: type: integer description: Set to 1 to run a backup before updates. ignore_core_updates: type: integer enum: - 0 - 1 description: Set to 1 to hide pending core updates for this site. ignore_plugin_updates: type: integer enum: - 0 - 1 description: Set to 1 to hide pending plugin updates for this site. ignore_theme_updates: type: integer enum: - 0 - 1 description: Set to 1 to hide pending theme updates for this site. monitoring_emails: type: string description: Comma separated addresses that receive monitoring notices for this site. required: - id SiteCreateInput: type: object description: Connection details for a site being added to the Dashboard. properties: url: type: string format: uri description: URL of the child site, including the scheme. admin: type: string description: Administrator username on the child site. adminpassword: type: string writeOnly: true description: Administrator password, required when the child site uses Password Authentication. uniqueid: type: string writeOnly: true description: Unique Security ID, required when the child site has one set. name: type: string description: Name to show for the site in the Dashboard. groupids: type: string description: Comma separated tag IDs to assign the site to. client_id: type: integer description: Client to assign the site to. ssl_verify: type: boolean description: Verify the SSL certificate of the child site. force_use_ipv4: type: boolean description: Force IPv4 for requests to this site. http_user: type: string writeOnly: true description: Username for HTTP Basic authentication in front of the child site. http_pass: type: string writeOnly: true description: Password for HTTP Basic authentication in front of the child site. required: - admin - url SiteEditInput: type: object description: Dashboard-side settings for an existing site. Send only the fields you want to change. properties: name: type: string description: Name to show for the site in the Dashboard. adminname: type: string description: Administrator username on the child site. groupids: type: string description: Comma separated tag IDs the site belongs to. client_id: type: integer description: Client the site belongs to. uniqueid: type: string writeOnly: true description: Unique Security ID configured on the child site. http_user: type: string writeOnly: true description: Username for HTTP Basic authentication in front of the child site. http_pass: type: string writeOnly: true description: Password for HTTP Basic authentication in front of the child site. protocol: type: string description: Scheme used to reach the site. sslversion: type: string description: SSL version to force for requests to this site. force_use_ipv4: type: boolean description: Force IPv4 for requests to this site. disablehealthchecking: type: integer enum: - 0 - 1 description: Set to 1 to stop running site health checks. healththreshold: type: integer description: Health score below which the site counts as unhealthy. suspended: type: integer enum: - 0 - 1 description: Set to 1 to suspend the site. automatic_update: type: integer enum: - 0 - 1 description: Set to 1 to include the site in automatic updates. backup_before_upgrade: type: integer description: Set to 1 to run a backup before updates. ignore_core_updates: type: integer enum: - 0 - 1 description: Set to 1 to hide pending core updates for this site. ignore_plugin_updates: type: integer enum: - 0 - 1 description: Set to 1 to hide pending plugin updates for this site. ignore_theme_updates: type: integer enum: - 0 - 1 description: Set to 1 to hide pending theme updates for this site. monitoring_emails: type: string description: Comma separated addresses that receive monitoring notices for this site. TagBatchUpdateItem: type: object description: One tag update inside a batch request. The tag is looked up by `id`. properties: id: type: integer description: ID of the record to update. name: type: string description: Tag name. color: type: string description: Hex colour used for the tag in the interface, for example `#7fb100`. required: - id TagCreateInput: type: object description: Fields for a new tag. properties: name: type: string description: Tag name. color: type: string description: Hex colour used for the tag in the interface, for example `#7fb100`. required: - name TagEditInput: type: object description: Fields on an existing tag. properties: name: type: string description: Tag name. color: type: string description: Hex colour used for the tag in the interface, for example `#7fb100`.