---
title: "Push bundle to environments"
method: POST
path: "/api/v1/publishing/push/{bundleId}"
tags: ["Publishing"]
---

# Push bundle to environments

`POST /api/v1/publishing/push/{bundleId}`

Queues an existing bundle for publishing to specified environments. The bundle must exist and have assets already added. Supports publish, expire, and publishexpire operations with ISO 8601 date/time format.

## Path parameters

- `bundleId` string, required

## Request body

- PushBundleForm — Form for pushing a bundle to environments
  - `operation` 'publish' | 'expire' | 'publishexpire', required — Operation type: publish, expire, or publishexpire. Case-insensitive (PUBLISH, Publish, publish all accepted).
  - `publishDate` string, date-time — Scheduled publish date in ISO 8601 format with timezone offset (required for publish/publishexpire). Dates without timezone offset are rejected.
  - `expireDate` string, date-time — Scheduled expire date in ISO 8601 format with timezone offset (required for expire/publishexpire). Dates without timezone offset are rejected.
  - `environments` string[], required — List of environment IDs to push the bundle to
  - `filterKey` string, required — Push publishing filter key

## Response `200`

Bundle successfully queued for publishing

- ResponseEntityPushBundleResultView
  - `errors` ErrorEntity[]
    - `errorCode` string
    - `message` string
    - `fieldName` string
  - `entity` PushBundleResultView
    - `bundleId` string, required — Bundle identifier
    - `operation` string, required — Operation type performed
    - `publishDate` string — Scheduled publish date in ISO 8601 format
    - `expireDate` string — Scheduled expire date in ISO 8601 format
    - `environments` string[], required — List of environment IDs the bundle was pushed to
    - `filterKey` string, required — Filter key used for publishing
  - `messages` MessageEntity[]
    - `message` string
  - `i18nMessagesMap` object
  - `permissions` string[]
  - `pagination` Pagination
    - `currentPage` integer
    - `perPage` integer
    - `totalEntries` integer

## Other responses

- `400` — Invalid request (missing required fields, invalid operation, invalid date format)
- `401` — Unauthorized - authentication required
- `403` — Forbidden - no permission to use specified environments
- `404` — Bundle or environment not found

---

[API](https://skmtc.dev/jostens/apis/dotcms-rest-api.md) · [All operations](https://skmtc.dev/jostens/apis/dotcms-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jostens/dotcms-rest-api/revisions/a088fe9f515c/schema)
