Cheers Public API

The Cheers API allows you to programmatically access your organization's review data, badges, taps, and more. All API endpoints require authentication via API key.

Base URLhttps://app.cheers.tech/api/public/v1

Authentication

All API requests require a Bearer token in the Authorization header. To obtain an API key, visit your organization settings in the Cheers dashboard or contact your account administrator.

Example Request
curl -X GET "https://app.cheers.tech/api/public/v1/organizations?organization_id=123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Rate Limits: API requests are rate-limited to ensure fair usage. If you exceed the rate limit, you'll receive a 429 Too Many Requests response.

Common Parameters

Most endpoints support the following query parameters for filtering, pagination, and date-based queries.

ParameterTypeRequiredDescription
organization_idintegerOptionalFilter by specific organization ID
parent_organization_idintegerOptionalGet data for all child organizations
fromISO 8601 datetimeOptionalFilter records updated after this time
toISO 8601 datetimeOptionalFilter records updated before this time
created_fromISO 8601 datetimeOptionalFilter records created after this time
created_toISO 8601 datetimeOptionalFilter records created before this time
limitintegerOptionalMaximum records to return (default: 100, max: 1000)
offsetintegerOptionalNumber of records to skip for pagination

Note: Either organization_id or parent_organization_id is required for all endpoints.

Endpoints

GET/organizations

Retrieve organization details.

Query Parameters

ParameterTypeRequiredDescription
organization_idintegerOptionalSpecific organization ID (one of organization_id or parent_organization_id required)
parent_organization_idintegerOptionalGet all child organizations (one of organization_id or parent_organization_id required)

Response Fields

FieldTypeDescription
idintegerOrganization ID
namestringOrganization name
created_atdatetimeWhen the organization was created
updated_atdatetimeLast update timestamp
subscription_tierstringSubscription level
parent_organization_idintegerParent organization ID (null if root)
Request
curl -X GET "https://app.cheers.tech/api/public/v1/organizations?organization_id=123" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
[
  {
    "id": 123,
    "name": "Acme Restaurant",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-06-20T14:45:00Z",
    "subscription_tier": "pro",
    "parent_organization_id": null
  }
]
GET/organization-connections

Retrieve platform connections for organizations (Google, Yelp, Facebook, etc.).

Query Parameters

ParameterTypeRequiredDescription
organization_idintegerOptionalSpecific organization ID (one of organization_id or parent_organization_id required)
parent_organization_idintegerOptionalGet connections for all child organizations (one of organization_id or parent_organization_id required)

Response Fields

FieldTypeDescription
organization_idintegerOrganization ID
google_place_idstringGoogle Places ID
google_account_idstringGoogle My Business account ID
google_location_idstringGoogle My Business location ID
yelp_business_idstringYelp business ID
tripadvisor_location_idstringTripAdvisor location ID
facebook_page_idstringFacebook page ID
facebook_urlstringFacebook page URL
trustpilot_company_websitestringTrustpilot company identifier
bbb_profile_urlstringBetter Business Bureau profile URL
created_atdatetimeWhen the connection was created
Request
curl -X GET "https://app.cheers.tech/api/public/v1/organization-connections?organization_id=123" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
[
  {
    "organization_id": 123,
    "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
    "google_account_id": "accounts/123456789",
    "google_location_id": "locations/987654321",
    "yelp_business_id": "acme-restaurant-new-york",
    "tripadvisor_location_id": null,
    "facebook_page_id": "123456789012345",
    "facebook_url": "https://facebook.com/acmerestaurant",
    "trustpilot_company_website": null,
    "bbb_profile_url": null,
    "created_at": "2024-01-15T10:30:00Z"
  }
]
GET/cards

Retrieve badge/card information for your organization.

Query Parameters

ParameterTypeRequiredDescription
organization_idintegerOptionalSpecific organization ID (one of organization_id or parent_organization_id required)
parent_organization_idintegerOptionalGet cards for all child organizations (one of organization_id or parent_organization_id required)

Response Fields

FieldTypeDescription
idstring (UUID)Unique card identifier
created_atdatetimeWhen the card was created
updated_atdatetimeLast update timestamp
cardholder_namestringName of the badge holder
organization_idintegerOrganization ID
titlestringBadge holder's title/position
photo_urlstringURL to badge holder's photo
encode_urlstringEncoded URL for the badge
linktree_enabledbooleanWhether linktree is enabled for this card
badge_numberstringCustom badge identifier
Request
curl -X GET "https://app.cheers.tech/api/public/v1/cards?organization_id=123" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "created_at": "2024-03-01T09:00:00Z",
    "updated_at": "2024-03-15T14:30:00Z",
    "cardholder_name": "John Smith",
    "organization_id": 123,
    "title": "Server",
    "photo_url": "https://storage.cheers.tech/photos/john-smith.jpg",
    "encode_url": "https://app.cheers.tech/t/abc123",
    "linktree_enabled": true,
    "badge_number": "EMP-001"
  }
]
PATCH/cards

