canonical: https://jentic.com/apis/mokaform.com/mokaform

# MokaForm

Jentic publishes the only available OpenAPI specification for MokaForm, keeping it validated and agent-ready. MokaForm is a form and questionnaire platform that supports automated submission collection, Stripe-based payment forms, themed surveys, and outbound webhooks for Zapier integrations. The API exposes endpoints to manage scoped API keys, retrieve questionnaire definitions and sample submissions, configure organisation-level Stripe accounts for payment forms, and subscribe webhooks to questionnaire events. It targets product teams embedding self-serve forms with payment capture into their flows.

## For AI agents

Manage MokaForm API keys, retrieve questionnaire definitions and submissions, configure Stripe payment accounts, and subscribe webhooks to form events.

## Scope

Does not handle CRM contact storage, email delivery, or analytics dashboards - use for form configuration, submission retrieval, and payment-form setup only.

## Capabilities

- Issue and rotate scoped API keys for MokaForm integrations
- Retrieve questionnaire definitions and sample submission payloads
- Subscribe webhook URLs to questionnaire events for downstream automation
- Configure Stripe Connect accounts on a MokaForm organisation for payment forms
- List the visual themes available for MokaForm questionnaires

## Use cases

### Stripe-Powered Payment Form Onboarding

Onboard an organisation to MokaForm's payment-form feature by creating a connected Stripe account and exposing the dashboard link. The Stripe account endpoints handle the Connect onboarding flow so users can collect payments through MokaForm questionnaires without leaving the platform. Suitable for SaaS teams embedding MokaForm into a multi-tenant workflow where each tenant takes payments separately.

Example prompt: Call GET `/organizations/{organizationId}/payment/stripe/create-account` to start onboarding, then GET `/organizations/{organizationId}/payment/stripe/dashboard/{accountId}` to retrieve the dashboard link.

### Webhook-Driven Submission Automation

Subscribe a Zapier webhook to a MokaForm questionnaire so that every new submission triggers downstream automation in CRM, email, or analytics tools. The webhook endpoints accept a target URL and return a webhook ID for later removal, replacing manual export-import flows with real-time event delivery. Useful for ops teams stitching MokaForm into a wider Zapier or n8n-driven workflow.

Example prompt: Call POST `/webhook/zapier/subscribe` with the target URL and questionnaire ID to register a new webhook, then DELETE `/webhook/zapier/{webhookId}` to unsubscribe later.

### Programmatic Questionnaire Schema Discovery

Retrieve a sample submission and the questionnaire's submission definition before mapping form responses to internal data models. The sample and definition endpoints together describe both the field shape and a representative payload, which is how integrations avoid building per-questionnaire mapping by trial and error. Helpful for engineering teams building one-off MokaForm-to-database loaders.

Example prompt: Call GET `/questionnaires/{questionnaireId}/submissions/sample/definition` to get the field schema, then GET `/questionnaires/{questionnaireId}/submissions/sample` for a representative payload.

### Agent-Driven Form Operations

AI agents managing MokaForm operations call the API through Jentic to rotate API keys, list automation-eligible questionnaires, and subscribe webhooks without holding the bearer token in their context. Jentic's spec is the only structured definition for MokaForm, so schema-aware agents rely on it for tool selection and parameter validation.

Example prompt: Search Jentic for 'subscribe a webhook to a form', load POST `/webhook/zapier/subscribe`, and execute with the target URL.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api-keys` | Create a new MokaForm API key |
| GET | `/api-keys` | List existing API keys |
| GET | `/automation/questionnaires` | List questionnaires eligible for automation |
| GET | `/questionnaires/{questionnaireId}/submissions/sample` | Retrieve a sample submission for a questionnaire |
| GET | `/questionnaires/{questionnaireId}/submissions/sample/definition` | Retrieve the submission schema definition |
| POST | `/webhook/zapier/subscribe` | Subscribe a webhook to questionnaire events |
| DELETE | `/webhook/zapier/{webhookId}` | Unsubscribe a webhook |
| GET | `/organizations/{organizationId}/payment/stripe/create-account` | Start Stripe Connect onboarding for an organisation |

## Key resources

- **API Keys** — Create, list, update, and deactivate MokaForm API keys
- **Questionnaires** — List automation-eligible questionnaires and retrieve submission samples and definitions
- **Webhooks** — Subscribe and unsubscribe Zapier webhooks against MokaForm events
- **Stripe Payment** — Manage Stripe Connect accounts and dashboard links for an organisation
- **Themes** — List visual themes available for an organisation's questionnaires

## Why Jentic

- **Setup:** Wiring MokaForm by hand means managing its bearer token, minting and rotating your own API keys, and coding the questionnaire, submission, and webhook calls yourself. Through Jentic you install once, import MokaForm from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** MokaForm puts the questionnaire and webhook id in the URL path (`/questionnaires/{questionnaireId}/submissions/sample`, `/webhook/zapier/{webhookId}`), so a rule can pin your agent to one questionnaire for reading submissions. You choose the operations it may call, so a destructive one like deleting a webhook is not included unless you add it.
- **Credential handling:** Your MokaForm token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'subscribe a webhook to a form' or 'read form submissions', and Jentic returns the matching MokaForm operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Typeform API** — Conversational form and survey platform with rich response analytics
- **JotForm API** — General-purpose form builder with extensive integrations and payment widgets
- **Stripe API** — Payment processing platform that powers MokaForm's payment forms via Stripe Connect

## FAQ

### Why is there no official OpenAPI spec for MokaForm?

MokaForm does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call MokaForm via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the MokaForm API use?

MokaForm uses HTTP Bearer authentication. Generate a key through POST /api-keys, then send it as Authorization: Bearer <token>. Through Jentic, the bearer token is stored encrypted in the credential vault and injected at request time so the secret never appears in agent context.

### Can I capture payments through MokaForm?

Yes. Connect a Stripe account to a MokaForm organisation via GET `/organizations/{organizationId}/payment/stripe/create-account`, then list connected accounts with GET `/organizations/{organizationId}/payment/stripe/accounts.` Once the account is live, MokaForm questionnaires can collect payments routed to that connected Stripe account.

### What are the rate limits for the MokaForm API?

MokaForm does not publish formal rate limits in this OpenAPI spec. Check https://mokaform.com or your account documentation for current limits. As with most form platforms, expect tighter limits on submission ingestion endpoints than on read-only schema endpoints.

### How do I subscribe a webhook through Jentic?

Run pip install jentic, search for 'subscribe a webhook to a form', load POST `/webhook/zapier/subscribe`, and execute with the questionnaire ID and target URL. Jentic returns the webhook ID, which you keep for later use with DELETE `/webhook/zapier/{webhookId}.`

### Can I retrieve the schema of a MokaForm questionnaire?

Yes. GET `/questionnaires/{questionnaireId}/submissions/sample/definition` returns the structured definition of the submission shape, and GET `/questionnaires/{questionnaireId}/submissions/sample` returns a representative payload. Together they let an integration map MokaForm responses without manual inspection.

### Can I limit what my agent is allowed to do with the MokaForm API?

Yes. Because you self-host Jentic One, your own rules decide which MokaForm operations and credentials the agent may use. MokaForm puts the questionnaire and webhook IDs in the URL path, such as GET `/questionnaires/{questionnaireId}/submissions/sample` and `/webhook/zapier/{webhookId}`, so you can pin the agent to reading submissions from a single questionnaire. You also choose the allowed operations, so a destructive call like DELETE `/webhook/zapier/{webhookId}` stays off the agent's menu unless you add it.
