Facebook calls Page reviews recommendations in parts of its API. That is why these endpoints use
/recommendations, even though this guide calls the feature Facebook Page Reviews.How it works
This is an asynchronous job, same idea as Google Business Reviews:- Start: Trigger an import (“Fetch 50 reviews for this Page”).
- Wait: We fetch from Facebook and process the batch.
- Poll: Check import status.
- Fetch: Read imported reviews from the recommendations endpoint.
- Reply: Reply to the review or to comments inside the recommendation thread.
Step 1: Start the Import
Endpoint:POST /api/v1/misc/facebook/recommendations/import
Rules & Limits
countrange:1-100per request.- One active import per social account: if one is already running or recently completed, you’ll get
409. - Monthly limit per social account (default):
- Free: 5 reviews / month
- Pro: 100 reviews / month
- Business: 250 reviews / month
These are defaults. Organizations can have custom review-import limits configured.
Step 2: Check Import Status
Endpoints:GET /api/v1/misc/facebook/recommendations/import?teamId=team_123GET /api/v1/misc/facebook/recommendations/import/:importId
Statuses
PENDING: Waiting in queue.FETCHING_RECOMMENDATIONS: Import is running.COMPLETED: Finished.FAILED: Import failed after retries.RATE_LIMITED: Temporarily paused due to API/rate pressure; resumes automatically afterrateLimitResetAt.
Step 3: Fetch Imported Reviews
Endpoints:GET /api/v1/misc/facebook/recommendations?teamId=team_123&limit=50&offset=0GET /api/v1/misc/facebook/recommendations/:recommendationId?teamId=team_123
Query Parameters (GET /recommendations)
| Parameter | Type | Default | Description |
|---|---|---|---|
teamId | string | required | Team ID |
limit | number | 50 | Page size (1-100) |
offset | number | 0 | Pagination offset |
recommendationValue values: RECOMMEND, NOT_RECOMMEND, UNKNOWN.
limit in this response is your monthly import cap for that social account (not the page size).
Step 4: Reply to Reviews
Reply to a Review
Endpoint:PUT /api/v1/misc/facebook/recommendations/:recommendationId/reply
comment length: 1-4096 chars.
This creates a Facebook comment on the Page review story and stores it as ownerReplyComment.
Fetch Thread Comments
Endpoint:GET /api/v1/misc/facebook/recommendations/:recommendationId/comments?teamId=team_123
Reply to a Thread Comment
Endpoint:PUT /api/v1/misc/facebook/recommendations/:recommendationId/comments/:commentId/reply
Quirks & Gotchas
Reviews Are Recommendations
Facebook’s native model is recommendation-based, not star-review-based. Some records may haverating: null; use recommendationValue as the primary signal.
Some Reviews Cannot Be Replied To
Replies requireopenGraphStoryId. If Facebook does not expose it for a review, reply and thread endpoints return an error instead of pretending the action worked.
Incremental Sync
Re-running imports is safe. Reviews are upserted by external recommendation ID, so existing records are updated instead of duplicated.Temporary RATE_LIMITED Is Normal
When Facebook slows things down, imports switch to RATE_LIMITED and auto-resume. No manual retry endpoint needed for this path.
Capacity Is Per Social Account
remainingCapacity is calculated per connected Facebook social account, not globally across all accounts.