Skip to content

BizRatings API Integration Guide

BizRatings API Integration Guide

Base URL: https://api.bizratings.com
Interactive Explorer: https://api.bizratings.com/swagger/index.html
Support: support@bizratings.com


1. Getting Started

Authentication

All API requests require an API key issued by BizRatings. Pass your key in the request header:

Authorization: Bearer YOUR_API_KEY

Contact support@bizratings.com to obtain or rotate your API key.

Response Format

All endpoints return JSON. Dates are returned as ISO 8601 strings. All requests must be made over HTTPS.

Versioning

Several endpoints are available in multiple versions. Each version adds fields to the response without removing anything from the previous version:

  • /api/tickets/... — Base version, core fields
  • /api/v1.1/tickets/... — Adds ContactRecID
  • /api/v1.2/tickets/... — Adds ResponderIP and UserAgent
  • /api/v1.3/tickets/... — Adds SentOn (recommended for new integrations)

Pagination

Use currentPage (starting at 1) and pageSize to page through large result sets. Omitting both returns the first page at the default page size.

Date Formats

Date parameters accept two formats interchangeably: 2022/06/01 or 01-Jun-2022.

Filtering with filterBy / keyword

Many endpoints support a two-parameter filter pair. Set filterBy to an internal field name and keyword to the value you want to match. Example:

?filterBy=CompanyName&keyword=Acme Corp

Valid filterBy values are listed under each endpoint below.


2. How BizRatings Sends Surveys

BizRatings sends survey invitations to your clients when a support ticket or project closes. There are two integration methods — the method used affects which fields are available in the API response.

API Integration (e.g. ConnectWise Manage)

When a ticket closes, your PSA submits the ticket record to BizRatings via POST /api/tickets. BizRatings queues the ticket and dispatches the survey invitation through SendGrid. The SentOn timestamp accurately reflects when the survey email was delivered.

Email Template Integration (e.g. HaloPSA)

A BizRatings rating widget is embedded directly in your PSA's closed-ticket email template. When your PSA sends the closure email, the widget notifies BizRatings with the ticket details and a survey record is created at that moment.

Important differences for email template integrations:

  • SentOn — Reflects when BizRatings received the signal from your email template, accurate to within seconds of the actual send.
  • TicketClosedOn — Will be null. Use startDate/endDate (based on survey send date) to filter these records.
  • Duplicate records — May appear when the same ticket sends to multiple contacts simultaneously.

3. Ticket Survey Responses

These endpoints return survey responses collected from closed support tickets. Each response includes ticket metadata, assigned technicians, the client's satisfaction rating, and any written comment. All versions share the same query parameters — later versions add fields to the response payload.

GET /api/tickets/responses

Returns survey responses with core response fields.

Parameters:

  • memberName (string) — Filter to a specific technician by name.
  • filterBy (string) — Field to filter on: SRServiceRecID, Keywords, mKeywords, CompanyName, ContactEmail, AssignedResources, BoardName.
  • keyword (string) — Value to match against the filterBy field.
  • reviewType (integer) — 0 = all responses; 3 = only responses with a written comment.
  • score (integer) — Filter by survey score. Pass 0 to return all scores.
  • startDate (string) — Start of date range.
  • endDate (string) — End of date range.
  • currentPage (integer) — Page number, starts at 1.
  • pageSize (integer) — Records per page.

GET /api/v1.1/tickets/responses

Adds ContactRecID to the response — your CRM's internal ID for the survey respondent's contact record. Use this version when you need to correlate respondents back to contacts in your PSA. Same parameters as above.

GET /api/v1.2/tickets/responses

Adds ResponderIP and UserAgent — the IP address and browser string of the device used to submit the survey. Useful for fraud detection or audit purposes. Same parameters as above.

GET /api/v1.3/tickets/responses

Adds SentOn — the date and time the survey invitation was dispatched. This is the recommended version for all new integrations. Same parameters as above.


4. Extended Survey Response Details

For accounts using multi-question survey formats, these endpoints return per-question response data rather than a single summary score.

GET /api/tickets/fivequestionsurveydetailresponse

Returns per-question responses for tickets using the Five-Question Survey format. Each row represents one question response.

Parameters: startDate, endDate, currentPage, pageSize

GET /api/tickets/employeesurveydetailresponse

