earful

migrating to earful

Where the things another review tool’s API calls you use live in /api/v1

what’s called what

ElsewhereIn EarfulNotes
AccountGET /api/v1/workspaceA key belongs to one workspace, so no account id goes in the path. An agency makes a workspace per client.
Location, business or domainGET / POST /api/v1/locationsOne business across all its review sites, and what Earful charges for.
Listing or review profilePOST /api/v1/locations/{id}/profiles, GET /api/v1/profilesOne site of one location. Send the review page’s url; Earful keeps the listing’s own id (externalId) and matches on that, so another link to the same listing is the same profile.
Platform or sourcesite on profiles and reviewsIds like google, tripadvisor, trustpilot, appstore and googleplay. openapi.json lists them all.
Search for a businessPOST /api/v1/place-searches, then GET /api/v1/place-searches/{id}One search across every site, worked in the background. Add a result with POST /locations/{id}/profiles {candidateId}.
ReviewsGET /api/v1/reviewsFilter by site, location, profile, rating, status, from/to, since, q, tag and sentiment; page with cursor.
Incremental syncGET /api/v1/reviews/changesOnly what changed since your cursor, removals included, instead of re-reading every review.
Fetch now, or real-time reviewsPOST /api/v1/profiles/{id}/checkQueues a collection. New reviews then show in GET /reviews and fire your webhooks.
Webhooks, channels or flowsPOST /api/v1/alerts {"channel": "webhook"}Also slack, email and digest. Filter by rating, site, location, sentiment, tags and keywords. Signed with Earful-Signature, retried with backoff, logged and replayable (/api/v1/webhook-deliveries).
AI repliesPOST /api/v1/reviews/{id}/draft, then POST /api/v1/reviews/{id}/replyPosts to the site where it has an owner API (App Store, Google Play); elsewhere it records the reply and gives replyUrl.
Automatic replies/api/v1/reply-rules and /api/v1/auto-repliesRules post straight away or hold the reply for approval.
Sentiment and tags/api/v1/tag-rules, sentiment on reviewsAI reads every new review once.
Review campaigns and contactsPOST /api/v1/locations/{id}/review-requestsBy email, one at a time, from a CSV (…/import) or a webhook URL (…/request-hook). Opt-outs in /api/v1/suppressions.

switching over

  1. Make a write key in Settings, API, and send it as Authorization: Bearer ef_….
  2. For each business, POST /api/v1/locations, then POST /api/v1/locations/{id}/profiles with each review page’s url.
  3. POST /api/v1/profiles/{id}/check to collect its reviews now rather than at the next scheduled check.
  4. Swap polling for a webhook: POST /api/v1/alerts {"channel": "webhook", "target": "https://…"}.
  5. Swap reply calls for POST /api/v1/reviews/{id}/draft and POST /api/v1/reviews/{id}/reply.

The quickstart walks through the same steps with curl, and the reference has every field.