User-related API environment
Production user-related API docs
These pages describe the Production user-related API stack.
Use production OAuth credentials, production API base URLs, and production app URLs when following this documentation.
Need to test before going live? Switch to the Pre-live docs using the environment switcher above.
Get posts feed
Retrieve a paginated feed of client-visible Quran Reflect posts, including reflections and lessons. Re-reflections are excluded from client post-type filters. Supports filtering by authors, tags, Quran references, groups, pages, and configured client-visible post type IDs. For example, use tab=qdc&languages=2&filter[postTypeIds]=1 to retrieve English QDC reflections. 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].
Query Parameters
Possible values: [newest, latest, qdc, following, draft, favorite, most_popular, only_room_members, public, feed, trending, popular]
Feed tab type. feed shows personalized content, 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 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 client-visible Quran Reflect PostType IDs. Re-reflect is moderation-only and is excluded; requesting only that type returns an empty feed.
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
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-08-14T09:04:15.424Z"
},
"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-08-14T09:04:15.424Z",
"updatedAt": "2026-08-14T09:04:15.424Z",
"publishedAt": "2026-08-14T09:04:15.424Z",
"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,
"reviewedAt": "2026-08-14T09:04:15.424Z",
"featuredAt": "2026-08-14T09:04:15.424Z",
"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,
"readsCount": 0,
"languageId": 1,
"languageName": "string",
"moderationStatus": 1,
"reviewedAt": "2026-04-02T00:00:00.000Z",
"featuredAt": "2026-04-02T00:00:00.000Z",
"estimatedReadingTime": 0,
"roomId": 1,
"postTypeId": 1,
"postTypeName": "string"
}
]
}