---
title: "Update Data Plan"
method: PATCH
path: "/{plan_id}"
tags: ["Data Plan"]
---

# Update Data Plan

`PATCH /{plan_id}`

## Request

- Base URL: `https://api.mparticle.com/platform/v2/workspaces/0/plans`
- URL: `https://api.mparticle.com/platform/v2/workspaces/0/plans/{plan_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/mparticle/apis/mparticle-data-planning-api/docs/:plan_id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update a plan

## Path parameters

- `plan_id` string, required

## Request body

- object
  - `data_plan_name` string
  - `data_plan_description` string

## Response `200`

Data plan created

- DataPlan
  - `data_plan_id` string
  - `data_plan_name` string
  - `data_plan_description` string
  - `data_plan_versions` DataPlanVersion[]
    - `version` integer
    - `version_description` string
    - `created_on` string, date-time
    - `created_by` string
    - `last_modified_on` string, date-time
    - `last_modified_by` string
    - `version_document` VersionDocument: This is the actual data plan, since a data plan can have many versions.
      - `data_points` DataPoint[]
        - `description` string
        - `match` DataPointMatch, required
          - `type` 'unknown' | 'screen_view' | 'custom_event' | 'user_attributes' | 'user_identities' | 'product_action' | 'promotion_action' | 'product_impression', required
          - `criteria` union, required
            - ScreenViewEventCriteria
              - …
            - CustomEventCriteria
              - …
            - UserAttributeCriteria
            - CommerceActionEventCriteria: Data point match criteria object for commerce action events
              - …
        - `validator` DataPointValidator, required
          - `type` 'json_schema', required
          - `definition` object, required: This should be a valid JSON schema
      - `active_transformation_ids` number[]
      - `transformations` DataPlanTransformation
        - `transformation_id` number
        - `transformation_name` string
        - `error_pointer` string
        - `validation_error_types` string[]
        - `schema_keywords` SchemaKeyword[]
        - `json_patch` DataPlanPatch[]
          - `op` 'unknown' | 'add' | 'remove' | 'replace' | 'copy' | 'move' | 'test'
          - `from` string
          - `path` string
          - `value` string
        - `description` string
    - `activated_environment` 'none' | 'development' | 'production': Data plan can be active in development, production & development (production), or neither. 'none' indicates it's inactive.
    - `data_plan_id` string
    - `quarantine_feed_id` number, nullable
  - `created_on` string, date-time
  - `created_by` string
  - `last_modified_on` string, date-time
  - `last_modified_by` string

## Other responses

- `400`: Bad Schema
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests

## Changes

- **2026-11-06** `d8df9035366b`: 1 info
  - added the optional property `oneOf[#/components/schemas/ErrorList]/statusCode` to the response with the `400` status

[Operation history](https://skmtc.dev/mparticle/apis/mparticle-data-planning-api/changes/:plan_id/patch.md)

---

[API](https://skmtc.dev/mparticle/apis/mparticle-data-planning-api.md) - [All operations](https://skmtc.dev/mparticle/apis/mparticle-data-planning-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mparticle/apis/mparticle-data-planning-api/revisions/d8df9035366b?raw)
