---
title: "Create a new profile (any type)"
method: POST
path: "/group-profile/v1/profiles"
tags: ["Profile"]
---

# Create a new profile (any type)

`POST /group-profile/v1/profiles`

Create a company, group, or travel agent profile based on the attributes provided in the request body

## Headers

- `x-property-id` integer
- `x-organization-id` integer, required

## Request body

- ProfileRequest
  - `id` string — Unique identifier for the profile
  - `profileType` 'COMPANY' | 'GROUP' | 'TRAVEL_AGENT' — Profile type
  - `code` string, required — Profile code (company code, group code, or IATA number for travel agents)
  - `name` string, required — Profile name (company name, group name, or agency name)
  - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'CANCELLED' | 'ARCHIVED', required — Profile status
  - `cellPhone` string — Cell phone number
  - `phone` string — Primary phone number
  - `email` string, email — Primary email address
  - `externalCrmId` string — External CRM system reference ID
  - `optIn` boolean — Opt-in status
  - `optInType` 'MARKETING' | 'TRANSACTIONAL' — Type of opt-in
  - `optInMethods` 'EMAIL' | 'SMS' | 'NOTIFICATION' — Opt-in communication method
  - `address` Address — Flexible address object with country-specific fields. The countryCode determines the expected address format. All address fields except id and countryCode are stored as dynamic properties. Common fields include: address1, address2, street, number, city, state, zip, etc.
    - `id` integer — Unique identifier for the address
    - `countryCode` string — ISO 3166-1 alpha-2 country code (determines address format)
  - `useBillingAsMainAddress` boolean — When true, use billing address as the main address instead of the address field
  - `billingDetails` BillingDetails — Billing address and contact information.
    - `address1` string — Street address line 1.
    - `address2` string — Street address line 2.
    - `city` string — City.
    - `country` string — Two-letter country code (ISO 3166-1 alpha-2).
    - `document_number` string — Tax or identification document number.
    - `name` string — Billing contact name.
    - `postal_code` string — Postal or ZIP code.
    - `phone` string — Phone number.
    - `state` string — State or province code.
  - `createdAt` string, date-time — Creation timestamp
  - `updatedAt` string, date-time — Last update timestamp
  - `attributes` object — Dictionary containing profile-specific data (groupProfile, companyProfile, or travelAgentProfile). Only one profile type should be present.
    - `groupProfile` GroupProfile
      - `groupType` 'WEDDING' | 'SOCIAL' | 'SMERF' | 'CORPORATE' | 'ASSOCIATION' | 'EDUCATION' | 'MEETING' | 'CONFERENCE' | 'MICE' | 'EXHIBITIONS' | 'INCENTIVE' | 'OTHER' — Type of group
      - `groupId` string — Unique group identifier
      - `cutOffDate` string, date — Booking cut-off date
      - `internalSalesManager` string — Internal sales manager name
      - `specialRequirements` string — Special requirements or notes
      - `roomNightCommitment` integer — Room night commitment
      - `roomNightType` 'USD' | 'PERCENTAGE' | 'NUMBER' — Type of room night commitment (USD, Percentage, or Number)
    - `companyProfile` CompanyProfile
      - `companyType` 'CORPORATE' | 'SME' | 'NON_PROFIT' | 'ENTERPRISE' | 'GOVERNMENT' | 'ASSOCIATION' | 'LOCAL' | 'B2B' | 'PARTNERSHIP' | 'OTHER' — Company type. Allowed values are CORPORATE, SME, NON_PROFIT, ENTERPRISE, GOVERNMENT, ASSOCIATION, LOCAL, B2B, PARTNERSHIP, OTHER
      - `parentCompanyId` integer — Parent company ID if this is a subsidiary
      - `website` string — Company website URL
      - `contractStartDate` string, date — Contract start date
      - `contractEndDate` string, date — Contract end date
      - `roomNightCommitment` integer — Annual room night commitment
      - `roomNightType` 'USD' | 'PERCENTAGE' | 'NUMBER' — Type of room night commitment (USD, Percentage, or Number)
    - `travelAgentProfile` TravelAgentProfile
      - `agencyId` string — Agency identifier
      - `agencyType` 'OTA' | 'RETAIL' | 'CORPORATE_AGENT' | 'CONSORTIA' | 'WHOLESALER' | 'GROUP_TOUR' | 'TOUR_OPERATOR' | 'DOMESTIC' | 'FOREIGN' | 'OTHER' — Travel agency type. Allowed values are OTA, RETAIL, CORPORATE_AGENT, CONSORTIA, WHOLESALER, GROUP_TOUR, TOUR_OPERATOR, DOMESTIC, FOREIGN, OTHER
      - `commissionable` boolean — Whether this agent is eligible for commission
      - `commissionType` 'PERCENTAGE' | 'FLAT_RATE' — Type of commission (Percentage or Flat Rate)
      - `commissionAmount` number — Commission amount (percentage or flat rate value)
      - `commissionTerms` string — Terms of commission payout
      - `commissionCalculation` 'CHECK_IN' | 'CHECK_OUT' | 'INCLUDED_IN_RATE' | 'NOT_INCLUDED_IN_RATE' | 'NA' — When commission is calculated

