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.
Get posts feed
Retrieve a paginated feed of Quran Reflect posts, including reflections and lessons. Supports filtering by authors, tags, Quran references, groups, pages, and post types. Response items include engagement metadata such as likesCount, commentsCount, and recentComment when available. Use the dedicated comment endpoints to retrieve comment objects and totals. For ayah-by-ayah reads, use filter[references][0][chapterId], filter[references][0][from], and filter[references][0][to], and use filter[postTypeIds]=1 for reflections or filter[postTypeIds]=2 for lessons.
Query Parameters
Possible values: [newest, latest, following, draft, favorite, most_popular, only_room_members, public, feed, trending, popular]
Feed tab type. feed shows personalized content, trending shows explore, and following shows posts from followed users.
Possible values: [latest, popular]
Comma-separated list of language IDs to filter posts by reflection language, for example languages=1,2.
Possible values: >= 1
Default value: 1
Page number for pagination (default: 1).
Possible values: >= 1
Default value: 20
Number of posts per page (default: 20).
Whether to limit the feed to verified contributors. Public ayah-by-ayah reads typically combine this with indexed reference filters such as filter[references][0][chapterId], filter[references][0][from], and filter[references][0][to].
Possible values: [OR, AND]
Operator applied to multiple Quran reference filters.
Possible values: [OR, AND]
Operator applied to multiple tag filters.
Comma-separated Quran Reflect post type IDs. Use 1 for reflections and 2 for lessons.
Comma-separated list of page subdomains to include.
Comma-separated list of group URLs to include.
Possible values: >= 1
Ending ayah number for reference filter index 0. For a single ayah, use the same value as from.
Possible values: >= 1
Starting ayah number for reference filter index 0. Pair with the matching chapterId and to values.
Possible values: >= 1
Reference filter example for index 0. Use additional indices such as filter[references][1][chapterId] for more references.
Comma-separated list of tag values to include.
Comma-separated list of author identifiers to include.
- 200
Feed retrieved successfully with paginated posts
Schema
- Array [
- Array [
- ]
- Array [
- ]
- Array [
- ]
- ]
data object[] required
tags object[]
references object[]
recentComment object
author object required
avatarUrls object required
Default value: false
room object nullable
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
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,
Default value: 0
{
"total": 10,
"currentPage": 1,
"limit": 10,
"pages": 1,
"data": [
{
"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",
"memberType": 0
},
"body": "string",
"createdAt": "2026-06-14T11:33:53.483Z"
},
"room": {
"isAdmin": {},
"isOwner": {},
"isPublic": {},
"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",
"memberType": 0,
"locations": {},
"followersCount": 0,
"displayName": "string"
}
],
"isLiked": true,
"isByFollowedUser": true,
"isCommentedOn": true,
"isSaved": true,
"id": 0,
"authorId": "string",
"body": "string",
"discussionId": 0,
"draft": false,
"createdAt": "2026-06-14T11:33:53.484Z",
"updatedAt": "2026-06-14T11:33:53.484Z",
"publishedAt": "2026-06-14T11:33:53.484Z",
"global": true,
"toxicityScore": 0,
"reported": false,
"views": 0,
"removed": false,
"verified": false,
"roomPostStatus": 0,
"hidden": false,
"commentsCount": 0,
"likesCount": 0,
"viewsCount": 0,
"languageId": 0,
"languageName": "string",
"moderationStatus": 1,
"reviewedAt": "2026-06-14T11:33:53.484Z",
"featuredAt": "2026-06-14T11:33:53.484Z",
"pushedUpAt": "2026-06-14T11:33:53.484Z",
"estimatedReadingTime": 0,
"roomId": 0,
"postTypeId": 0,
"postTypeName": "string"
}
]
}
{
"total": 10,
"currentPage": 1,
"limit": 10,
"pages": 1,
"data": [
{
"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",
"memberType": 1
},
"body": "string",
"createdAt": "2026-04-02T00:00:00.000Z"
},
"room": {
"isAdmin": {},
"isOwner": {},
"isPublic": {},
"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",
"memberType": 1,
"locations": {},
"followersCount": 1,
"displayName": "string"
}
],
"isLiked": true,
"isByFollowedUser": true,
"isCommentedOn": true,
"isSaved": true,
"id": 1,
"authorId": "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,
"languageId": 1,
"languageName": "string",
"moderationStatus": 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"
}
]
}