Returns per-question responses for tickets using the Employee Survey format — designed to gather feedback about specific technicians rather than overall service.

Parameters: startDate, endDate, currentPage, pageSize


5. Project Survey Responses

These endpoints return survey responses for completed projects rather than individual support tickets.

GET /api/tickets/projectresponses

Returns project survey responses. Filter by project ID, project manager, company, or contact.

Parameters:

  • filterBy (string) — Field to filter on: PRecId, ProjectMgr, CompanyName, ContactName.
  • keyword (string) — Value to match against the filterBy field.
  • reviewType (integer) — 0 = all responses; 3 = only responses with a written comment.
  • startDate (string) — Start of date range.
  • endDate (string) — End of date range.
  • currentPage (integer) — Page number, starts at 1.
  • pageSize (integer) — Records per page.

GET /api/v1.1/tickets/projectresponses

Adds additional response fields over the base version. Same parameters as above.

GET /api/v1.2/tickets/projectresponses

Adds SentOn — the date the survey invitation was dispatched for the project. Same parameters as above.


6. Multi-Site Responses

For partners operating multiple client locations under a single BizRatings account, these endpoints aggregate survey responses across all sites.

GET /api/tickets/multisiteresponses

Returns combined ticket responses across all sites. Same parameters as the Ticket Survey Responses endpoints (Section 3).

GET /api/v1.1/tickets/multisiteresponses

Adds additional response fields. Same parameters as above.

GET /api/v1.2/tickets/multisiteresponses

Adds SentOn. Recommended version. Same parameters as above.

GET /api/tickets/multisiteemployeerating

Returns ratings given to individual technicians aggregated across all site locations.

Parameters: startDate, endDate, currentPage, pageSize


7. Single Ticket Lookup

Retrieve the survey record for a single ticket by its ticket number. All four versions share the same path parameter — later versions add fields to the response.

  • GET /api/tickets/{ticketno} — Base version
  • GET /api/v1.1/tickets/{ticketno} — Adds ContactRecID
  • GET /api/v1.2/tickets/{ticketno} — Adds ResponderIP, UserAgent
  • GET /api/v1.3/tickets/{ticketno} — Adds SentOn (recommended)

Parameters: ticketno (required) — The ticket number from your PSA or CRM.


8. Summary and Aggregate Statistics

GET /api/tickets/summary

Returns aggregated statistics for the filtered dataset: response counts, average scores, and response rates.

Parameters:

  • memberName (string) — Filter by technician name.
  • filterBy (string) — Field to filter on: SRServiceRecID, Keywords, mKeywords, CompanyName, ContactEmail, AssignedResources, BoardName.
  • keyword (string) — Value to match against the filterBy field.
  • reviewType (integer) — 0 = all responses; 3 = only responses with a written comment.
  • startDate (string) — Start of date range.
  • endDate (string) — End of date range.

GET /api/responses/summary

Returns a count of survey responses over a date range, grouped by time period. Use this endpoint to build response volume trend charts.

Parameters:

  • startDate (string) — Start of date range. Example: 2025-10-01 or 01-Oct-2025.
  • endDate (string) — End of date range.
  • viewType (string) — Time grouping: monthly, quarterly, weekly, or daily.
  • source (string) — Survey type: CSAT or NPS.

9. Client and Employee Statistics

GET /api/tickets/clientresponses

Returns survey statistics grouped by client company. Each row summarizes response volume and average score for one client — useful for account health views and business reviews.

Parameters:

  • filterBy (string) — Field to filter on: SRServiceRecID, Keywords, mKeywords, CompanyName, ContactEmail, AssignedResources, BoardName.
  • keyword (string) — Value to match against the filterBy field.
  • startDate (string) — Start of date range. Format: dd-M-yyyy.
  • endDate (string) — End of date range.
  • currentPage (integer) — Page number, starts at 1.
  • pageSize (integer) — Records per page.

GET /api/tickets/employeeeresponses

Returns survey statistics grouped by technician or engineer. Each row summarizes response counts and average scores for one team member.

Note: The endpoint path contains three e's — employeeeresponses. Use this path exactly as shown.

Parameters:

  • companyName (string) — Filter by client company name.
  • startDate (string) — Start of date range. Format: dd-M-yyyy.
  • endDate (string) — End of date range.
  • currentPage (integer) — Page number, starts at 1.
  • pageSize (integer) — Records per page.

