---
title: "Infer a draft schema now, from recent submissions (observe mode, no schema yet)"
method: POST
path: "/v1/forms/{formId}/schema/infer"
tags: ["forms"]
---

# Infer a draft schema now, from recent submissions (observe mode, no schema yet)

`POST /v1/forms/{formId}/schema/infer`

## Request

- Base URL: `https://postbag.dev`
- URL: `https://postbag.dev/v1/forms/{formId}/schema/infer`
- Auth: HTTP bearer

Only for observe-mode forms with no published schema. Looks at recent non-spam submissions and produces a draft schema; call forms_schema_publish with the result (or an edited version of it) to make it real.

## Path parameters

- `formId` string, required

## Response `200`

ok

- SchemaVersion
  - `json_schema` object, required
  - `ui` object
  - `changelog` string
  - `version` integer
  - `inferred` boolean
  - `created_at` string
  - `created_by` string

## Other responses

- `400`: Error
- `401`: Error
- `403`: Error
- `404`: Not found
- `409`: Error
- `422`: Error

---

[API](https://skmtc.dev/postbag/apis/postbag-api.md) · [All operations](https://skmtc.dev/postbag/apis/postbag-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postbag/apis/postbag-api/revisions/3da976524695?raw)
