API Referencev1

API Documentation

Integrate Typani with your own tools. Authenticate with an API key, pull reviews for your connected business locations, and build automations on top of the data.

Overview

The Typani API exposes three read-only endpoints. They let you verify authentication, retrieve reviews for your connected business locations, and fetch a static sample payload for development.

All endpoints live under https://typani.com/api/zapier/ and return JSON.

Base URL: https://typani.com/api/zapier

Authentication

Every authenticated endpoint requires your API key in the X-API-Key header.

Getting your API key

  1. Log in to your Typani dashboard
  2. Go to Settings → Integrations
  3. Click Generate API Key
  4. Copy the key — it is only shown once

Keys use the format typ_ followed by 48 hex characters. To revoke a key, return to Settings → Integrations and delete it.

Header format
X-API-Key: typ_your_api_key_here

GET /api/zapier/me

Verifies that your API key is valid and returns the associated account.

Request

curl
curl -H "X-API-Key: typ_your_api_key_here" \
  https://typani.com/api/zapier/me

Response

200 OK
{
  "business_name": "Downtown Coffee Shop",
  "email": "owner@example.com"
}
FieldTypeDescription
business_namestring | nullThe business name on your Typani account
emailstring | nullThe email address associated with your account

GET /api/zapier/reviews

Returns up to 25 of the most recent reviews across all your connected business locations, sorted newest first. Requires authentication.

Request

curl
curl -H "X-API-Key: typ_your_api_key_here" \
  https://typani.com/api/zapier/reviews

Response

200 OK
[
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "location_name": "Downtown Coffee Shop",
    "reviewer_name": "Jane Smith",
    "rating": 5,
    "review_text": "Best coffee in town! The staff is incredibly friendly.",
    "sentiment": "positive",
    "ai_draft_reply": "Thank you so much, Jane! We're thrilled you love our coffee.",
    "review_timestamp": "2026-07-15T14:30:00.000Z",
    "dashboard_link": "https://typani.com/app/reviews"
  }
]

Response fields

FieldTypeExampleDescription
idstring"a1b2c3d4-…"Unique review identifier (UUID)
location_namestring"Downtown Coffee Shop"Name of the connected business location
reviewer_namestring"Jane Smith"Name of the person who left the review
ratingnumber5Star rating from 1 to 5
review_textstring"Best coffee in town!…"Full text of the review
sentimentstring"positive"Derived from rating: "positive" (4-5), "mixed" (3), or "negative" (1-2)
ai_draft_replystring | null"Thank you so much…"AI-generated reply draft, or null if not yet generated
review_timestampstring"2026-07-15T14:30:00.000Z"ISO 8601 timestamp of when the review was posted
dashboard_linkstring"https://typani.com/app/reviews"Link to manage reviews in the Typani dashboard

GET /api/zapier/sample

Returns a single static sample review payload. No authentication required. Useful for testing integrations during development without needing real review data.

Request

curl
curl https://typani.com/api/zapier/sample

Response

200 OK
[
  {
    "id": "00000000-0000-0000-0000-000000000001",
    "location_name": "Downtown Coffee Shop",
    "reviewer_name": "Jane Smith",
    "rating": 5,
    "review_text": "Best coffee in town! The staff is incredibly friendly and the atmosphere is perfect for working. Highly recommend the oat milk latte.",
    "sentiment": "positive",
    "ai_draft_reply": "Thank you so much, Jane! We're thrilled you love our oat milk latte and the cozy atmosphere. Looking forward to your next visit!",
    "review_timestamp": "2026-07-27T00:00:00.000Z",
    "dashboard_link": "https://typani.com/app/reviews"
  }
]

The response shape is identical to /api/zapier/reviews. See that endpoint for field descriptions.

Error Codes

StatusMeaningResponse body
200SuccessJSON payload
401Missing or invalid API key{"error": "Invalid API key"}
429Rate limit exceeded — wait and retry{"error": "Too many requests"}
500Server error — retry after a few seconds{"error": "<message>"}

Notes

  • The three endpoints listed above are the only public API surface. All other routes require session-based dashboard authentication and are not available for external integrations.
  • Rate limiting is set to 100 requests per minute per API key.
  • Reviews are returned for all connected business locations tied to your account. There is no per-location filter at this time.
  • Need help? support@typani.com