Reviews by MGS API
REST API for fetching reviews, posting replies, and integrating Reviews by MGS into your tools. Available on Pro and Business plans.
Overview
The Reviews by MGS API gives you programmatic access to your business profile, its reviews, and aggregate statistics. All endpoints return JSON and follow REST conventions.
Base URL:
https://reviews.mgshosting.com/api/v1Authentication
Authenticate by sending your API key in the Authorization header. Keys are scoped to a single business. Treat them like passwords — never embed them in client-side code.
curl https://reviews.mgshosting.com/api/v1/business \
-H "Authorization: Bearer rbm_abcd1234_..."Scopes
Each API key carries one or more scopes that define what it can do:
business.read— Read your business profile and aggregate stats.reviews.read— List reviews on your business.reviews.write— Reply to reviews.*— Full access (use sparingly).
Insufficient scope returns 403 Forbidden. Choose the minimum scope set for each integration.
Rate limits
- Pro: 60 requests/minute, 10,000/day.
- Business: 300 requests/minute, 100,000/day.
Rate-limit info is returned via X-RateLimit-Limit and X-RateLimit-Remaining headers. Exceeding the limit returns 429 Too Many Requests.
Errors
Errors follow a consistent JSON shape:
{
"error": "Insufficient scope",
"code": "scope_required",
"required_scope": "reviews.write"
}401 Unauthorized— missing or invalid API key.402 Payment Required— your plan doesn't include this feature.403 Forbidden— key lacks the required scope.404 Not Found— resource doesn't exist or doesn't belong to you.429 Too Many Requests— rate-limit hit.
Endpoints — Business
Returns the authenticated business's public profile + aggregate rating stats.
Scope: business.read
Example response
{
"id": "uuid",
"name": "Acme Hosting",
"slug": "acme-hosting",
"category": "hosting",
"website_url": "https://acme.com",
"logo_url": "https://acme.com/logo.png",
"is_claimed": true,
"is_verified": true,
"average_rating": 4.8,
"total_reviews": 247,
"profile_url": "https://reviews.mgshosting.com/b/acme-hosting"
}Endpoints — Reviews
List reviews for your business. Default returns published reviews, sorted newest first.
Scope: reviews.read
Query parameters
status—published(default),pending,rejectedlimit— 1-100, default 25cursor— pagination cursor (review ID from previous page)
Example response
{
"data": [
{
"id": "uuid",
"rating": 5,
"title": "Best hosting I've used",
"body": "Migration was painless. Support replies in minutes.",
"reviewer_name": "Alex K.",
"reviewer_email_provided": true,
"verified": true,
"status": "published",
"reply": "Thanks Alex — glad we could help!",
"submitted_at": "2026-05-20T11:42:00Z",
"published_at": "2026-05-20T11:42:00Z"
}
],
"pagination": {
"next_cursor": "uuid",
"has_more": true
}
}Endpoints — Reply
Create or update the public reply on a review.
Scope: reviews.write
Request body
{
"body": "Thank you for the kind words! We're glad..."
}Example
curl -X POST https://reviews.mgshosting.com/api/v1/reviews/abc123/reply \
-H "Authorization: Bearer rbm_..." \
-H "Content-Type: application/json" \
-d '{"body":"Thanks!"}'Endpoints — Stats
Aggregate statistics for your business — total, average, distribution.
Scope: business.read
Example response
{
"total_reviews": 247,
"average_rating": 4.8,
"rating_distribution": {
"5": 192,
"4": 35,
"3": 12,
"2": 5,
"1": 3
}
}Webhooks (Business plan)
On the Business plan, you can configure webhooks to receive real-time events for review activity. Add up to 10 webhook endpoints, each subscribed to specific events.
Available events
review.created— A new review was submitted (any status).review.published— A review became publicly visible.review.replied— Your business replied publicly to a review.review.reported— A review was flagged by a user.
Payload format
{
"event": "review.published",
"occurred_at": "2026-05-22T11:42:00Z",
"data": {
"id": "uuid",
"rating": 5,
"title": "...",
"body": "...",
"reviewer_name": "Alex K.",
"verified": true
}
}Signature verification
Each webhook is signed with HMAC-SHA256 using your webhook secret, sent as the X-RbM-Signature header. Always verify before processing.