---
title: "Get maintenance plan"
method: GET
path: "/maintenanceplans/{id}"
tags: ["Maintenance Plans"]
---

# Get maintenance plan

`GET /maintenanceplans/{id}`

## Path parameters

- `id` integer, required

## Response `200`

Successfully retrieved maintenancePlan's information

- object
  - `maintenancePlan` object, required
    - `id` number, required — Unique ID of the maintenance plan.
    - `name` string, required — Name of the maintenance plan.
    - `organizationId` number, required — ID of the organization this plan belongs to.
    - `startDate` string, date-time, nullable, required — The first due date for generated work orders.
    - `workOrderStartDatePadding` number, nullable, required — Hours between the start date and due date of generated work orders. Deprecated: use workOrderStartDateOffset instead.
    - `workOrderStartDateOffset` object, nullable, required — Offset between the work order start date and the due date, expressed as a (value, unit) pair.
      - `value` number, required — The numeric value of the offset between the work order start date and the due date. Must be >= 1. Per-unit caps: HOUR <= 8760, DAY <= 365, WEEK <= 52.
      - `unit` 'HOUR' | 'DAY' | 'WEEK', required — The unit of the work order start date offset.
    - `workOrderStartDateFixedDay` number, nullable, required — Day of month for fixed-day work order start dates. Null means the plan uses relative offset behavior.
    - `blueprintEstimatedTime` number, nullable, required — Estimated time (in minutes) from the work order blueprint.
    - `triggerType` 'CALENDAR' | 'METER' | 'CALENDAR_OR_METER', required — What triggers work order generation. METER and CALENDAR_OR_METER require the meter configuration fields.
    - `intervalStrategy` 'FIXED' | 'FLOATING', required — The interval strategy for the schedule. FLOATING requires a PERIODICALLY recurrence, and CALENDAR_OR_METER plans must use FLOATING.
    - `recurrence` union, required — The recurrence schedule configuration.
      - object
        - `type` 'DAILY', required
      - object
        - `type` 'WEEKLY', required
        - `interval` integer, required — Number of weeks between occurrences
        - `days` string[], required — Days of the week the event will occur
      - object
        - `type` 'MONTHLY', required
        - `interval` integer, required — Number of months between occurrences
        - `day` integer, required — Day of the month the event will occur
      - object
        - `type` 'YEARLY', required
        - `interval` integer, required — Number of years between occurrences
      - object
        - `type` 'PERIODICALLY', required
        - `interval` integer, required — Number of seconds after the previous due date. Required for plans whose intervalStrategy is FLOATING, and rejected for any other interval strategy.
    - `planningHorizon` object, required — How far ahead to generate work orders.
      - `value` number, required — The numeric value of the planning horizon.
      - `unit` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR', required — The unit of the planning horizon.
    - `workOrderBlueprintId` number, required — ID of the maintenance plan work order blueprint used to generate work orders. These can be created through the /maintenanceplans/workorderblueprints endpoint.
    - `assets` object[], required — Assets associated with this maintenance plan.
      - `id` number, required — ID of the plan-asset association.
      - `assetId` number, required — ID of the asset.
    - `intervals` object[], required — Multi-cycle intervals. Each interval specifies a cycle number and a different work order blueprint.
      - `id` number, required — ID of the interval.
      - `interval` number, required — The cycle number at which this interval's blueprint is used.
      - `workOrderBlueprintId` number, required — ID of the maintenance plan work order blueprint for this cycle. These can be created through the /maintenanceplans/workorderblueprints endpoint.
    - `nextCycleOccurrence` number, nullable, required — Which cycle in the multi-cycle sequence comes next.
    - `nextScheduledWorkOrderDueDate` string, date-time, nullable, required — The computed due date for the next work order to be generated.
    - `lastPlannedDueDate` string, date-time, nullable, required — The due date of the most recently planned work order.
    - `nextWorkOrderGenerationAt` string, date-time, nullable, required — When the next batch of work orders will be generated.
    - `lastWorkOrderGeneratedAt` string, date-time, nullable, required — When work orders were last generated for this plan.
    - `creatorId` number, required — ID of the user who created this plan.
    - `createdAt` string, date-time, required — When this plan was created.
    - `updatedAt` string, date-time, nullable, required — When this plan was last updated.
    - `archivedAt` string, date-time, nullable, required — When this plan was archived, or null if active.

## Other responses

- `400` — Error with query
- `401` — Invalid token
- `404` — Could not find the specified maintenancePlan or the user cannot access it.

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
