---
title: "POST /public/v1/warmlist/{workspaceId}/prospects/move-to-campaign"
method: POST
path: "/public/v1/warmlist/{workspaceId}/prospects/move-to-campaign"
tags: ["Warm List"]
---

# POST /public/v1/warmlist/{workspaceId}/prospects/move-to-campaign

`POST /public/v1/warmlist/{workspaceId}/prospects/move-to-campaign`

## Request

- Base URL: `https://api.joinvalley.co`
- URL: `https://api.joinvalley.co/public/v1/warmlist/{workspaceId}/prospects/move-to-campaign`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/joinvalley/apis/valley-public-api/docs/public/v1/warmlist/:workspaceId/prospects/move-to-campaign/post.ts> (a function with typed inputs; its response is checked against the schema)

Move warmlist prospects into a campaign for outreach.

## Path parameters

- `workspaceId` string, required

## Request body

- object
  - `campaignId` string, required: Target campaign ID.
  - `prospectIds` string[]: Specific prospect IDs.
  - `selectAll` boolean: Move all prospects matching the filters below.
  - `engagementType` string: Required when selectAll is true.
  - `monitoredProfileId` string: Only for POST_ENGAGEMENTS.
  - `postId` string: Only for POST_ENGAGEMENTS.
  - `postEngagementType` string: COMMENT or REACTION.
  - `icpFit` string[]
  - `profilePrivacy` string: "open" or "closed".

## Response `200`

Default Response

- object
  - `statusCode` number
  - `status` boolean
  - `message` string
  - `data` object
    - `campaign_id` string
    - `queued_count` number
    - `skipped_count` number
    - `skipped_reasons` object[]
      - `warmlist_prospect_id` string
      - `reason` string

## Other responses

- `400`: Default Response
- `401`: Default Response
- `403`: Default Response
- `429`: Default Response
- `500`: Default Response

---

[API](https://skmtc.dev/joinvalley/apis/valley-public-api.md) - [All operations](https://skmtc.dev/joinvalley/apis/valley-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/joinvalley/apis/valley-public-api/revisions/96a6cad33a47?raw)
