Developers
Connect Agoo to your own systems with the REST API, webhooks, SDKs, embeds, a WordPress plugin and an MCP server for AI assistants.
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 to | Use | Example |
|---|---|---|
| Keep another system in step with Agoo | REST API and webhooks | Volta 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 website | Embed, React components or the WordPress plugin | Akwaaba Clinic adds a "Book an appointment" widget to its WordPress site. |
| React to what happens at the door | Webhooks | Coastline Consult posts to a Slack channel when a client checks in. |
| Move attendance into payroll or HR | REST API, CSV exports | Ridge Academy pulls a monthly attendance summary into its payroll spreadsheet. |
| Ask questions and take actions from an AI assistant | MCP server | Kofi 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 CI | CLI | Yaw 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.
| Layer | Surfaces | Authenticates with |
|---|---|---|
| Core | REST API at https://api.agoo.ardent.africa/v1 | Secret API key or OAuth access token |
| Events out | Webhooks, signed with Standard Webhooks | A whsec_ signing secret per endpoint |
| In your code | TypeScript SDK, webhooks helper, PHP library, generated clients for other languages | Secret API key or OAuth access token |
| In your browser pages | Embed script, React components, WordPress blocks | Publishable key (agoo_pk_…), browser-safe |
| On your command line | agoo CLI | OAuth device flow, or AGOO_API_KEY in CI |
| In AI assistants | MCP 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
| Surface | Status | Phase | Notes |
|---|---|---|---|
| REST API | Preview | P9 | Contract v1.0.0-preview published. Build against it; fields may still change. |
| Webhooks | Preview | P9 | Event types, payloads and signing are published. |
| OAuth 2.1 apps | Preview | P9 | Authorization code with PKCE, for third-party apps and MCP clients. |
| MCP server | Planned | P9 | Remote (OAuth) and local (API key). |
| TypeScript SDK and webhooks helper | Planned | P9 | @ardent-africa/agoo, @ardent-africa/agoo-webhooks. |
| React components and embed | Planned | P9 | Booking widget and pre-registration form. |
| CLI | Planned | P9 | agoo binary, including local webhook forwarding. |
| WordPress plugin | Planned | P9 | "Agoo for WordPress" on the WordPress.org directory. |
| PHP, Python and Go clients | Planned | P9 | PHP 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
| Plan | What you can do in live mode |
|---|---|
| Free | Test mode only. |
| Starter | Test mode only. |
| Growth | Webhooks: manage webhook endpoints and read events. |
| Pro | The full REST API, OAuth apps and the MCP server. Live rate limit 600 requests a minute. |
| Enterprise | Everything 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
Quickstart
Create a test key and make your first API call in five minutes.
Authentication
API keys, scopes and OAuth 2.1 for third-party apps.
Webhooks
Get told when visitors arrive, bookings change and staff clock in.
MCP server
Connect Claude, ChatGPT, Cursor or VS Code to your organisation.
SDKs and tools
TypeScript, React, embeds, the CLI and other languages.
API reference
Every endpoint, parameter and response in the v1 preview contract.