clientId query parameter.
Things to know before you call:
- A failure can arrive with HTTP 200. GatherUp puts
errorCodeanderrorMessagein the body of every answer, with0andSuccesson a good one. A live probe of/api/testwith a bad token answered 200 and{"errorCode": 2, "errorMessage": "Invalid clientId"}, so the plugin throws whenever the code is non-zero, whatever the status was. - The rate limit answers 503, not 429. GatherUp allows 5 requests a second and returns 503 above it, so a 503 is a rate limit. A 503 is retried on reads only, since one from an outage can follow a write that already landed; a 429 is retried on any call. A 500 is still a real server error.
- Write bodies use prefixed field names.
businesses.createtakesbusinessNameandbusinessType, where a read returnsnameandorganisationType.customers.createtakescustomerFirstName,customerEmailand so on. The plugin uses the documented names on each side. - Update and create disagree on one spelling.
customers.createtakescustomerPhone, andcustomers.updatetakescustomerPhoneNumber. Each keeps its own documented name. - A rating is a decimal string. A customer’s
ratingarrives as"5.00"or null, not a number, while a feedback’sratingis a number. - A feedback’s tags arrive as one string.
tagsis"Auto,Towing,Roadside Service", not an array. - Deactivating is not deleting.
businesses.deactivatesuspends feedback requests andbusinesses.reactivatereverses it, so neither is destructive.businesses.deleteandcustomers.deleteare permanent. customers.requestFeedbackmessages a real person. It sends the review request, so it is a write.- No webhooks. GatherUp does not push; a caller polls
feedbacks.list.
- 16 typed API operations
Setup
1
Install
2
Add the plugin
corsair.ts
multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.3
Choose authentication
- API Key (Recommended)
Store the GatherUp API key before the first call: More: API Key
pnpm corsair setup --plugin=gatherup --tenant=acme api_key=<your-key> (leave out --tenant without multiTenancy), or pass it as key in the plugin options. With Hub, each tenant enters their own key on the connect page. See API key auth.4
Connect a tenant
Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.
Example API calls
List the businesses on the accountWhat’s next
API reference
Every
gatherup.api.* operation with input and output types.Connect / OAuth
createLink, Hub delivery, and tenant connect flows.
Use with agents
Expose this plugin’s operations as MCP tools.