---
title: "Get plan change"
method: GET
path: "/plan-changes/{plan_change_id}"
tags: ["companies"]
---

# Get plan change

`GET /plan-changes/{plan_change_id}`

## Path parameters

- `plan_change_id` string, required

## Response `200`

OK

- object
  - `data` PlanChangeResponseData, required
    - `action` 'checkout' | 'company_upsert' | 'fallback_plan' | 'manage_plan' | 'migration' | 'plan_billing_product_changed' | 'plan_deleted' | 'plan_trait_change' | 'plan_version_migration' | 'quickstart' | 'subscription_change', required
    - `actor_type` 'api_key' | 'app_user' | 'stripe_app' | 'system' | 'temporary_access_token', required
    - `add_ons_added` PlanSnapshotView[], required
      - `deleted` boolean, required
      - `description` string, required
      - `icon` string, required
      - `id` string, required
      - `name` string, required
    - `add_ons_removed` PlanSnapshotView[], required
      - `deleted` boolean, required
      - `description` string, required
      - `icon` string, required
      - `id` string, required
      - `name` string, required
    - `api_key` ApiKeyResponseData
      - `created_at` string, date-time, required
      - `description` string, nullable
      - `environment` EnvironmentResponseData
        - `created_at` string, date-time, required
        - `environment_type` 'development' | 'production' | 'staging', required
        - `id` string, required
        - `name` string, required
        - `updated_at` string, date-time, required
      - `environment_id` string, nullable
      - `id` string, required
      - `integration` ApiKeyIntegrationResponseData
        - `id` string, required
        - `state` 'active' | 'created' | 'pending', required
        - `type` 'clerk' | 'metronome' | 'orb' | 'stripe' | 'unknown' | 'workos', required
      - `last_used_at` string, date-time, nullable
      - `name` string, required
      - `rate_limit_percent` integer, nullable
      - `readonly` boolean, required
      - `scopes` ApiKeyScope[], required
      - `updated_at` string, date-time, required
    - `audit_log` AuditLogListResponseData
      - `actor_type` 'api_key' | 'app_user' | 'stripe_app' | 'system' | 'temporary_access_token', required
      - `api_key` ApiKeyResponseData
        - `created_at` string, date-time, required
        - `description` string, nullable
        - `environment` EnvironmentResponseData
          - `created_at` string, date-time, required
          - `environment_type` 'development' | 'production' | 'staging', required
          - `id` string, required
          - `name` string, required
          - `updated_at` string, date-time, required
        - `environment_id` string, nullable
        - `id` string, required
        - `integration` ApiKeyIntegrationResponseData
          - `id` string, required
          - `state` 'active' | 'created' | 'pending', required
          - `type` 'clerk' | 'metronome' | 'orb' | 'stripe' | 'unknown' | 'workos', required
        - `last_used_at` string, date-time, nullable
        - `name` string, required
        - `rate_limit_percent` integer, nullable
        - `readonly` boolean, required
        - `scopes` ApiKeyScope[], required
        - `updated_at` string, date-time, required
      - `api_key_id` string, nullable
      - `ended_at` string, date-time, nullable
      - `environment` EnvironmentResponseData
        - `created_at` string, date-time, required
        - `environment_type` 'development' | 'production' | 'staging', required
        - `id` string, required
        - `name` string, required
        - `updated_at` string, date-time, required
      - `environment_id` string, nullable
      - `id` string, required
      - `method` string, required
      - `resource_id` integer, nullable
      - `resource_id_string` string, nullable
      - `resource_name` string, nullable
      - `resource_type` string, nullable
      - `resp_code` integer, nullable
      - `secondary_resource` string, nullable
      - `started_at` string, date-time, required
      - `url` string, required
      - `user_name` string, nullable
    - `base_plan` PlanSnapshotView
      - `deleted` boolean, required
      - `description` string, required
      - `icon` string, required
      - `id` string, required
      - `name` string, required
    - `base_plan_action` 'fallback' | 'initial' | 'trait' | 'trial_expiry'
    - `base_plan_version` PlanVersionSnapshotView
      - `id` string, required
      - `name` string, required
      - `version` integer, required
    - `company` CompanyResponseData
      - `created_at` string, date-time, required
      - `environment_id` string, required
      - `id` string, required
      - `last_seen_at` string, date-time, nullable
      - `logo_url` string, nullable
      - `name` string, required
      - `updated_at` string, date-time, required
    - `company_id` string, required
    - `created_at` string, date-time, required
    - `environment_id` string, required
    - `id` string, required
    - `integration` IntegrationResponseData
      - `created_at` string, date-time, required
      - `id` string, required
      - `state` 'active' | 'created' | 'pending', required
      - `type` 'clerk' | 'metronome' | 'orb' | 'stripe' | 'unknown' | 'workos', required
      - `updated_at` string, date-time, required
    - `is_version_upgrade` boolean, required — True when this change moved the company to a different version of the same plan (e.g. a plan version migration) rather than to a different plan.
    - `previous_base_plan` PlanSnapshotView
      - `deleted` boolean, required
      - `description` string, required
      - `icon` string, required
      - `id` string, required
      - `name` string, required
    - `previous_base_plan_version` PlanVersionSnapshotView
      - `id` string, required
      - `name` string, required
      - `version` integer, required
    - `request_id` string, nullable
    - `subscription_change_action` 'adjustment' | 'downgrade' | 'invalid' | 'subscribe' | 'unsubscribe' | 'upgrade' | 'upgrade_trial'
    - `traits_updated` SubscriptionTraitUpdate[], required — Any traits were updated as part of this plan change (via pay-in-advance entitlements).
      - `feature_id` string, required
      - `hierarchy` string[], required
      - `reason` string, required
      - `trait_id` string, required
      - `trait_name` string, required
      - `trait_type` 'boolean' | 'currency' | 'date' | 'number' | 'string' | 'url', required
      - `value` string, required
    - `updated_at` string, date-time, required
    - `user_id` string, nullable
    - `user_name` string, nullable
  - `params` object, required — Input parameters

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

---

[API](https://skmtc.net/schematichq/apis/schematic-api.md) · [All operations](https://skmtc.net/schematichq/apis/schematic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/schematichq/schematic-api/versions/873fb318b08a/schema)
