Form

Nick has form support which can be used with the @plone/volto-form-block package.

Submit

To submit a form use the following request. The block id and the data of the form should be provided in the endpoint.

POST /@schemaform-data HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Content-Type: application/json

{
  "block_id": "669530d8-d319-48cc-ad4f-cd690ab7e472",
  "data": {
    "myfield": "Lorem Ipsum"
  }
}

Or use the client directly:

import { Client } from '@robgietema/nick';

const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
  data: { login: 'admin', password: 'admin' },
});

const { data } = await cli.postForm({
  token: login.data.token,
  data: {
    block_id: '669530d8-d319-48cc-ad4f-cd690ab7e472',
    data: {
      myfield: 'Lorem Ipsum',
    },
  },
});

The API will return a 200 response:

HTTP/1.1 204 No Content

Form Data

If the form has store data enabled you can fetch the submitted values of the form.

GET /@form-data?block_id=6e2235ca-b70b-4e88-bdd9-8cba9838d52c HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk

Or use the client directly:

import { Client } from '@robgietema/nick';

const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
  data: { login: 'admin', password: 'admin' },
});

const { data } = await cli.getFormData({
  token: login.data.token,
  block_id: '6e2235ca-b70b-4e88-bdd9-8cba9838d52c',
});

The API will return a 200 response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@id": "http://localhost:8080/@form-data",
  "items": [
    {
      "myfield": "Lorem Ipsum",
      "created": "2026-05-07T11:06:02.000Z"
    }
  ],
  "items_total": 1,
  "expired_total": 0
}


This site uses Just the Docs, a documentation theme for Jekyll.