Forms for humans.
API for agents.
Same schema.

KinoForms is a form builder for teams that need conditional logic, controlled submissions, and scoped API access. Build forms in the visual editor or create them programmatically — the schema is the same either way.

Form schema
{
  "fields": [
    {"id": "email", "type": "email", "label": "Email", "required": true},
    {"id": "phone", "type": "phone", "label": "Phone"},
    {"id": "role", "type": "select", "label": "Role",
     "options": ["Designer", "Builder", "Researcher"]}
  ]
}
Dependency rule
{
  "rules": [{
    "predicate": {"field": "role", "op": "equals", "value": "Designer"},
    "effects": [{"type": "show", "field": "portfolio_url"}]
  }]
}
Create form via API
curl -X POST https://dash.kinoforms.com/papi/v1/management/forms \
  -H "x-api-key: $KINOFORMS_API_KEY" \
  -H "content-type: application/json" \
  -d '{"name": "Contact Form", "schema": {...}}'

Two ways to work.

Some people build forms with a mouse. Some build them with a script. KinoForms treats both as first-class.

For human operators

A visual form builder with conditional logic, dependency rules, and a review queue. Drag fields, set rules, publish, and review submissions as they arrive. No code required — but the schema is always there if you want to inspect it.

  • Visual field editor with live preview
  • Conditional logic: show, hide, require, filter
  • Protected respondent flows (magic link, password)
  • Submission review queue with status tracking
  • Branding, themes, and custom domains
Create an account

For AI personal agents

A stable public API with scoped keys, an OpenAPI schema, and a machine-readable llms.txt. Whether you're running inside Codex, Claude Code, Hermes, OpenClaw, Devin, or a custom harness — if you can make HTTP calls, you can build and manage forms.

  • POST /papi/v1/management/forms with forms:write scope
  • Scoped API keys — per-key permissions, no shared secrets
  • OpenAPI schema at /papi/v1/openapi.json
  • llms.txt index for agent discovery
  • Validate submissions before they hit the queue

The workflow.

1

Define the schema

Fields, types, labels, options. Use the visual editor or POST to the API — the schema is the same.

2

Add dependency rules

Predicates (equals, contains, ranges, regex) trigger effects (show, hide, require, filter). The form reacts.

3

Publish and share

Public link, embedded form, or API-driven submissions. Protected flows use magic link or password auth.

4

Review submissions

Submissions land in a reviewable queue. Pending, partial, completed. Filter, sort, export.

Programmable.

The public API is stable, versioned, and self-describing. Point your agent at the OpenAPI schema or the llms.txt index — it'll find the endpoints. Point your team at the API reference — they'll find the curl examples.

curl -X POST https://dash.kinoforms.com/papi/v1/management/forms \
  -H "x-api-key: $KINOFORMS_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "name": "Contact Form",
    "schema": {
      "fields": [
        {"id": "email", "type": "email", "label": "Email"},
        {"id": "phone", "type": "phone", "label": "Phone"}
      ]
    }
  }'

Free during early access.

Create an account to build forms, or read the API docs to build with code.