---
title: "Add a participant"
method: POST
path: "/companies/{company_key}/campaigns/acquisition/{acquisition_id}/participants"
tags: ["Acquisition Campaign API"]
---

# Add a participant

`POST /companies/{company_key}/campaigns/acquisition/{acquisition_id}/participants`

## Request

- Base URL: `https://public-api.vibescm.com`
- URL: `https://public-api.vibescm.com/companies/{company_key}/campaigns/acquisition/{acquisition_id}/participants`
- Auth: HTTP basic

## Path parameters

- `company_key` string, required
- `acquisition_id` string, required

## Headers

- `X-API-Version` string
- `Content-Type` string, required

## Request body

- AddParticipantRequest
  - `person_id` string: Vibes-assigned unique indentifier for the person. Required if adding participant by person_id.
  - `external_person_id` string: A unique person identifier assigned by the brand, which can be used to link non-Vibes-assigned identifiers to Vibes person records. Required if adding participant by external_person_id.
  - `mobile_phone` object: Mobile Directory Number. The dialable phone number associated with the phone. Required if adding participant by mdn.
    - `mdn` string: Mobile Directory Number. The dialable phone number associated with the phone.
  - `custom_fields` object: A list of custom field key/value pairs to poulate when creating Acquisition request.

## Response `200`

This means the person has a pending acquisition and has not yet confirmed.

- AddParticipantResponse
  - `person` object
    - `person_id` string: Vibes-assigned unique indentifier for the person.
    - `person_key` string: A unique Vibes-asigned alphanumeric identifier for each person record.
    - `url` string: Unique resource URL for the Person.
  - `participation_date` string: Date the person entered the Acquisition Campaign.
  - `expire_date` string: Date the person's acquisition request expires.
  - `status` string: Status of the aquisition request.

## Other responses

- `201`: Depending on the "status", the following can be returned: <br><ul> <li>`PENDING` - The person's subscription is pending. This happens when an opt-in message has been sent, but the participant has not confirmed their subscription.</li> <li>`SUBSCRIBED` - The person is subscribed to your list.</li> </ul>
- `400`: The supplied mobile number is not in proper mobile number format.
- `409`: Already subscribed. This means the person has tried to subscribe more than once, but is already subscribed to the list.
- `422`: Returned in the following situations:<br> <ul> <li>`MDNHASCONFIRMATIONBLOCK`: Returned when the MDN has previously replied “No” to the acquisition campaign.<br><b>Note</b>: When an MDN has previously replied "No" to an acquisition campaign, they cannot be added via API using that campaign. However, the MDN can still join a subscription list by texting in the appropriate keyword.</li> <li>The supplied phone number does not map to a provisioned carrier. This is mostly returned for a landline number.</li> <li>`EXTERNALPERSONIDMISMATCH`: Returned when trying to subscribe a person with an `external_person_id` that is already in use.</li> <li>`UNPROCESSABLE ENTITY`: Returned when unable to process the request with the contained instructions. Please reach out to Vibes Customer Care or your account manager for troubleshooting support.</li> <li>An error listing specific elements from the body is returned when trying to populate custom field data for custom fields unknown to the platform.</li> </ul>

---

[API](https://skmtc.dev/vibes/apis/vibes-platform-api.md) - [All operations](https://skmtc.dev/vibes/apis/vibes-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vibes/apis/vibes-platform-api/revisions/e235838f2e50?raw)
