migrating to earful
what’s called what
| Elsewhere | In Earful | Notes |
|---|---|---|
| Account | GET /api/v1/workspace | A key belongs to one workspace, so no account id goes in the path. An agency makes a workspace per client. |
| Location, business or domain | GET / POST /api/v1/locations | One business across all its review sites, and what Earful charges for. |
| Listing or review profile | POST /api/v1/locations/{id}/profiles, GET /api/v1/profiles | One 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 source | site on profiles and reviews | Ids like google, tripadvisor, trustpilot, appstore and googleplay. openapi.json lists them all. |
| Search for a business | POST /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}. |
| Reviews | GET /api/v1/reviews | Filter by site, location, profile, rating, status, from/to, since, q, tag and sentiment; page with cursor. |
| Incremental sync | GET /api/v1/reviews/changes | Only what changed since your cursor, removals included, instead of re-reading every review. |
| Fetch now, or real-time reviews | POST /api/v1/profiles/{id}/check | Queues a collection. New reviews then show in GET /reviews and fire your webhooks. |
| Webhooks, channels or flows | POST /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 replies | POST /api/v1/reviews/{id}/draft, then POST /api/v1/reviews/{id}/reply | Posts 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-replies | Rules post straight away or hold the reply for approval. |
| Sentiment and tags | /api/v1/tag-rules, sentiment on reviews | AI reads every new review once. |
| Review campaigns and contacts | POST /api/v1/locations/{id}/review-requests | By email, one at a time, from a CSV (…/import) or a webhook URL (…/request-hook). Opt-outs in /api/v1/suppressions. |
switching over
- Make a write key in Settings, API, and send it as
Authorization: Bearer ef_…. - For each business,
POST /api/v1/locations, thenPOST /api/v1/locations/{id}/profileswith each review page’s url. POST /api/v1/profiles/{id}/checkto collect its reviews now rather than at the next scheduled check.- Swap polling for a webhook:
POST /api/v1/alerts {"channel": "webhook", "target": "https://…"}. - Swap reply calls for
POST /api/v1/reviews/{id}/draftandPOST /api/v1/reviews/{id}/reply.
The quickstart walks through the same steps with curl, and the reference has every field.