---
title: "Create sale contacts from existing profiles"
method: POST
path: "/api/contacts/{contactableEntity}/{contactableId}/sale-contact"
tags: ["Contact"]
---

# Create sale contacts from existing profiles

`POST /api/contacts/{contactableEntity}/{contactableId}/sale-contact`

## Request

- Base URL: `https://api.sponsorunited.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sponsorunited.com/api/contacts/{contactableEntity}/{contactableId}/sale-contact`
- Auth: HTTP bearer

Creates sale contacts by linking existing person profiles to a brand entity. Automatically creates or retrieves a deal tracker entry and assigns contacts to a sale list

## Request body

- ContactCreateSaleRequest
  - `person_profile_ids` integer[], required
  - `sale_list_id` integer, required
  - `source_entity_type` 'brand' | 'property' | 'agency', nullable

## Response `200`

The person profiles linked to the authenticated user's sale list.

- object
  - `data` SaleContactShowStoreUpdateResource[]
    - `id` integer
    - `contact_id` integer, nullable: Id of the contacts row linking this person profile to the entity in the path. Null when no such row exists.
    - `created_by_agent` string, nullable: Name of the agent that created the contacts row, from the X-Agent-Name header sent with an agent token. Null when a person created it.
    - `user_id` integer, nullable
    - `sale_id` integer
    - `company_id` integer
    - `contact_status_id` integer
    - `name` string
    - `position` string
    - `suggested` integer
    - `previous_suggested` integer
    - `approved` boolean
    - `notes` string
    - `birthday` string
    - `profile_picture` string
    - `work_phone` string
    - `work_phone_ext` string
    - `email` string
    - `previous_email_status` string
    - `previous_email_status_updated_at` string, date-time
    - `email_status` string
    - `email_status_updated_at` string, date-time
    - `manual_email_status` string
    - `manual_email_status_updated_at` string, date-time
    - `email_not_found` boolean
    - `mail_code` string
    - `linkedin` string: Linkedin profile url
    - `facebook` string: Facebook profile url
    - `twitter` string: Twitter profile url
    - `instagram` string: Instagram profile url
    - `synopsys` string
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `deleted_at` string, date-time
    - `location` string
    - `is_sale_contact_of_user` boolean: True when the contact belongs to the authenticated user's sale list.
    - `market` object[]
      - `id` integer
      - `name` string
    - `sale_user_lists` object[]: The authenticated user's sale lists the contact belongs to.
      - `id` integer
      - `name` string
    - `parent_entity` object, nullable
      - `id` integer
      - `name` string
    - `entity` object: The brand, property or agency the sale belongs to.
      - `id` integer
      - `type` string
    - `last_scraped_at` string, date-time, nullable: Always null: sale contacts are not scraped.
    - `linkedin_data` ContactLinkedinData
      - `id` integer
      - `person_profile_id` integer
      - `type` string
      - `data` string: JSON data fetched from Linkedin, with jobs, schools, skills, general data etc.
      - `created_at` string, date-time
      - `updated_at` string, date-time

---

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