SDKs and tools
The official Agoo libraries, components and tools, what each is for, where it runs and its status.
This is designed and scheduled but not built yet. We document it now so you can plan your integration.
You can call the Agoo REST API from any language with an HTTP client. These official packages save you the repetitive parts: types, pagination, retries, idempotency keys, webhook verification and ready-made widgets.
All of them are generated from, or built on, the same OpenAPI contract as the API reference, so they stay in step with it. All are planned and ship with or after the API in phase P9. npm packages are published under the @ardent-africa scope.
Packages
| Package | Purpose | Runs on | Status |
|---|---|---|---|
@ardent-africa/agoo | TypeScript and JavaScript SDK for the full API | Node.js 20+, Bun, Deno, Cloudflare Workers (server) | Planned, P9 |
@ardent-africa/agoo-webhooks | Verify webhook signatures and get typed events | Node.js 20+, Bun, Deno, Cloudflare Workers | Planned, P9 |
@ardent-africa/agoo-react | Booking widget and pre-registration form as React components | React 18.3 or 19, in the browser | Planned, P9 |
| Embed script | The same widgets on any website with one <script> tag | Any modern browser | Planned, P9 |
@ardent-africa/agoo-cli | The agoo command: local webhook testing, test events, imports, raw API calls | Node.js 20+ on macOS, Windows, Linux and CI | Planned, P9 |
@ardent-africa/agoo-mcp | The MCP server for AI assistants, run locally over stdio | Node.js 20+ | Planned, P9 |
ardent-africa/agoo-php | PHP library for the API and webhooks | PHP 8.1+, via Composer | Planned, P9 |
| Agoo for WordPress | Blocks, shortcodes and a webhook receiver for WordPress sites | WordPress 6.6+, PHP 8.1+ | Planned, P9 |
| Python and Go clients | Clients generated from the OpenAPI contract | Python, Go | Planned |
The remote MCP server at https://mcp.agoo.ardent.africa/mcp needs no package at all.
Which one do I need?
| You're building | Use |
|---|---|
| A back-end integration in TypeScript or JavaScript | @ardent-africa/agoo |
| A service that only receives webhooks | @ardent-africa/agoo-webhooks, or any Standard Webhooks library |
| Booking or pre-registration on a React or Next.js site | @ardent-africa/agoo-react |
| Booking or pre-registration on any other website | The embed script |
| Booking or pre-registration on WordPress | Agoo for WordPress |
| Scripts, CI jobs or local webhook testing | The CLI |
| An integration in PHP, Python, Go or another language | Other languages |
| Questions and actions from an AI assistant | The MCP server |
Keys: secret or publishable
Every package uses one of two kinds of key. Mixing them up is the most common mistake.
| Key | Where it may be used | Packages |
|---|---|---|
Secret, agoo_sk_live_… / agoo_sk_test_… | Server code, CI and your own machine only. Never in a browser or a mobile app. | SDK, CLI, local MCP server, PHP library, WordPress (optional) |
Publishable, agoo_pk_live_… / agoo_pk_test_… | Web pages. It can only read public booking types and the visitor types open for pre-registration, and create bookings and pre-registrations. | React components, embed script, WordPress blocks |
The server-side packages refuse publishable keys and the browser packages refuse secret keys, so a mix-up fails straight away. If a secret key ever appears in a web page or a public repository, revoke it in the console at once and create a new one. See authentication.
Versions and support
- Packages follow semantic versioning. Major version 1 of each targets
/v1of the API. - While the API is a preview, packages are published with a
-previewversion tag and may change with the contract. - Changes are announced in the changelog.
- Questions and bug reports go to developer support. Include the package name and version, and the
Agoo-Request-Idof any failing call.