---
title: "List nurture campaigns"
method: GET
path: "/nurture-campaigns"
tags: ["Nurture Campaigns"]
---

# List nurture campaigns

`GET /nurture-campaigns`

## Request

- Base URL: `https://api.100hires.com/v2`
- URL: `https://api.100hires.com/v2/nurture-campaigns`
- Auth: HTTP bearer

Returns paginated nurture campaigns for the target company.

## Query parameters

- `company_id` integer
- `page` integer
- `size` integer

## Response `200`

Nurture campaign list

- NurtureCampaignListResponse
  - `nurture_campaigns` NurtureCampaign[], required: Array of nurture campaigns.
    - `id` integer: Campaign ID
    - `type` string: Always "nurture_campaign"
    - `title` string: Campaign name
    - `url_backoffice` string, uri: Absolute backoffice URL to edit this nurture campaign in the 100Hires recruiter app. Use to render deep-links in agent UIs.
    - `send_to_all` boolean: Whether to send to all candidates or only new ones
    - `response_move_to_stage_id` integer, nullable: Stage ID to move candidate when they reply
    - `schedule` object: Campaign schedule configuration
      - `formatted` string: Human-readable schedule description
    - `steps` NurtureCampaignStep[]: Ordered list of campaign steps
      - union: Campaign step. The shape depends on the step `type`.
        - NurtureCampaignStepEmail
          - `id` integer, required: Step ID
          - `type` 'email', required: Step type discriminator.
          - `campaign_id` integer: Parent campaign ID
          - `delay_days` integer, required: Days to wait before executing this step
          - `send_condition` 'if_no_reply' | 'if_no_reply_but_opened', required: Condition to check before executing step
          - `sender` object, required: Mail sender
            - `type` string
            - `id` integer
          - `template_id` integer, required: Email template ID
          - `is_new_thread` boolean: Send as new email thread
          - `schedule_id` integer, nullable: Sending schedule ID
        - NurtureCampaignStepSms
          - `id` integer, required: Step ID
          - `type` 'sms', required: Step type discriminator.
          - `campaign_id` integer: Parent campaign ID
          - `delay_days` integer, required: Days to wait before executing this step
          - `send_condition` 'if_no_reply' | 'if_no_reply_but_opened', required: Condition to check before executing step
          - `sender_user_id` integer, required: Sender user ID
          - `template_id` integer, required: SMS template ID
          - `schedule_id` integer, nullable: Sending schedule ID
        - NurtureCampaignStepVoicemail: Response shape for a voicemail step. Create/update requests use `attachment_uuid`, while responses expand that reference into the full `attachment` payload and do not return `attachment_uuid`.
          - `id` integer, required: Step ID
          - `type` 'voicemail', required: Step type discriminator.
          - `campaign_id` integer: Parent campaign ID
          - `delay_days` integer, required: Days to wait before executing this step
          - `send_condition` 'if_no_reply' | 'if_no_reply_but_opened', required: Condition to check before executing step
          - `attachment` ApiAttachment: Unified attachment shape returned by apiV2 endpoints (resumes, candidate files, application attachments, message attachments, call recordings, voicemail audio in nurture campaigns). `url` is an absolute URL served by the API host (`https://api.100hires.com/v2/attachments/{category}/{uuid}/{file_name}`) and serves the raw file bytes with `Authorization: Bearer <API_KEY>`. The response on `url` sets `Content-Disposition: attachment; filename="..."` with the human-readable filename. Use `uuid` to reference the attachment in other endpoints (e.g. nurture voicemail step).
            - `uuid` string, uuid, required: Unique attachment identifier. Stable across API calls; use in referencing endpoints.
            - `url` string, uri, nullable, required: Absolute download URL (e.g. `https://api.100hires.com/v2/attachments/application/{uuid}/{file_name}`). Hit with `Authorization: Bearer <API_KEY>`.
            - `relative_time` string, required: Human-readable time since upload (e.g. `"2 days ago"`).
            - `file` AttachmentFile, required
              - …
          - `schedule_id` integer, nullable: Sending schedule ID
        - NurtureCampaignStepMoveToNextStage
          - `id` integer, required: Step ID
          - `type` 'move_to_next_stage', required: Step type discriminator.
          - `campaign_id` integer: Parent campaign ID
          - `delay_days` integer, required: Days to wait before executing this step
          - `send_condition` 'if_no_reply' | 'if_no_reply_but_opened', required: Condition to check before executing step
          - `stage_id` integer, required: Target pipeline stage ID
        - NurtureCampaignStepAssignTag
          - `id` integer, required: Step ID
          - `type` 'assign_tag', required: Step type discriminator.
          - `campaign_id` integer: Parent campaign ID
          - `delay_days` integer, required: Days to wait before executing this step
          - `send_condition` 'if_no_reply' | 'if_no_reply_but_opened', required: Condition to check before executing step
          - `tag_id` integer, required: Tag ID to assign
        - NurtureCampaignStepAssignTask
          - `id` integer, required: Step ID
          - `type` 'assign_task', required: Step type discriminator.
          - `campaign_id` integer: Parent campaign ID
          - `delay_days` integer, required: Days to wait before executing this step
          - `send_condition` 'if_no_reply' | 'if_no_reply_but_opened', required: Condition to check before executing step
          - `task_template_id` integer, required: Task template ID
          - `assignees` integer[], required: Assignee user IDs
          - `due_in_interval` string: Due date interval, e.g. "P3D"
          - `priority` integer: Task priority
  - `pagination` Pagination, required
    - `page_size` integer, required: Items per page.
    - `page_count` integer, required: Total number of pages.
    - `page` integer, required: Current page number.
    - `total_count` integer, required: Total number of items.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too many requests

---

[API](https://skmtc.dev/100hires/apis/100hires-api.md) · [All operations](https://skmtc.dev/100hires/apis/100hires-api/llms.txt) · [OpenAPI document](https://skmtc.dev/100hires/apis/100hires-api/revisions/e63e2d3115f7?raw)
