Zapier API Documentation

Integrate Velocity Review with 6,000+ apps through Zapier. Automate review requests, manage customers, and streamline your review collection workflow.

Production Ready
REST API
Rate Limited

Quick Start

1

Get API Key

Generate your API key from the Velocity Review dashboard

2

Configure Zapier

Set up authentication and test the connection

3

Create Workflows

Build automated review request workflows

Authentication

Velocity Review uses API key authentication. Include your API key in the Authorization header or as a query parameter.

Base URL

https://review2.com

Authentication Methods

Header (Recommended)
Authorization: Bearer YOUR_API_KEY
Query Parameter
?api_key=YOUR_API_KEY
Custom Header
x-api-key: YOUR_API_KEY

Test Authentication

GET
/api/zapier/auth

API Endpoints

POST
GET
/api/zapier/send-review-request

Send a review request to a customer via email, SMS, or both.

Request Parameters
ParameterTypeRequiredDescription
customer_namestring
Required
Customer's full name
customer_emailstring
Optional
Customer's email address
customer_phonestring
Optional
Customer's phone number (E.164 format)
service_descriptionstring
Optional
Description of service provided
send_methodstring
Optional
email, sms, or both (default: email)
autopilotboolean
Optional
Schedule during business hours (default: false)
Example Request (POST)
curl -X POST "https://review2.com/api/zapier/send-review-request" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_name": "John Doe",
    "customer_email": "john@example.com",
    "customer_phone": "+1234567890",
    "service_description": "HVAC Repair",
    "send_method": "email",
    "autopilot": false
  }'
Example Request (GET)
curl "https://review2.com/api/zapier/send-review-request?customer_name=John%20Doe&customer_email=john@example.com&send_method=email" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
  "id": "req_123456789",
  "success": true,
  "client_id": "client_123",
  "status": "pending",
  "delivery_method": "email",
  "scheduled_date": "2024-01-01T12:00:00Z",
  "created_at": "2024-01-01T12:00:00Z",
  "customer_name": "John Doe",
  "customer_email": "john@example.com",
  "customer_phone": null,
  "service_type": "HVAC Repair",
  "autopilot_enabled": false,
  "message": "Review request sent immediately for John Doe",
  "sent_immediately": true
}
GET
/api/zapier/new-review

Retrieve new reviews for triggering Zapier workflows (polling trigger).

Query Parameters
ParameterTypeDescription
limitintegerNumber of reviews to return (max: 100, default: 10)
sincestringISO 8601 timestamp to fetch reviews after
Example Response
[
  {
    "id": "review_123",
    "customer_name": "John Doe",
    "customer_email": "john@example.com",
    "rating": 5,
    "review_text": "Excellent service! Highly recommend.",
    "platform": "google",
    "review_url": "https://google.com/review/123",
    "created_at": "2024-01-01T12:00:00Z",
    "business_id": "business_123",
    "service_type": "HVAC Repair"
  }
]
GET
/api/zapier/auth

Test API authentication and retrieve business information.

Example Response
{
  "success": true,
  "business": {
    "id": "business_123",
    "name": "Your Business Name",
    "subscription_status": "active"
  },
  "authenticated": true,
  "message": "Successfully connected to Your Business Name"
}

Error Handling

The API uses standard HTTP status codes and returns detailed error messages in JSON format.

Common Error Responses

401
Unauthorized
{ "error": "Invalid API key", "status": 401 }
403
Forbidden
{ "error": "Business subscription is not active", "status": 403 }
400
Bad Request
{ "error": "customer_name is required", "status": 400 }
429
Rate Limited
{ "error": "Rate limit exceeded", "status": 429, "retry_after": 60 }

Retry Logic

  • • 401/403 Errors: Don't retry - fix authentication/subscription
  • • 429 Errors: Retry with exponential backoff
  • • 500 Errors: Retry up to 3 times with delays
  • • Network Errors: Retry with exponential backoff

Rate Limits

API endpoints are rate limited to ensure fair usage and system stability.

EndpointRate LimitWindow
/api/zapier/auth100 requestsper minute
/api/zapier/send-review-request1,000 requestsper hour
/api/zapier/new-review500 requestsper hour

Note: Rate limits are per API key. Contact support if you need higher limits for your use case.

Zapier Configuration

Authentication Configuration

{
  "type": "custom",
  "fields": [
    {
      "key": "api_key",
      "label": "API Key",
      "type": "string",
      "required": true,
      "helpText": "Get your API key from Velocity Review Dashboard → Settings"
    }
  ],
  "test": {
    "url": "{{bundle.authData.base_url}}/api/zapier/auth",
    "method": "GET",
    "headers": {
      "Authorization": "Bearer {{bundle.authData.api_key}}"
    }
  },
  "connectionLabel": "Velocity Review Account"
}

New Review Trigger

{
  "key": "new_review",
  "noun": "Review",
  "display": {
    "label": "New Review",
    "description": "Triggers when a new review is received"
  },
  "operation": {
    "type": "polling",
    "perform": {
      "url": "https://review2.com/api/zapier/new-review",
      "method": "GET",
      "headers": {
        "Authorization": "Bearer {{bundle.authData.api_key}}"
      },
      "params": {
        "limit": "{{bundle.meta.limit}}",
        "since": "{{bundle.meta.since}}"
      }
    }
  }
}

Send Review Request Action

{
  "key": "send_review_request",
  "noun": "Review Request",
  "display": {
    "label": "Send Review Request",
    "description": "Send a review request to a customer"
  },
  "operation": {
    "inputFields": [
      {
        "key": "customer_name",
        "label": "Customer Name",
        "type": "string",
        "required": true
      },
      {
        "key": "customer_email",
        "label": "Customer Email",
        "type": "string",
        "required": false
      },
      {
        "key": "send_method",
        "label": "Send Method",
        "type": "string",
        "choices": {
          "email": "Email",
          "sms": "SMS",
          "both": "Both Email and SMS"
        },
        "default": "email"
      }
    ],
    "perform": {
      "url": "https://review2.com/api/zapier/send-review-request",
      "method": "GET",
      "params": {
        "customer_name": "{{bundle.inputData.customer_name}}",
        "customer_email": "{{bundle.inputData.customer_email}}",
        "send_method": "{{bundle.inputData.send_method}}"
      },
      "headers": {
        "Authorization": "Bearer {{bundle.authData.api_key}}"
      }
    }
  }
}

Popular Workflow Examples

ServiceTitan → Velocity Review

Trigger: ServiceTitan "Job Completed"
Action: Send Review Request
Delay: 2 hours after completion

Square → Velocity Review

Trigger: Square "New Payment"
Filter: Amount > $50
Action: Send Review Request

Jobber → Velocity Review

Trigger: Jobber "Job Completed"
Action: Send Review Request
Method: SMS preferred

Google Sheets → Velocity Review

Trigger: New row in spreadsheet
Action: Send Review Request
Use Case: Bulk review campaigns

Support & Resources

Need help with your integration? Our support team is here to help you get up and running quickly.