---
title: "Choose what moves from a WordPress site"
method: PUT
path: "/wordpress/connections/{id}/selection"
tags: ["WordPress"]
---

# Choose what moves from a WordPress site

`PUT /wordpress/connections/{id}/selection`

## Request

- Base URL: `https://api.hypamoon.com/api/v1`
- URL: `https://api.hypamoon.com/api/v1/wordpress/connections/{id}/selection`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.hypamoon.com/oauth/authorize`, token URL `https://api.hypamoon.com/oauth/token`, scopes: `data:write`)

Per inventory key: on or off, a period (since, until), which statuses for content, and fields to leave out (like phone or ip). Keys you leave out keep their choice. Send version (from the inventory) so you never overwrite a choice the user made meanwhile in WordPress or the portal (409). The plugin shows the same selection and sends only that, in rounds; a later round adds or updates without connecting again.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `items` object: Per inventory key (like content:post, orders or form_entries:wpforms:12) what moves. Keys you leave out keep their current choice.
  - `version` integer, nullable: The selection version you showed the user (selection.version). If it changed meanwhile, nothing changes (409). Leave it out to change it anyway.
  - `from_suggestion` boolean, nullable: true: apply the open suggestion of suggest_wordpress_selection (items, if given, go on top of it).
  - `include_personal_data` boolean, nullable: Only after the user explicitly said yes to the question this route returns (409 with question): true turns on the kinds of data with personal data in this change; false leaves them off and saves the rest.
  - `confirm_text` string, nullable: With include_personal_data true: the user's answer to the question, word for word. It is kept in the audit log.
  - `start_round` boolean, nullable: true: Hypamoon wakes the plugin right away (plugin 1.4.2 and later, plugin_woken in the answer) and it starts sending this selection; otherwise it starts the next time it checks in (when the admin opens Tools > Hypamoon, or within a few minutes by WP-cron).

## Response `200`

The new selection, with its version.

## Other responses

- `400`: Bad Request: invalid_json.
- `401`: Unauthorized: unauthorized, missing_api_key, invalid_api_key, api_key_revoked, project_deleted.
- `403`: Forbidden: project_not_enabled, key_mode_mismatch, missing_scope, verification_required.
- `404`: Not Found: not_found.
- `409`: Conflict: conflict.
- `422`: Unprocessable Content: validation_failed.
- `429`: Too Many Requests: rate_limited.
- `500`: Internal Server Error: internal_error.
- `503`: Service Unavailable: service_unavailable.

---

[API](https://skmtc.dev/hypamoon/apis/hypamoon-api.md) · [All operations](https://skmtc.dev/hypamoon/apis/hypamoon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hypamoon/apis/hypamoon-api/revisions/9f0b90004c06?raw)
