Add or update preference​
Add or update one user preferences group like favorite Tafsirs or translations.
Query Parameters
Possible values: [1, 2, 3, 4, 5, 6, 7, 11, 19]
The id of the Mushaf being used.
1 = QCFV2
2 = QCFV1
3 = Indopak
4 = UthmaniHafs
5 = KFGQPCHAFS
6 = Indopak15Lines
7 = Indopak16Lines
11 = Tajweeed
19 = QCFTajweedV4
Request Body
Possible values: [type]
Possible values: [readingPreference, selectedWordByWordLocale, wordClickFunctionality, isReadingByRevelationOrder, wordByWordContentType, wordByWordDisplay]
Possible values: [tafsirFontScale, quranTextFontScale, translationFontScale, wordByWordFontScale, quranFont, mushafLines]
Possible values: [selectedTranslations]
Possible values: [selectedTafsirs]
Possible values: [reciter, playbackRate, showTooltipWhenPlayingAudio, enableAutoScrolling, repeatSettings]
Possible values: [language]
Possible values: [en, ar, bn, fa, fr, id, it, nl, pt, ru, sq, th, tr, ur, zh, ms, es, sw]
Possible values: [auto, light, sepia, dark]
Possible values: [translation, reading]
Possible values: [en, ur, id, bn, tr, fa, ru, hi, de, ta, inh, fr]
Possible values: [play-audio, no-audio]
Possible values: [translation, transliteration]
Possible values: [tooltip, inline]
Possible values: [code_v1, code_v2, text_uthmani, text_indopak, qpc_uthmani_hafs, tajweed, tajweed_v4]
Possible values: [15_lines, 16_lines]
Possible values: >= 1 and <= 10
Possible values: >= 1 and <= 6
Possible values: [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
Possible values: [tafsirs, translations, audio, theme, quranReaderStyles, reading, language]
The preference group to be added or updated.
The preference key to be added or updated.
The preference value to be added or updated.
- 200
- 400
- 401
- 403
- 404
- 422
- 429
- 500
- 502
- 503
- 504
Request has been handled successfully.
Schema
data object
Possible values: [preference updated]
{
  "success": true,
  "data": {}
}
The request is missing required parameters or is invalid.
Schema
{
  "message": "The request is missing required headers or is invalid",
  "type": "invalid_request",
  "success": false
}
The request is unauthorized.
Schema
{
  "message": "The request requires user authentication",
  "type": "unauthorized",
  "success": false
}
Forbidden error. Can either be due to access token not being passed, having been expired or the caller trying to access a resource without enough permissions.
Schema
{
  "message": "The server understood the request, but refuses to authorize it",
  "type": "forbidden",
  "success": false
}
Not Found. The resource being accessed does not exist.
Schema
{
  "message": "The requested resource could not be found",
  "type": "not_found",
  "success": false
}
Validation Error. The request includes one or more invalid params. Please check the request params and try again.
Schema
{
  "message": "The request was well-formed but was unable to be followed due to semantic errors",
  "type": "unprocessable_entity",
  "success": false
}
Too many requests, please try again later.
Schema
{
  "message": "Too many requests, please try again later",
  "type": "rate_limit_exceeded",
  "success": false
}
Server Error. Something went wrong, try again later.
Schema
{
  "message": "The server encountered an internal error and was unable to complete your request",
  "type": "internal_server_error",
  "success": false
}
Invalid response from the upstream server
Schema
{
  "message": "The server was acting as a gateway or proxy and received an invalid response from the upstream server",
  "type": "bad_gateway",
  "success": false
}
The server is currently unable to handle the request due to a temporary overload or scheduled maintenance
Schema
{
  "message": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance",
  "type": "service_unavailable",
  "success": false
}
The server did not receive a timely response from the upstream server.
Schema
{
  "message": "The server was acting as a gateway or proxy and did not receive a timely response from the upstream server",
  "type": "gateway_timeout",
  "success": false
}