Quran Reflect Lessons and Reflections Feed
Retrieve the Quran Reflect lessons and reflections feed, a paginated stream of searchable lesson posts and reflection posts. Use this endpoint to browse lesson and reflection content across the main feed, trending, following, latest, newest, public, popular, and QDC views, with filters for authors, tags, Quran references, groups, pages, verified content, and post types, plus language selection. 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. For English-only promoted and moderator-reviewed reflections, use tab=qdc&languages=2&filter[postTypeIds]=1. /quran-reflect/v1/posts/by-verse/{verseKey} is user-bound and is not part of the public client_credentials read subset. Full gateway path is /quran-reflect/v1/posts/feed; this is not a /content/api/v4 endpoint. This Quran Reflect endpoint is compatible with the client_credentials grant and requires x-auth-token and x-client-id with the post.read scope. When called with a user-bound token, language preferences may personalize the response; client_credentials callers receive non-user-personalized results.
Query Parameters
Possible values: [newest, latest, qdc, following, draft, favorite, most_popular, only_room_members, public, feed, trending, popular]
Feed view for Quran Reflect lessons and reflections. feed shows the personalized main feed, trending shows explore, following shows posts from followed users, and qdc returns promoted and moderator-reviewed posts. On tabs other than qdc, languages prioritizes selected languages but does not exclude other languages. With qdc, language selection limits the allowed languages; non-English selections include English as a fallback.
Comma-separated Quran Reflect language IDs: Arabic 1, English 2, Spanish 3, Bahasa Melayu 4, Urdu 5, Bahasa Indonesia 6, French 7, and Swahili 59. On tabs other than qdc, selected languages are prioritized but other languages may still be returned. Use tab=qdc&languages=2 to restrict QDC results to English; add filter[postTypeIds]=1 to return reflections only. Non-English QDC selections include English as a fallback. These IDs are separate from Content API /resources/languages IDs.
Possible values: >= 1
Default value: 1
Page number for lessons and reflections feed pagination (default: 1).
Possible values: >= 1
Default value: 20
Number of lessons or reflections to return per page (default: 20).
Comma-separated list of Quran Reflect author identifiers to include in the lessons and reflections feed.
Comma-separated list of Quran Reflect tag values to include in the lessons and reflections feed.
Possible values: >= 1
Chapter number for Quran reference filter index 0. Use matching from and to values to target a specific ayah or passage.
Possible values: >= 1
Starting ayah number for Quran reference filter index 0. Pair this with the matching chapterId and to values.
Possible values: >= 1
Ending ayah number for Quran reference filter index 0. For a single ayah, use the same value as from.
Comma-separated list of Quran Reflect group URLs to include in the lessons and reflections feed.
Comma-separated list of Quran Reflect page subdomains to include in the lessons and reflections feed.
Comma-separated Quran Reflect post type IDs. Use 1 to return reflections, 2 to return lessons, or include both values to search both content types. 1 means Reflection, a personal and heart-centered response to an ayah; see https://quranreflect.com/faq. 2 means Lesson, a knowledge-based takeaway from an ayah focused on explaining a benefit or point of understanding.
Possible values: [OR, AND]
How multiple tag filters are matched when searching lessons and reflections: OR matches any selected tag and AND requires all selected tags.
Possible values: [OR, AND]
How multiple Quran reference filters are matched when searching lessons and reflections: OR matches any reference and AND requires all references.
When true, return only verified Quran Reflect content in the lessons and reflections feed. Public ayah-by-ayah reads typically combine this with the documented Quran reference filters.
- 200
Quran Reflect lessons and reflections feed retrieved successfully with pagination
Schema
- Array [
- Array [
- ]
- Array [
- ]
- Array [
- ]
- ]
data object[] required
tags object[]
references object[]
recentComment object
Most recent visible comment summary when available. Use the dedicated comment endpoints to retrieve full comment objects.
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
Total number of comments on the post.
Default value: 0
Total number of likes on the post.
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
Numeric Quran Reflect post type identifier. 1 = Reflection. 2 = Lesson.
Human-readable Quran Reflect post type name, such as reflection or lesson.
{
"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-09-07T09:07:52.906Z"
},
"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-09-07T09:07:52.907Z",
"updatedAt": "2026-09-07T09:07:52.907Z",
"publishedAt": "2026-09-07T09:07:52.907Z",
"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-09-07T09:07:52.907Z",
"featuredAt": "2026-09-07T09:07:52.907Z",
"estimatedReadingTime": 0,
"roomId": 0,
"postTypeId": 0,
"postTypeName": "string"
}
]
}
Successful response
{
"total": 1,
"currentPage": 1,
"limit": 20,
"pages": 1,
"data": [
{
"id": 101,
"authorId": "user-123",
"body": "Reflection text",
"createdAt": "2026-04-01T12:00:00.000Z",
"updatedAt": "2026-04-01T12:00:00.000Z",
"publishedAt": "2026-04-01T12:00:00.000Z",
"commentsCount": 2,
"likesCount": 5,
"viewsCount": 20,
"languageName": "english",
"roomId": 1,
"postTypeId": 1,
"postTypeName": "reflection"
}
]
}
Feed page with reflection posts
{
"total": 1,
"currentPage": 1,
"limit": 20,
"pages": 1,
"data": [
{
"id": 101,
"authorId": "user-123",
"body": "Reflection text",
"createdAt": "2026-04-01T12:00:00.000Z",
"updatedAt": "2026-04-01T12:00:00.000Z",
"publishedAt": "2026-04-01T12:00:00.000Z",
"commentsCount": 2,
"likesCount": 5,
"viewsCount": 20,
"languageName": "english",
"roomId": 1,
"postTypeId": 1,
"postTypeName": "reflection"
}
]
}
Feed page with no matching posts
{
"total": 0,
"currentPage": 1,
"limit": 20,
"pages": 0,
"data": []
}