## Response `201`

Profile created successfully

- ProfileResponse
  - `photoId` number — Photo ID
  - `taxId` string — Tax ID
  - `companyTaxId` string — Company tax ID
  - `statusId` number — Profile Status ID. Deprecated: Use statuses instead.
  - `firstName` string — First name
  - `lastName` string — Last name
  - `email` string — Email address
  - `phone` string — Phone number
  - `cellPhone` string — Cellphone number
  - `birthday` string, date — Birthday
  - `gender` string — Gender
  - `companyName` string — Company name
  - `address1` string — Address line 1
  - `address2` string — Address line 2
  - `city` string — City
  - `country` string — Two digit Country Code. ISO 3166-1 alpha-2
  - `countryName` string — Country name
  - `state` string — State
  - `zip` string — ZIP code
  - `documentType` string — Document type
  - `documentNumber` string — Document number
  - `documentIssueDate` string, date — Document issue date
  - `documentIssuingCountry` string — Document issue country. ISO 3166-1 alpha-2
  - `documentExpirationDate` string, date — Document expiration date
  - `isOptIn` boolean — Opt-in status
  - `id` string — Profile's unique identifier
  - `organizationId` string — Organization ID
  - `statusName` string — Profile Status Name. Deprecated: Use statuses instead.
  - `statuses` object[] — All statuses for this profile across all properties
    - `id` integer — Status ID
    - `name` string — Status name
  - `isMerged` boolean — Merged status. Merged profiles are no longer active in the Cloudbeds system
  - `isRepeatGuest` boolean — Repeat-guest status
  - `dateCreated` string, date-time — Creation date. Date/Time string based on RFC 3339 (Y-m-dTH:i:sP)
  - `dateModified` string, date-time — Modification date. Date/Time string based on RFC 3339 (Y-m-dTH:i:sP)
  - `dateAnonymized` string, date-time — Anonymization date. Date/Time string based on RFC 3339 (Y-m-dTH:i:sP)
  - `parentId` string — Profile's parent unique identifier
  - `photo` ProfilePhoto
    - `fileId` string — Photo unique identifier
    - `path` string — Photo URL
    - `croppedImage` string — Cropped photo URL
    - `height` integer — Photo height
    - `width` integer — Photo width
    - `cropParam` object — Crop parameters
      - `width` number — Cropped photo width
      - `height` number — Cropped photo height
      - `x` number — X coordinate of the top-left corner of the cropped photo
      - `y` number — Y coordinate of the top-left corner of the cropped photo
  - `isAnonymizationAvailable` boolean — Anonymization availability status

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/cloudbeds/apis/cloudbeds-api.md) · [All operations](https://skmtc.net/cloudbeds/apis/cloudbeds-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cloudbeds/cloudbeds-api/revisions/2faa857793e8/schema)
