---
title: "Send a batch (plugin)"
method: POST
path: "/wordpress/exports/{id}/batches"
tags: ["WordPress"]
---

# Send a batch (plugin)

`POST /wordpress/exports/{id}/batches`

## Request

- Base URL: `https://api.hypamoon.com/api/v1`
- URL: `https://api.hypamoon.com/api/v1/wordpress/exports/{id}/batches`
- Auth: HTTP bearer

Called by the plugin: at most 200 records and 3 MB per batch, 50000 records and 200 MB per round, 120 requests per minute. Every record has wp_id; the same record in a later round updates its document. A batch key that was already received changes nothing (duplicate: true). The selection is applied again here: what is not selected, outside the period or in omit_fields is not stored. Passwords, hashes and tokens are always removed.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `batch` string, required: A key for this batch, unique and deterministic within the round, like content:post:after:0. The same key again changes nothing.
  - `key` string, required: The inventory key, like content:post, orders or form_entries:wpforms:12.
  - `type` 'content' | 'media' | 'menus' | 'terms' | 'acf_field_groups' | 'acf_options' | 'form_entries' | 'products' | 'orders' | 'customers' | 'users' | 'coupons' | 'shipping' | 'tax' | 'reviews' | 'subscriptions' | 'table' | 'options', required: The kind of data, the first part of key.
  - `form` object, nullable: Only for form_entries: the form.
    - `plugin` string, required
    - `id` union, required
      - string
      - integer
    - `title` string, nullable
  - `records` unknown[], required: At most 200 records, each with wp_id.
    - unknown

## Response `200`

What was stored: received, created, updated, skipped (with reasons), the collections and the totals of the round.

## Other responses

- `400`: Bad Request: invalid_json.
- `401`: Unauthorized: unauthorized.
- `402`: Payment Required: plan_limit_reached.
- `403`: Forbidden: forbidden.
- `404`: Not Found: not_found.
- `409`: Conflict: conflict, plan_limit_reached.
- `422`: Unprocessable Content: validation_failed, collection_limit_reached, document_limit_reached.
- `429`: Too Many Requests: rate_limited.
- `500`: Internal Server Error: internal_error.

---

[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)
