Review Rover for AI Agents
Machine-readable setup guide — fetch this page as text/plain for plain markdown.
What Review Rover Does
Review Rover automates Google review collection for local businesses. You enroll customers into campaigns, which send SMS/email sequences requesting reviews. Once a review is posted, the enrollment is marked complete. You can also monitor incoming reviews and post AI-generated replies.
Human-in-the-Loop Steps (Required Once)
These steps require a human with a browser. An agent cannot complete them.
- Create an account at admin.reviewrover.co
- Connect Google Business Profile via Settings → Integrations (OAuth — browser required)
- Generate an API token at Settings → API Tokens and hand it to the agent
Once those three steps are done, the agent handles everything else.
API Basics
Base URL: https://api.reviewrover.co/api/v1
Auth: Authorization: Bearer <token>
Format: JSON (Content-Type: application/json)CLI Quickstart
Install the CLI (works with any AI that can run shell commands):
npm install -g review-rover
# or use without installing:
npx review-rover <command># Save your API token
review-rover auth
# Set a default account
review-rover accounts listCanonical Agent Workflow
After the human setup above, an agent automates the full review loop:
Step 1: Find or create a contact
# CLI
review-rover contacts upsert --email="john@example.com" --name="John Smith" --phone="555-1234"
# HTTP
GET /api/v1/contacts?email=john@example.com
POST /api/v1/contacts
{ "email": "john@example.com", "first_name": "John", "last_name": "Smith" }Step 2: List available campaigns
# CLI
review-rover campaigns list
# HTTP
GET /api/v1/campaignsStep 3: Enroll the contact
# CLI
review-rover enroll --contact=cont_xxx --campaign=camp_xxx
# HTTP
POST /api/v1/enrollments
{ "contact_id": "cont_xxx", "campaign_id": "camp_xxx" }Step 4: Monitor the review queue
# CLI
review-rover reviews list --unreplied --json
# HTTP
GET /api/v1/metrics/unreplied_reviews
# Returns: { count, reviews[], locations[] }Step 5: Draft and post a reply
# CLI — draft (AI-generated, not posted)
review-rover reviews draft --id=rev_xxx --tone=professional
# CLI — post a reply
review-rover reviews reply --id=rev_xxx --message="Thank you for the kind words!"
# HTTP — generate draft
POST /api/v1/reviews/rev_xxx/reply/generate
# HTTP — save reply
POST /api/v1/reviews/rev_xxx/reply
{ "body": "Thank you for the kind words!" }Step 6: (Optional) Register a webhook to avoid polling
# CLI
review-rover webhooks create --url="https://myagent.com/hook" --events=review.created
# HTTP
POST /api/v1/webhook_subscriptions
{ "url": "https://myagent.com/hook", "event_types": ["review.created"] }Webhook payloads are signed with X-ReviewRover-Signature: sha256=<hmac>
Useful Metrics Endpoints
# Unreplied reviews summary
GET /api/v1/metrics/unreplied_reviews
# Review velocity (last 7 / 30 days)
GET /api/v1/metrics/review_velocityFull API Reference
Complete endpoint docs with request/response schemas: docs.reviewrover.co
