Sentric

API Docs

Sentric API Reference

Integrate review ingestion and retrieval into your product workflow using stable, authenticated API endpoints.

Authentication

All requests require an API key in the Authorization header.

Header

Authorization: Bearer your-api-key

Generate keys in dashboard settings.

Endpoints

POST
/api/reviews

Create one or more reviews for a product. Reviews are assigned to the API source platform for that product.

Required: product_id, review_text, rating, review_date. Optional: reviewer_name, review_title, source_id, metadata.

GET
/api/reviews

Fetch reviews with pagination, sorting, and filtering.

Required query: product_id. Optional: page, limit (max 100), sort_by, sort_order, min_rating, max_rating, source_platform, search, start_date, end_date.

Code examples

cURL: create review

curl -X POST "https://api.thesentric.com/api/reviews" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "product_id": "your-product-id",
    "review_text": "Great product, highly recommend!",
    "rating": 5,
    "review_date": "2024-01-15T10:30:00Z",
    "reviewer_name": "John Doe",
    "review_title": "Excellent quality"
  }'

JavaScript: create review

const response = await fetch("https://api.thesentric.com/api/reviews", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key"
  },
  body: JSON.stringify({
    product_id: "your-product-id",
    review_text: "Great product, highly recommend!",
    rating: 5,
    review_date: "2024-01-15T10:30:00Z",
    reviewer_name: "John Doe",
    review_title: "Excellent quality"
  })
});

const data = await response.json();
console.log(data);

Python: create review

import requests
from datetime import datetime

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key"
}

data = {
    "product_id": "your-product-id",
    "review_text": "Great product, highly recommend!",
    "rating": 5,
    "review_date": datetime.now().isoformat(),
    "reviewer_name": "John Doe",
    "review_title": "Excellent quality"
}

response = requests.post(
    "https://api.thesentric.com/api/reviews",
    headers=headers,
    json=data
)

print(response.json())

cURL: paginated fetch

curl -G "https://api.thesentric.com/api/reviews" \
  -H "Authorization: Bearer your-api-key" \
  --data-urlencode "product_id=your-product-id" \
  --data-urlencode "page=1" \
  --data-urlencode "limit=20" \
  --data-urlencode "sort_by=review_date" \
  --data-urlencode "sort_order=desc" \
  --data-urlencode "min_rating=3" \
  --data-urlencode "search=quality"

Rate limits and usage

Base URL

https://api.thesentric.com

Rate limit

1000 write requests per hour per API key, with burst protection

Authentication

Bearer API key in Authorization header

Permissions

reviews:write for POST, reviews:read for GET

Response format

JSON for all responses

Response examples

Success (POST /api/reviews)

{
  "success": true,
  "message": "Successfully added 1 review(s)",
  "reviews_added": 1,
  "reviews": [
    {
      "id": "review-uuid",
      "product_platform_id": "platform-uuid",
      "rating": 5,
      "review_date": "2024-01-15T10:30:00.000Z",
      "source_id": "api-your-product-id-..."
    }
  ]
}

Permission error

{
  "error": "Insufficient API key permissions",
  "requiredPermission": "reviews:read"
}

Success (GET /api/reviews)

{
  "success": true,
  "data": [
    {
      "id": "review-uuid",
      "product_id": "product-uuid",
      "source_platform": "api",
      "author": "John Doe",
      "title": "Excellent quality",
      "body": "Great product, highly recommend!",
      "rating": 5,
      "review_date": "2024-01-15T10:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 130,
    "total_pages": 7,
    "has_next": true,
    "has_prev": false
  }
}