Administration

organization.migration.receive

Prepare an empty destination organization for a migration and freeze its writes. Auth accounts and credentials are not imported. Explicit replaceSetup allows replacing only initial settings and categories.

POST/api/v1/accounting/organization.migration.receive

Permissions

accounting:readaccounting:writeaccounting:admin

Who can call it

admin

Retries

No idempotency key

MCP

Not offered over MCP: Organization data moves need administrator sign-ins at both installations and an explicit cutover in Settings or the CLI.

Fields

  • idstring (ID)Required

    The record's ID.

  • manifestobjectRequired

    No other fields

  • peerHoststring (uri)Required

    at most 2000 characters

  • identityMapmapRequired
  • replaceSetupboolean

    Default false

  • dryRunboolean

    Default false

Example

curl https://app.getoatmilk.com/api/v1/accounting/organization.migration.receive \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
  "manifest": {
    "version": 1,
    "organizationId": "organization_id",
    "tables": [
      {
        "name": "name",
        "columns": [
          {
            "name": "name",
            "type": "example",
            "required": true,
            "hasDefault": true,
            "generated": true
          }
        ],
        "rows": 1
      }
    ],
    "files": [
      {
        "bucket": "example",
        "path": "example",
        "size": 1
      }
    ],
    "excluded": [
      {
        "table": "table",
        "rows": 1
      }
    ],
    "blockers": [
      "example"
    ],
    "userIds": [
      "example"
    ]
  },
  "peerHost": "https://example.com/webhooks/oatmilk",
  "identityMap": {}
}'
Response
{
  "data": { … }
}

Try it

Try it

Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.

POST/api/v1/accounting/organization.migration.receive
curl https://app.getoatmilk.com/api/v1/accounting/organization.migration.receive \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
  "manifest": {
    "version": 1,
    "organizationId": "organization_id",
    "tables": [
      {
        "name": "name",
        "columns": [
          {
            "name": "name",
            "type": "example",
            "required": true,
            "hasDefault": true,
            "generated": true
          }
        ],
        "rows": 1
      }
    ],
    "files": [
      {
        "bucket": "example",
        "path": "example",
        "size": 1
      }
    ],
    "excluded": [
      {
        "table": "table",
        "rows": 1
      }
    ],
    "blockers": [
      "example"
    ],
    "userIds": [
      "example"
    ]
  },
  "peerHost": "https://example.com/webhooks/oatmilk",
  "identityMap": {}
}'

More in Administration.