streams

Attach a form or selector with a mapping

If the stream has no schema yet, the attached form provides version 1 (copied from its published schema, its inferred draft, or the fields seen in recent submissions) and an identity mapping is used when mapping is omitted — so attaching the first form never needs a hand-written schema. Fails 422 stream_schema_missing if neither the stream nor the form has any fields to work from. Fails 422 mapping_incomplete (with the missing fields listed) if the mapping does not cover every field the stream's schema requires — a form can't join a stream it can't feed.

post/v1/streams/{streamId}/sources

Request

  • Base URL: https://postbag.dev
  • URL: https://postbag.dev/v1/streams/{streamId}/sources
  • Auth: HTTP bearer

Path parameters

streamIdstring required
Example:fm_8f3kq2

Request body

form_idstring

One Form feeding this Stream. Mutually exclusive with selector.

selectorstring

A dynamic Form source: non-empty tag:<tag> or project:<project_id> without leading or trailing whitespace after :. Mutually exclusive with form_id.

mappingobject

Keyed by the stream schema's field names. Each entry is exactly one of from (copy a field from the form's data), const (a fixed value) or expr (a JSONata expression), plus an optional default. Every required field in the stream's schema must be covered or this call fails 422 mapping_incomplete.

Response

attached

idstring required
form_idstring
selectorstring
mappingobject
mapping_status'valid' | 'incomplete'
missingstring[]
stream_schema_versioninteger

Example response

{
  "id": "fm_8f3kq2",
  "form_id": "fm_8f3kq2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.