Docs

Developers

Connect Agoo to your own systems with the REST API, webhooks, SDKs, embeds, a WordPress plugin and an MCP server for AI assistants.

Preview· P9

This is a published preview. Names and fields may still change before general availability; changes will be listed in the changelog.

Agoo runs your front door: visitors, invitations, bookings, deliveries, staff attendance and roll calls. The developer platform lets your own systems take part. Your CRM can invite a guest, your website can take a booking, your payroll system can read timesheets, and your AI assistant can tell you who is on site right now.

Everything on this side of the docs is built on one public REST API. The API, webhooks and OAuth are published as a preview contract: you can design and build against it today, and it may still change before general availability. The tools built on top of it (SDKs, CLI, embeds, the WordPress plugin and the MCP server) are planned and documented now so you can plan your integration.

What you can build

You want toUseExample
Keep another system in step with AgooREST API and webhooksVolta Bank's CRM pre-registers a client as an expected visit when a relationship manager books a meeting.
Put booking or pre-registration on your own websiteEmbed, React components or the WordPress pluginAkwaaba Clinic adds a "Book an appointment" widget to its WordPress site.
React to what happens at the doorWebhooksCoastline Consult posts to a Slack channel when a client checks in.
Move attendance into payroll or HRREST API, CSV exportsRidge Academy pulls a monthly attendance summary into its payroll spreadsheet.
Ask questions and take actions from an AI assistantMCP serverKofi Boateng, the security lead, asks Claude "Who is still on site at Ridge HQ?" during a fire drill.
Script admin tasks, test webhooks locally and run checks in CICLIYaw Adjei imports 300 staff from a CSV and forwards test webhooks to his laptop.

How the pieces fit

The REST API sits at the centre. Every other surface is a client of it, so they all behave the same way.

LayerSurfacesAuthenticates with
CoreREST API at https://api.agoo.ardent.africa/v1Secret API key or OAuth access token
Events outWebhooks, signed with Standard WebhooksA whsec_ signing secret per endpoint
In your codeTypeScript SDK, webhooks helper, PHP library, generated clients for other languagesSecret API key or OAuth access token
In your browser pagesEmbed script, React components, WordPress blocksPublishable key (agoo_pk_…), browser-safe
On your command lineagoo CLIOAuth device flow, or AGOO_API_KEY in CI
In AI assistantsMCP server (remote at https://mcp.agoo.ardent.africa/mcp, or local over stdio)OAuth 2.1, or AGOO_API_KEY for the local server

Because every surface goes through the same API:

  • Permissions are the same everywhere. A key or token carries scopes, and an OAuth token can never do more than the person who approved it. An AI assistant connected through MCP sees exactly what that person's role and sites allow.
  • Everything is in the audit trail. API calls, webhook endpoint changes, MCP tool calls and CLI commands are recorded in your organisation's hash-chained audit trail with the key or app that made them.
  • Rate limits are shared. Limits apply per organisation and mode, across every key, app and tool. See rate limits.
  • Test mode works everywhere. Keys containing _test_ act on a separate sandbox copy of your organisation where no SMS, WhatsApp or email is sent and nothing is billed. See environments.

Status of each surface

SurfaceStatusPhaseNotes
REST APIPreviewP9Contract v1.0.0-preview published. Build against it; fields may still change.
WebhooksPreviewP9Event types, payloads and signing are published.
OAuth 2.1 appsPreviewP9Authorization code with PKCE, for third-party apps and MCP clients.
MCP serverPlannedP9Remote (OAuth) and local (API key).
TypeScript SDK and webhooks helperPlannedP9@ardent-africa/agoo, @ardent-africa/agoo-webhooks.
React components and embedPlannedP9Booking widget and pre-registration form.
CLIPlannedP9agoo binary, including local webhook forwarding.
WordPress pluginPlannedP9"Agoo for WordPress" on the WordPress.org directory.
PHP, Python and Go clientsPlannedP9PHP first. Any OpenAPI generator works with the published contract today.

Nothing on this list is generally available yet. Changes to the contract are listed in the changelog.

Plan access

PlanWhat you can do in live mode
FreeTest mode only.
StarterTest mode only.
GrowthWebhooks: manage webhook endpoints and read events.
ProThe full REST API, OAuth apps and the MCP server. Live rate limit 600 requests a minute.
EnterpriseEverything in Pro, with higher limits (3,000 requests a minute, raisable), custom scopes and IP allow-lists.

The embed script and the WordPress plugin's blocks work on every plan that has booking pages, because they show your hosted pages in a frame. The React components call the API directly, so they need Pro or Enterprise in live mode.

Test mode is available on every plan, with a limit of 100 requests a minute. A live call to something your plan doesn't include returns 403 with the error code plan_required.

The embed script and the WordPress plugin's blocks show your hosted booking and pre-registration pages in a frame, so they work on any plan that includes those pages, within its limits (for example, bookings a month). The React components call the API directly with a publishable key, so live use needs Pro or Enterprise. The WordPress plugin's optional webhook receiver needs Growth.

Start here

On this page