10. Quarterly Statistics

These endpoints return quarterly profitability statistics by client. No filter parameters are supported — all available data is returned.

GET /api/tickets/quarterlyresponses

Returns one summary row per client across all available quarters. No parameters.

GET /api/tickets/quarterlyresponsessummary

Returns the same data broken into individual rows per quarter per client — useful for charting quarterly trends. No parameters.


11. Submit a Ticket

This endpoint submits a closed ticket from your PSA or CRM to BizRatings. On receipt, BizRatings queues and sends a survey invitation to the contact email address via SendGrid.

Note: If you are using the BizRatings email template widget (e.g. HaloPSA), your tickets are submitted automatically and you do not need to call this endpoint.

POST /api/tickets

Content-Type: application/json

Required fields:

  • ticketID (integer) — Unique ticket number from your PSA or CRM.
  • ticketTitle (string) — Title or subject of the support ticket. Max 500 characters.
  • companyRecID (integer) — Your CRM's internal numeric ID for the client company.
  • companyName (string) — Client company display name. Max 300 characters.
  • contactRecID (integer) — Your CRM's internal numeric ID for the survey recipient.
  • contactName (string) — Full name of the survey recipient. Max 100 characters.
  • contactEmail (string) — Email address where BizRatings will send the survey. Max 100 characters.
  • ticketCreatedOn (datetime) — When the ticket was created in your PSA/CRM.
  • ticketClosedOn (datetime) — When the ticket was closed.
  • ticketUpdatedOn (datetime) — Timestamp of the most recent update.

Optional fields:

  • boardName (string) — Ticket category or queue name. Max 300 characters.
  • resource (string) — Comma-separated technician identifiers. Max 500 characters.

Example request body:

{
  "ticketID": 100123,
  "ticketTitle": "Unable to access shared drive",
  "boardName": "Networking",
  "companyRecID": 4501,
  "companyName": "Acme Corporation",
  "contactRecID": 8812,
  "contactName": "Jane Smith",
  "contactEmail": "jane.smith@acme.com",
  "resource": "jdoe,mlee",
  "ticketCreatedOn": "2025-05-01T08:30:00Z",
  "ticketClosedOn":  "2025-05-02T15:45:00Z",
  "ticketUpdatedOn": "2025-05-02T15:45:00Z"
}

12. Quick Reference — All Endpoints

  • GET /api/tickets/responses — Ticket survey responses (base)
  • GET /api/v1.1/tickets/responses — Adds ContactRecID
  • GET /api/v1.2/tickets/responses — Adds ResponderIP, UserAgent
  • GET /api/v1.3/tickets/responses — Adds SentOn (recommended)
  • GET /api/tickets/fivequestionsurveydetailresponse — 5-question survey detail
  • GET /api/tickets/employeesurveydetailresponse — Employee survey detail
  • GET /api/tickets/projectresponses — Project survey responses (base)
  • GET /api/v1.1/tickets/projectresponses — Project responses + extra fields
  • GET /api/v1.2/tickets/projectresponses — Project responses + SentOn
  • GET /api/tickets/multisiteresponses — Multi-site responses (base)
  • GET /api/v1.1/tickets/multisiteresponses — Multi-site + extra fields
  • GET /api/v1.2/tickets/multisiteresponses — Multi-site + SentOn (recommended)
  • GET /api/tickets/multisiteemployeerating — Technician ratings, multi-site
  • GET /api/tickets/{ticketno} — Single ticket lookup (base)
  • GET /api/v1.1/tickets/{ticketno} — Single ticket + ContactRecID
  • GET /api/v1.2/tickets/{ticketno} — Single ticket + IP/UserAgent
  • GET /api/v1.3/tickets/{ticketno} — Single ticket + SentOn (recommended)
  • GET /api/tickets/summary — Aggregated response statistics
  • GET /api/responses/summary — Response volume over time
  • GET /api/tickets/clientresponses — Stats per client company
  • GET /api/tickets/employeeeresponses — Stats per technician
  • GET /api/tickets/quarterlyresponses — Quarterly stats summary
  • GET /api/tickets/quarterlyresponsessummary — Quarterly stats by quarter
  • POST /api/tickets — Submit a closed ticket

Questions? Contact support@bizratings.com