# Get Properties

POST /api/v2/projects/{projectId}/crm/contacts/properties

Returns just a contact's property bag, without the surrounding contact record. Naming specific `attributes` keeps the response small when you only need a few values from a contact with many properties.

## Request

- projectId: string, path, required — ID of the project that owns the contact.
- distinctId: string, required — Distinct ID of the contact whose properties to read.
- attributes: string[] — Property names to return, e.g. `["email", "$country"]`. Omit for every stored property.

## Response

- 200: Successful response
  - $_emailScoreActions: string
  - $_toDelete: boolean
  - $browser: string
  - $browserVersion: string
  - $city: string
  - $continent: string
  - $country: string
  - $countryCode: string
  - $device: string
  - $emailScore: number
  - $emailValidated: boolean
  - $emailValidationResult: string
  - $id: string
  - $initialReferrer: string
  - $initialReferringDomain: string
  - $initialUtmCampaign: string
  - $initialUtmContent: string
  - $initialUtmMedium: string
  - $initialUtmSource: string
  - $initialUtmTerm: string
  - $ip: string
  - $lastEmailValidatedAt: string
  - $lastIdentifiedAt: string
  - $lastSeen: string
  - …
- 400: Invalid input data
- 401: Authorization not provided
- 403: Insufficient access
- 500: Internal server error
