FleetbaseFleetbase

Reviews

Reviews follow the store's or network's `reviews_enabled` option (on by default for a store, off by default for a network). When reviews are off, lists are empty, counts are 0, eligibility answers `reviews_disabled` and creating a review returns `403`. Reviews capture customer ratings and feedback for stores and products. Anyone can read a store's reviews and rating counts. Writing one is limited to verified purchases: the customer needs a completed order with the store (or containing the product) that they have not reviewed yet. Call Check Review Eligibility before offering "Write a review" so the app can explain why when it can't. Customers can delete their own reviews. Reviews are public, so the reviewer is shown by first name and last initial only, without contact details.

The Review object

A customer's rating and written review of a store or product, with optional photos. `verified` is true for reviews written from a completed order.
Attributes
idstringoptional

Public identifier of the review.

subject_idstringoptional

Public identifier of the reviewed store or product.

subject_typeenumoptional

What was reviewed. One of store, product.

verifiedbooleanoptional

Whether the review was written from a completed order (a verified purchase).

is_minebooleanoptional

Whether the customer making the request wrote it. Only true when the request carries that customer's Customer-Token.

ratingintegeroptional

Rating from 1 to 5.

contentstringoptional

Review text.

customerobjectoptional

The reviewer: id, name as first name and last initial (e.g. Ada B.), photo_url, reviews_count and uploads_count. Email and phone are never included.

slugstringoptional

URL-friendly review slug.

photosarray of objectsoptional

Photos attached to the review: id, filename, type, caption and url.

created_attimestampoptional

Time the review was created.

updated_attimestampoptional

Time the review was last updated.

The Review object
{
  "id": "review_2xK9mQ1",
  "subject_id": "store_3Xb9kL2",
  "subject_type": "store",
  "verified": true,
  "is_mine": false,
  "rating": 5,
  "content": "Great pickup experience.",
  "customer": {
    "id": "customer_8Jk2mP1",
    "name": "Ada B.",
    "photo_url": "https://files.example.com/ada.png",
    "reviews_count": 3,
    "uploads_count": 1
  },
  "slug": "great-pickup-experience",
  "photos": [
    {
      "id": "file_4Lm2nQ8",
      "filename": "pickup.jpg",
      "type": "image/jpeg",
      "caption": null,
      "url": "https://files.example.com/pickup.jpg"
    }
  ],
  "created_at": "2026-05-07T09:30:00Z",
  "updated_at": "2026-05-07T09:30:00Z"
}
GET/v1/reviews

Query Reviews ❗

Lists a store's reviews (reviews of the store itself, not its products). Send the customer token to have the customer's own review marked with "is_mine": true. With a network key, pass store; without it the list is empty, and an unknown or non-member store returns 400. When reviews are turned off, the list is empty.

Query parameters
storestringoptional

Store public ID. Required with a network key (the store must be a member); ignored with a store key.

limitstringoptional

Maximum number of reviews to return.

offsetstringoptional

Number of reviews to skip.

sortstringoptional

newest, oldest, highest or lowest.

GET/v1/reviews
curl https://api.fleetbase.io/v1/reviews?store={{store_id}}&limit=&offset=&sort= \
  -H "Authorization: Bearer flb_live_…" \
  -H "Customer-Token: {{customer_token}}"
GET/v1/reviews/eligibility

Check Review Eligibility

Whether the authenticated customer can review a store or product, and why not. Returns:

{ "can_review": true, "reason": null, "message": null, "order": "order_9Ks2mP1", "review": null }

order is the completed order the review will be attached to. When can_review is false, reason is one of sign_in_required (no customer token), unsupported_subject, no_completed_order (no completed order with the store, or containing the product) already_reviewed (every completed order has been reviewed; review is the latest one) or reviews_disabled (reviews are turned off for the store or network), with a customer-facing message.

Query parameters
subjectstringrequired

Public identifier of the store or product to review.

orderstringoptional

A specific completed order to review, e.g. from the order screen. Without it the most recent unreviewed completed order is used.

GET/v1/reviews/eligibility
curl https://api.fleetbase.io/v1/reviews/eligibility?subject={{store_id}}&order= \
  -H "Authorization: Bearer flb_live_…" \
  -H "Customer-Token: {{customer_token}}"
POST/v1/reviews

Create a review

Creates a verified-purchase review for the authenticated customer. The customer must be allowed to review the subject (see Check Review Eligibility); otherwise the request is refused with 403 and { "error": message, "reason": reason }, using the same reasons. The review is linked to the order it reviews, so it is returned with "verified": true.

Body parameters
subjectstringrequired

Public identifier of the store or product being reviewed.

orderstringoptional

The completed order being reviewed. Optional; the most recent unreviewed completed order is used without it.

ratingintegerrequired

Rating from 1 to 5.

contentstringrequired

Review text, up to 2000 characters.

filesarray of objectsoptional

Up to 4 photos or videos, each \{ "data": base64, "type": "image/jpeg" \}.

POST/v1/reviews
curl -X POST https://api.fleetbase.io/v1/reviews \
  -H "Authorization: Bearer flb_live_…" \
  -H "Content-Type: application/json" \
  -H "Customer-Token: {{customer_token}}" \
  -d '{
  "subject": "{{store_id}}",
  "content": "Arrived on time and exactly as described.",
  "rating": 5
}'
GET/v1/reviews/count

Counts the number of ratings for a store

Counts the store's reviews by rating, as { "1": n, "2": n, "3": n, "4": n, "5": n }. Only reviews of the store itself are counted. With a network key, pass store; without it the response is []. When reviews are turned off, every count is 0.

Query parameters
storestringoptional

Network keys only: public ID of the member store to count reviews for. An unknown store returns 400.

GET/v1/reviews/count
curl https://api.fleetbase.io/v1/reviews/count?store= \
  -H "Authorization: Bearer flb_live_…"
GET/v1/reviews

Retrieve a Store review

Retrieve a Store review

GET/v1/reviews
curl https://api.fleetbase.io/v1/reviews \
  -H "Authorization: Bearer flb_live_…"
DELETE/v1/reviews

Delete a Review

Deletes one of the authenticated customer's own reviews. Deleting another customer's review is refused with 403.

DELETE/v1/reviews
curl -X DELETE https://api.fleetbase.io/v1/reviews \
  -H "Authorization: Bearer flb_live_…" \
  -H "Customer-Token: {{customer_token}}"
Reviews | Fleetbase