Skip to main content
Use GatherUp through Corsair: one client, typed API calls. Create a bearer token and copy your client ID from your GatherUp account owner details. Both are needed on every call, and the client ID travels as the clientId query parameter. Things to know before you call:
  • A failure can arrive with HTTP 200. GatherUp puts errorCode and errorMessage in the body of every answer, with 0 and Success on a good one. A live probe of /api/test with 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.create takes businessName and businessType, where a read returns name and organisationType. customers.create takes customerFirstName, customerEmail and so on. The plugin uses the documented names on each side.
  • Update and create disagree on one spelling. customers.create takes customerPhone, and customers.update takes customerPhoneNumber. Each keeps its own documented name.
  • A rating is a decimal string. A customer’s rating arrives as "5.00" or null, not a number, while a feedback’s rating is a number.
  • A feedback’s tags arrive as one string. tags is "Auto,Towing,Roadside Service", not an array.
  • Deactivating is not deleting. businesses.deactivate suspends feedback requests and businesses.reactivate reverses it, so neither is destructive. businesses.delete and customers.delete are permanent.
  • customers.requestFeedback messages a real person. It sends the review request, so it is a write.
  • No webhooks. GatherUp does not push; a caller polls feedbacks.list.
What you get:
  • 16 typed API operations

Setup

1

Install

2

Add the plugin

corsair.ts
With multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

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 account
Add a customer to a business
See the full list on the API page.

What’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.