Versioning
The API is versioned in the path.
All endpoints live under /v1. Breaking changes ship as a new version (/v2); v1 is a stable, frozen contract.
The MCP endpoint (/mcp) and the Sign in with Genaya endpoints (/oauth/*, /.well-known/*) live at the root of api.genaya.com because they are protocol surfaces, not /v1 resources. They follow the same additive-only rule: the tool catalog only grows, a tool's input and output only gain optional fields, and an unknown tool or field is never an error.
Changelog
| Date | Change |
|---|---|
2026-10-05 | Appointment notes are real notes now. A note added through the API (note on POST / PATCH, or the new POST /v1/appointments/{id}/notes) is the same note the Notes panel of the appointment shows in Genaya, so your team sees it right away. The notes list on the appointment now holds every note on the appointment - the ones typed in Genaya too - each with its id, and four new endpoints work by that id: GET /v1/appointments/{id}/notes, GET, PATCH and DELETE /v1/appointments/{id}/notes/{noteId}. notes on PATCH now replaces the notes that were added through the API only; a note somebody typed in Genaya is never removed by it. Additive: text, createdByName and createdAt are unchanged on every note. |
2026-09-17 | PayDesk commissions: GET /v1/paydesk-commissions accepts updated_since, the same change window the main lists have - commissions updated on or after that time, ordered by updatedAt ascending. Sync a copy by walking the list once, then polling updated_since from the newest updatedAt you have seen, instead of re-reading the whole ledger on every poll. Every change moves updatedAt and a commission is never deleted (a reversal arrives as status reversed). It cannot be combined with employeeId, status or appointmentId (400 conflicting_filters). |
2026-09-16 | Payments: companyId and companyName on every payment (the company that collected it), a companyId list filter, and optional companyId on POST /v1/payments (defaults to the invoice's company, then to your only company; an id that is not one of your companies is rejected with invalid_companyId). The payment.received, payment.refunded and payment.failed events and the Zapier Payment Received trigger carry company_id and company_name. |
2026-09-16 | Appointments: everything the record returns is now writable on POST and PATCH - lineItems (the list is replaced and totals are computed from it, cost and tracked-product links preserved), total / subtotal / taxTotal on appointments without line items (tax-inclusive total split by the applied rate; the balance follows the total and keeps what was collected), an explicit balance, appliedTaxId (resolved against the assigned company's taxes, taxable lines follow it), taxRate, appliedTaxName, employeeCost, companyCost, currency, terms, note (append) and notes, latitude / longitude, startAtLocal / endAtLocal, and on POST createdById / createdByName. Editing the money of a Done appointment refreshes its pending commissions under the rule frozen at completion; paid or locked commissions stay as generated. The Zapier, n8n and Make Create Appointment actions carry the same inputs. |
2026-09-14 | MCP: actions from the chat and every host. Five new tools - genaya_act, confirm_action, cancel_action, undo_action, list_actions (scope act): record changes previewed with a body_hash and confirmed in the chat through an MCP elicitation or confirm_action, undoable for 15 minutes; texts, emails, invoice and estimate links, amounts of $2,500 and up, more than 25 recipients, changed contact details and changes with no undo confirmed on a signed single-use Genaya page (needs_human + confirm_url); money, billing, roles, numbers and automations refused. initialize answers Mcp-Session-Id and serverInfo version 1.2.0. Organization-issued clients (gnc_..., client_secret_post / client_secret_basic, created under Settings > Integrations) for Gemini Enterprise, Copilot Studio, Microsoft 365 Copilot, Slack and Salesforce Agentforce. API keys with Allow MCP accepted on /mcp, read and ask only, metered on the /v1 pool. See MCP. |
2026-09-11 | MCP: Genaya Connect at https://api.genaya.com/mcp with Sign in with Genaya (OAuth 2.1 with PKCE, client metadata documents, dynamic client registration on request), the two .well-known discovery documents, POST /oauth/token, POST /oauth/revoke and POST /oauth/register, and the first two tools, whoami and ask_genaya. API keys with a per-key Allow MCP switch on the same endpoint are coming; POST /v1/mcp keeps serving API keys until then. See MCP. |
2026-09-11 | The API is available on the Individual plan and above. Requests are weighted, every plan includes a request pool per billing period, extra requests come out of the prepaid balance, and GET /v1/usage reports the pool. See Rate limits and Plans and pricing. |
2026-08-03 | Outbound webhooks: POST /v1/webhook-endpoints, signed at-least-once deliveries with retries, and the event catalog at GET /v1/webhook-endpoints/events. See Webhooks. |
Coming soon
Official SDKs are not part of v1 yet - the API is plain HTTPS + JSON and works with any HTTP client, and outbound webhooks (see the Webhooks section) cover push delivery today. On the MCP side: the typed lookups (search, fetch, upcoming, availability, KPIs), metered in Genaya AI credits like every other call, and the catalog generated straight from the tool registry.