# Personalization

## Get personalization.

> Use this endpoint to get personalization.

```json
{"openapi":"3.0.1","info":{"title":"WebApi | v1","version":"1.0.0"},"tags":[{"name":"Personalization"}],"servers":[{"url":"https://api.safegpt.nl/"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT bearer token. Example: 'Bearer {token}'.","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/v1/Personalization/Get":{"get":{"tags":["Personalization"],"summary":"Get personalization.","description":"Use this endpoint to get personalization.","responses":{"200":{"description":"OK"},"401":{"description":"Authentication is required."},"403":{"description":"The user is not authorized to access this endpoint."}}}}}}
```

## Create personalization.

> Use this endpoint to create personalization.

```json
{"openapi":"3.0.1","info":{"title":"WebApi | v1","version":"1.0.0"},"tags":[{"name":"Personalization"}],"servers":[{"url":"https://api.safegpt.nl/"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT bearer token. Example: 'Bearer {token}'.","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"CreatePersonalizationViewModel":{"type":"object","properties":{"spokenLanguage":{"type":"string","description":"Preferred spoken language for personalized interactions.","nullable":true},"writingStyle":{"type":"string","description":"Preferred writing style instruction to store.","nullable":true},"occupation":{"type":"string","description":"Occupation context used to tune generated content.","nullable":true},"otherDetails":{"type":"string","description":"Additional details that should influence personalization.","nullable":true}},"description":"Represents the payload for creating a personalization profile."}}},"paths":{"/v1/Personalization/Create/{appUserId}":{"post":{"tags":["Personalization"],"summary":"Create personalization.","description":"Use this endpoint to create personalization.","parameters":[{"name":"appUserId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonalizationViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePersonalizationViewModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePersonalizationViewModel"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"description":"Authentication is required."},"403":{"description":"The user is not authorized to access this endpoint."}}}}}}
```

## Update personalization.

> Use this endpoint to update personalization.

```json
{"openapi":"3.0.1","info":{"title":"WebApi | v1","version":"1.0.0"},"tags":[{"name":"Personalization"}],"servers":[{"url":"https://api.safegpt.nl/"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT bearer token. Example: 'Bearer {token}'.","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"UpdatePersonalizationViewModel":{"type":"object","properties":{"spokenLanguage":{"type":"string","description":"Updated preferred spoken language.","nullable":true},"writingStyle":{"type":"string","description":"Updated writing style instruction.","nullable":true},"occupation":{"type":"string","description":"Updated occupation context.","nullable":true},"otherDetails":{"type":"string","description":"Updated free-form personalization notes.","nullable":true}},"description":"Represents the payload for updating an existing personalization profile."}}},"paths":{"/v1/Personalization/Update/{personalizationId}":{"put":{"tags":["Personalization"],"summary":"Update personalization.","description":"Use this endpoint to update personalization.","parameters":[{"name":"personalizationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePersonalizationViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdatePersonalizationViewModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdatePersonalizationViewModel"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"description":"Authentication is required."},"403":{"description":"The user is not authorized to access this endpoint."}}}}}}
```

## Delete personalization.

> Use this endpoint to delete personalization.

```json
{"openapi":"3.0.1","info":{"title":"WebApi | v1","version":"1.0.0"},"tags":[{"name":"Personalization"}],"servers":[{"url":"https://api.safegpt.nl/"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT bearer token. Example: 'Bearer {token}'.","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/v1/Personalization/Delete/{personalizationId}":{"delete":{"tags":["Personalization"],"summary":"Delete personalization.","description":"Use this endpoint to delete personalization.","parameters":[{"name":"personalizationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"},"401":{"description":"Authentication is required."},"403":{"description":"The user is not authorized to access this endpoint."}}}}}}
```

## Generates a composed writing-style prompt from personalization options.

> Combines style, tone, emoji, formatting, enthusiasm, and professionalism choices into a single writing-style output that can be reused in text generation flows.

```json
{"openapi":"3.0.1","info":{"title":"WebApi | v1","version":"1.0.0"},"tags":[{"name":"Personalization"}],"servers":[{"url":"https://api.safegpt.nl/"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"JWT bearer token. Example: 'Bearer {token}'.","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ExecutePersonalizationViewModel":{"type":"object","properties":{"baseStyleAndTone":{"$ref":"#/components/schemas/NullableOfBaseStyleAndTone"},"emojiStyle":{"$ref":"#/components/schemas/NullableOfEmojiStyle"},"formattingStyle":{"$ref":"#/components/schemas/NullableOfFormattingStyle"},"enthusiasticStyle":{"$ref":"#/components/schemas/NullableOfEnthusiasticStyle"},"professionalStyle":{"$ref":"#/components/schemas/NullableOfProfessionalStyle"}},"description":"Represents personalization style options used to compose a writing-style profile."},"NullableOfBaseStyleAndTone":{"type":"integer","description":"Base tone preset used as the primary style foundation.","nullable":true},"NullableOfEmojiStyle":{"type":"integer","description":"Emoji usage preference applied to generated text.","nullable":true},"NullableOfFormattingStyle":{"type":"integer","description":"Formatting preference such as concise, structured, or detailed output.","nullable":true},"NullableOfEnthusiasticStyle":{"type":"integer","description":"Enthusiasm level preference for generated text.","nullable":true},"NullableOfProfessionalStyle":{"type":"integer","description":"Professionalism level preference for generated text.","nullable":true}}},"paths":{"/v1/Personalization/Execute":{"post":{"tags":["Personalization"],"summary":"Generates a composed writing-style prompt from personalization options.","description":"Combines style, tone, emoji, formatting, enthusiasm, and professionalism choices into a single writing-style output that can be reused in text generation flows.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutePersonalizationViewModel"}},"text/json":{"schema":{"$ref":"#/components/schemas/ExecutePersonalizationViewModel"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ExecutePersonalizationViewModel"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"description":"Authentication is required."},"403":{"description":"The user is not authorized to access this endpoint."}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.safegpt.nl/api-nl/endpoints/personalization.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
