User-related API environment
Pre-live user-related API docs
These pages describe the Pre-live user-related API stack.
Use pre-live OAuth credentials, pre-live API base URLs, and pre-live app URLs when following this documentation. Keep your OAuth flow, API requests, callback URLs, and manual testing within the pre-live environment.
- Use prelive.quran.com for auth-related testing.
- Use prelive.quranreflect.org for Quran Reflect paths where applicable.
- Do not mix production sessions or production user data with pre-live testing.
Edit post
Update an existing post. Only the post author or admins can edit. Supports updating body, references, mentions, draft status, and room visibility settings.
Path Parameters
Unique numeric post ID to update
Request Body required
Partial post data to update - only include fields to change
- Array [
- ]
- Array [
- ]
Possible values: [0, 1, 2]
The room post status, defaults to publicly: 1. As Room: 0, Publicly: 1, Only Members: 2
Possible values: <= 10
QDC recipe media attachments. Each item requires an id, provider=qdc, image/video type, recipe, and preview. Invalid recipes and duplicate verse ranges are rejected.
Possible values: >= 6 characters
Possible values: Value must match regular expression TAGS_PATTERN
references object[]
Possible values: >= 1
Default value: 0
Default value: 0
mentions object[]
Possible values: Value must match regular expression /{{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}}/
Possible values: >= 1
- 200
- 401
- 403
- 404
Post updated successfully with the updated post data
Schema
- Array [
- ]
- Array [
- ]
- Array [
- ]
- Array [
- ]
data object required
reactionSummary object
Total reactions represented in counts.
counts object[] required
Nonzero counts ordered by descending count, then reaction identifier.
Number of non-banned reactors using this type.
The authenticated viewer’s reaction, or null for no reaction or an anonymous viewer.
Parsed QDC recipe media attachments; absent or invalid stored media is returned as an empty array.
tags object[]
references object[]
recentComment object
author object required
avatarUrls object required
Default value: false
room object nullable
Deprecated content-visibility projection. Use privacy instead.
Possible values: [public, closed, private]
Default value: false
mentions object[]
avatarUrls object required
Default value: false
Default value: false
Default value: false
Default value: false
Default value: false
Possible values: [0, 1, 2]
Default value: 0
@description 0: OnlyMembers, 1: Publicly, 2: AsRoom
Default value: false
Default value: 0
Default value: 0
Default value: 0
Default value: 0
Possible values: [1, 2, 3, 4, 5, 6, 30]
featured = 1, // Like Sticky posts, will be featured for a time period.Shown at top in feed and partner apps
promoted = 2, // High quality content.Shown at top(after featured) in feed and partner apps
normal = 3, // Default status, available in search, latest and popular tabs.In feed(if you're following the author)
hidden = 4, // Visible only to author or moderators, or via private share link.
private_note = 5, // Private notes, only visible to author or via private share link.These are the posts made "private" by moderators.
requested_review = 6, // User requested the review, treat them has hidden.Only visible to author and moderators
deleted = 30,
Possible values: [1, 2, 100]
Moderator review state. 1 = reviewed, 2 = pending review, 100 = legacy. This is separate from post visibility, which is controlled by moderationStatus.
Default value: 0
{
"data": {
"sourcePostId": 0,
"sourcePost": {},
"hasSourcePost": true,
"isSourcePostVisible": true,
"reReflectsCount": 0,
"reactionSummary": {
"total": 18,
"counts": [
{
"reactionType": "reaction1",
"count": 12
}
],
"currentUserReaction": "reaction1"
},
"media": [
{}
],
"tags": [
{
"language": "string",
"id": 0,
"name": "string"
}
],
"references": [
{
"id": "string",
"from": 0,
"to": 0,
"chapterId": 0
}
],
"author": {},
"recentComment": {
"id": 0,
"author": {
"postsCount": 0,
"avatarUrls": {
"small": "string",
"medium": "string",
"large": "string"
},
"id": "string",
"username": "string",
"verified": false,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"memberType": 0
},
"body": "string",
"createdAt": "2026-10-12T09:27:02.010Z"
},
"room": {
"isAdmin": {},
"isOwner": {},
"privacy": "public",
"id": 0,
"subdomain": "string",
"roomType": "string",
"verified": false,
"name": "string",
"_group": "string"
},
"mentions": [
{
"postsCount": 0,
"avatarUrls": {
"small": "string",
"medium": "string",
"large": "string"
},
"id": "string",
"username": "string",
"verified": false,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"memberType": 0,
"locations": {},
"followersCount": 0,
"displayName": "string"
}
],
"isLiked": true,
"isByFollowedUser": true,
"isCommentedOn": true,
"isSaved": true,
"id": 0,
"authorId": "string",
"editSource": "string",
"privacySource": "string",
"body": "string",
"discussionId": 0,
"draft": false,
"createdAt": "2026-10-12T09:27:02.011Z",
"updatedAt": "2026-10-12T09:27:02.011Z",
"publishedAt": "2026-10-12T09:27:02.011Z",
"global": true,
"toxicityScore": 0,
"reported": false,
"views": 0,
"removed": false,
"verified": false,
"roomPostStatus": 0,
"hidden": false,
"commentsCount": 0,
"likesCount": 0,
"viewsCount": 0,
"readsCount": 0,
"languageId": 0,
"languageName": "string",
"moderationStatus": 1,
"reviewStatus": 1,
"reviewedAt": "2026-10-12T09:27:02.011Z",
"featuredAt": "2026-10-12T09:27:02.011Z",
"pushedUpAt": "2026-10-12T09:27:02.011Z",
"estimatedReadingTime": 0,
"roomId": 0,
"postTypeId": 0,
"postTypeName": "string"
},
"success": true
}
{
"data": {
"sourcePostId": 1,
"hasSourcePost": true,
"isSourcePostVisible": true,
"reReflectsCount": 1,
"reactionSummary": {
"total": 18,
"counts": [
{
"reactionType": "reaction1",
"count": 12
}
],
"currentUserReaction": "reaction1"
},
"media": [
{}
],
"tags": [
{
"language": "string",
"id": 1,
"name": "string"
}
],
"references": [
{
"id": "string",
"from": 1,
"to": 1,
"chapterId": 1
}
],
"author": {},
"recentComment": {
"id": 1,
"author": {
"postsCount": 1,
"avatarUrls": {
"small": "string",
"medium": "string",
"large": "string"
},
"id": "string",
"username": "string",
"verified": false,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"memberType": 1
},
"body": "string",
"createdAt": "2026-04-02T00:00:00.000Z"
},
"room": {
"isPublic": true,
"isAdmin": {},
"isOwner": {},
"privacy": "public",
"id": 1,
"subdomain": "string",
"roomType": "string",
"verified": false,
"name": "string",
"_group": "string"
},
"mentions": [
{
"postsCount": 1,
"avatarUrls": {
"small": "string",
"medium": "string",
"large": "string"
},
"id": "string",
"username": "string",
"verified": false,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"memberType": 1,
"locations": {},
"followersCount": 1,
"displayName": "string"
}
],
"isLiked": true,
"isByFollowedUser": true,
"isCommentedOn": true,
"isSaved": true,
"id": 1,
"authorId": "string",
"editSource": "string",
"privacySource": "string",
"body": "string",
"discussionId": 1,
"draft": false,
"createdAt": "2026-04-02T00:00:00.000Z",
"updatedAt": "2026-04-02T00:00:00.000Z",
"publishedAt": "2026-04-02T00:00:00.000Z",
"global": true,
"toxicityScore": 1,
"reported": false,
"views": 1,
"removed": false,
"verified": false,
"roomPostStatus": 0,
"hidden": false,
"commentsCount": 0,
"likesCount": 0,
"viewsCount": 0,
"readsCount": 0,
"languageId": 1,
"languageName": "string",
"moderationStatus": 1,
"reviewStatus": 1,
"reviewedAt": "2026-04-02T00:00:00.000Z",
"featuredAt": "2026-04-02T00:00:00.000Z",
"pushedUpAt": "2026-04-02T00:00:00.000Z",
"estimatedReadingTime": 0,
"roomId": 1,
"postTypeId": 1,
"postTypeName": "string"
},
"success": true
}
User not authenticated
User not authorized to edit this post
Post not found