Update a card's organization assignment.

Request Body

ParameterTypeRequiredDescription
cardIdstring (body)OptionalCard UUID to update (one of cardId or badge_number required)
badge_numberstring (body)OptionalBadge number for bulk update (one of cardId or badge_number required)
organization_idinteger (body)RequiredTarget organization ID

Either cardId or badge_number is required in the request body.

Request
curl -X PATCH "https://app.cheers.tech/api/public/v1/cards" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cardId": "550e8400-e29b-41d4-a716-446655440000", "organization_id": 456}'
Response
{
  "success": true
}
GET/taps

Retrieve tap events (when a customer taps a badge).

Query Parameters

ParameterTypeRequiredDescription
organization_idintegerOptionalSpecific organization ID (one of organization_id or parent_organization_id required)
parent_organization_idintegerOptionalGet taps for all child organizations (one of organization_id or parent_organization_id required)

Response Fields

FieldTypeDescription
idintegerTap ID
created_atdatetimeWhen the tap occurred
updated_atdatetimeLast update timestamp
card_idstring (UUID)Associated card ID
organization_idintegerOrganization ID
usedbooleanWhether the tap resulted in a completed action
Request
curl -X GET "https://app.cheers.tech/api/public/v1/taps?organization_id=123&from=2024-01-01T00:00:00Z" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
[
  {
    "id": 12345,
    "created_at": "2024-06-15T18:30:00Z",
    "updated_at": "2024-06-15T18:30:00Z",
    "card_id": "550e8400-e29b-41d4-a716-446655440000",
    "organization_id": 123,
    "used": true
  }
]
GET/reviews

Retrieve customer reviews from all connected platforms.

Query Parameters

ParameterTypeRequiredDescription
organization_idintegerOptionalSpecific organization ID (one of organization_id or parent_organization_id required)
parent_organization_idintegerOptionalGet reviews for all child organizations (one of organization_id or parent_organization_id required)
formatstringOptionalUse "v2" or "new" for full response fields

Response Fields

FieldTypeDescription
idintegerReview ID
created_atdatetimeWhen the review was received
updated_atdatetimeLast update timestamp
ratingintegerRating value (1-5)
card_idstringAssociated card ID (if attributed)
review_textstringFull review text
organization_idintegerOrganization ID
sourcestringPlatform source (GOOGLE, YELP, FACEBOOK, etc.)
reviewer_namestringReviewer's display name
reviewer_photo_urlstringReviewer's profile photo
owner_responsestringBusiness owner's response
response_timestampdatetimeWhen the response was posted
review_urlstringDirect link to the review
internalbooleanWhether this is an internal Cheers review

Use format=v2 to get all available fields including source and reviewer information.

Request
curl -X GET "https://app.cheers.tech/api/public/v1/reviews?organization_id=123&format=v2" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
[
  {
    "id": 5678,
    "created_at": "2024-06-10T12:00:00Z",
    "updated_at": "2024-06-10T12:00:00Z",
    "rating": 5,
    "card_id": "550e8400-e29b-41d4-a716-446655440000",
    "review_text": "Amazing service! John was incredibly helpful.",
    "organization_id": 123,
    "source": "GOOGLE",
    "reviewer_name": "Jane D.",
    "reviewer_photo_url": "https://lh3.googleusercontent.com/...",
    "owner_response": "Thank you for the kind words!",
    "response_timestamp": "2024-06-11T09:00:00Z",
    "review_url": "https://search.google.com/local/reviews?...",
    "internal": false
  }
]

Error Handling

All endpoints return consistent error responses with appropriate HTTP status codes.

Status CodeDescription
400Bad Request - Missing or invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - No access to requested resource
404Not Found - Resource does not exist
429Too Many Requests - Rate limit exceeded
500Internal Server Error
Error Response Format
{
  "error": "Error message describing the issue"
}

Pagination

Use limit and offset parameters to paginate through large result sets.

Pagination Example
# First page (records 0-99)
GET /reviews?organization_id=123&limit=100&offset=0

# Second page (records 100-199)
GET /reviews?organization_id=123&limit=100&offset=100

Filtering by Date

Use ISO 8601 format for date filtering:

Date Filtering Examples
# Reviews updated in the last 7 days
GET /reviews?organization_id=123&from=2024-06-08T00:00:00Z

# Reviews created in January 2024
GET /reviews?organization_id=123&created_from=2024-01-01T00:00:00Z&created_to=2024-01-31T23:59:59Z

Need Help?

For API support, contact us at info@cheers.tech