## Update a Contact Profile

### PATCH

#### Endpoint
`/v2.0/profiles/{profileId}`

#### Request Example

**cURL**
```bash
curl --request PATCH \
  --url https://api-trial.cognigy.ai/new/v2.0/profiles/{profileId} \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '{
  "profile": {
    "prevent_data_collection": true,
    "accepted_gdpr": true,
    "privacy_policy": {},
    "tasks": [
      "buyer"
    ],
    "memories": [
      {
        "id": "123456",
        "timestamp": "2024-09-23T08:37:00Z",
        "text": "This is a memory."
      }
    ],
    "firstname": "Max",
    "lastname": "Mustermann",
    "email": "jsmith@example.com",
    "profilepic": ""
  },
  "active": true,
  "contactIds": [
    "mail@example.com"
  ]
}'
```

### Python Example

```python
import requests

url = "https://api-trial.cognigy.ai/new/v2.0/profiles/{profileId}"

payload = {
    "profile": {
        "prevent_data_collection": True,
        "accepted_gdpr": True,
        "privacy_policy": {},
        "tasks": ["buyer"],
        "memories": [
            {
                "id": "123456",
                "timestamp": "2024-09-23T08:37:00Z",
                "text": "This is a memory."
            }
        ],
        "firstname": "Max",
        "lastname": "Mustermann",
        "email": "jsmith@example.com",
        "profilepic": ""
    },
    "active": True,
    "contactIds": ["mail@example.com"]
}

headers = {
    "X-API-Key": "<api-key>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
```

### JavaScript Example (Fetch)

```javascript
const options = {
  method: 'PATCH',
  headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    profile: {
      prevent_data_collection: true,
      accepted_gdpr: true,
      privacy_policy: {},
      tasks: ['buyer'],
      memories: [{id: '123456', timestamp: '2024-09-23T08:37:00Z', text: 'This is a memory.'}],
      firstname: 'Max',
      lastname: 'Mustermann',
      email: 'jsmith@example.com',
      profilepic: ''
    },
    active: true,
    contactIds: ['mail@example.com']
  })
};

fetch('https://api-trial.cognigy.ai/new/v2.0/profiles/{profileId}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
```

### Response

204 - Successfully updated Profile

### Authorizations

#### API Key
- **X-API-Key**: string, header, required

### Headers

- **Accept**: enum<string> - The `Accept` header specifies the media type that the client expects in the response. Available options: `application/json`, `application/hal+json`, `application/xml`, `text/xml`, `text/csv`. The default value is `application/json`.

### Path Parameters
- **profileId**: string, required - The Id of the Profile, string length: `24`. Pattern: `^[a-z0-9]{24}$`.

### Body
**application/json**
- **profile**: object
  - **active**: boolean
  - **contactIds**: string[]

### Possible Error Responses

```json
{
  "type": "Bad Request",
  "title": "Bad Request Error",
  "status": 400,
  "detail": "Validation failed. Missing payload.",
  "instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
  "code": 1000,
  "traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
  "details": {}
}
```
