API Documentation

Everything you need to integrate ReviewStack into your application.

Authentication

All API requests require a valid API key. Include your key in the Authorization header as a Bearer token.

Header
Authorization: Bearer rsk_live_your_key_here

Get your API key from the dashboard. Keys start with rsk_live_.

Endpoint

GET/api/v1/reviews

Fetches reviews from YouTube and Reddit for the given product, runs them through AI summarization, and returns a structured aggregated review.

Parameters

ParamTypeRequiredDescription
productstringYesProduct name to search for. URL-encoded.
modelstringNoclaude (default) or openai

Response

A successful response returns a JSON object with the aggregated review data.

FieldTypeDescription
productstringThe queried product name
normalizedScorenumberAggregate score from 1-10
confidencenumber0-1 confidence based on review volume
summarystringOne-paragraph AI summary
prosstring[]Top 3-5 strengths
consstring[]Top 3-5 weaknesses
themesobject[]Recurring topics with mention count and sentiment
sourcesobjectPer-source metadata (YouTube comments, Reddit sentiment)
excerptsobject[]Notable quotes with attribution
modelstringAI model used (claude or openai)
cachedAtstringISO timestamp of when this was cached
expiresAtstringISO timestamp of cache expiry

Response Headers

X-RateLimit-LimitYour plan's monthly lookup limit
X-RateLimit-RemainingLookups remaining this period
X-Response-TimeRequest processing time in ms

Code Examples

curl
curl -X GET \
  "https://reviewstack.vercel.app/api/v1/reviews?product=airpods+pro+2&model=claude" \
  -H "Authorization: Bearer rsk_live_your_key_here"

Rate Limits

Rate limits are enforced on a rolling 30-day window per account. When you exceed your limit, you'll receive a 429 response with a Retry-After header.

PlanLimitPrice
Free50 lookups/month$0
Starter500 lookups/month$29/mo
Pro2,000 lookups/month$79/mo

Error Codes

All errors return a JSON object with an error field containing code, message, and status.

CodeStatusDescription
unauthorized401Missing or invalid API key
invalid_key401API key not found in database
key_disabled403API key has been deactivated
no_subscription403No active subscription for this account
missing_product400The 'product' query parameter is required
invalid_model400Model must be 'claude' or 'openai'
rate_limit_exceeded429Monthly lookup limit exceeded
scrape_failed502Failed to fetch reviews from sources
summarization_failed502AI summarization failed

Example error response

JSON
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Monthly lookup limit (50) exceeded. Upgrade your plan for more lookups.",
    "status": 429
  }
}

Ready to get started?

Create a free account and get your API key in 30 seconds.

Create free account