Skip to main content

Developers · API

Kinetic REST API: auth and quick start

The Kinetic Core REST API reads and writes spaces, Kapps, forms and submissions over HTTPS. Each call is scoped to one space and filtered by the caller's security policies. Authenticate with HTTP Basic as a space user; when you submit a form, the workflow attached to it starts. This page covers the first four calls.

API Reference Kinetic Core REST API, OpenAPI 5.2, served at {serverUrl}/app/api/v1.

Last updated
Docs version referenced
6.1 (release notes through 6.1.7)
API specification
Kinetic Core REST API 5.2

Authentication

Authenticate with HTTP Basic as a space user

Join the username and password with a colon, Base64-encode the result, and send it as Authorization: Basic <encoded>. A browser that already has a Kinetic session uses that session instead.

Source: the Authentication section of the API Reference (opens in a new tab).

Scripts, services and agents
HTTP Basic with a dedicated integration user. Give that user only the teams and security policies it needs; every response is filtered by them.
Custom front ends and portals
An OAuth client: confidential for server-side apps, public for browser apps. Add your app's origin to Trusted Resource Domains. See Configuring OAuth Clients and Trusted Domains (opens in a new tab).
People signing in
SAML or OIDC single sign-on (Entra ID, Okta), LDAP, CAC/PIV cards, or internal accounts. See Authentication and Login Methods (opens in a new tab).

Quick start

Submit a form and read it back

You need a space URL, an integration user and a Kapp with at least one form. The examples use a Kapp with the slug services and a form with the slug new-hire; replace them with your own.

  1. 01

    Create an integration user

    In the Space Console, add a user and grant access through teams. See Creating Users (opens in a new tab).

  2. 02

    Check the credentials

    GET /space returns the space if the user can authenticate.

  3. 03

    Find the form

    List Kapps, then the forms in one Kapp, to get the slugs to post to.

  4. 04

    Submit and read back

    Post field values with completed=true, then retrieve the submission by ID.

curl · Core REST API quick start
# Set once. <your-space-url> is the full URL of your space.export KINETIC="https://<your-space-url>/app/api/v1"export KINETIC_AUTH="$KINETIC_USER:$KINETIC_PASSWORD" # 1. Check the credentials: retrieve the space.curl -u "$KINETIC_AUTH" "$KINETIC/space" # 2. List the Kapps in the space, then the forms in one Kapp.curl -u "$KINETIC_AUTH" "$KINETIC/kapps"curl -u "$KINETIC_AUTH" "$KINETIC/kapps/services/forms" # 3. Submit a form. completed=true submits every page at once,#    so the workflows attached to the form start.curl -u "$KINETIC_AUTH" -X POST \  "$KINETIC/kapps/services/forms/new-hire/submissions?completed=true" \  -H "Content-Type: application/json" \  -d '{"values": {"Employee Name": "Jordan Lee", "Start Date": "2026-11-02"}}' # 4. Read the submission back with its values and details.curl -u "$KINETIC_AUTH" \  "$KINETIC/submissions/<submission-id>?include=values,details"

Tested on version: pending verification

Node.js · submit and read back
// Node.js 18 or later (built-in fetch). Submit a form, then read it back.const base = "https://<your-space-url>/app/api/v1";const auth = "Basic " + Buffer.from(  process.env.KINETIC_USER + ":" + process.env.KINETIC_PASSWORD).toString("base64");const headers = { Authorization: auth, "Content-Type": "application/json" }; const created = await fetch(  base + "/kapps/services/forms/new-hire/submissions?completed=true",  {    method: "POST",    headers,    body: JSON.stringify({      values: { "Employee Name": "Jordan Lee", "Start Date": "2026-11-02" },    }),  }).then((r) => r.json()); // The response wraps the record: { submission: { id, coreState, values, ... } }const id = created.submission.id; const current = await fetch(  base + "/submissions/" + id + "?include=values,details",  { headers }).then((r) => r.json()); console.log(current.submission.coreState, current.submission.values);

Tested on version: pending verification

Endpoints used on this page

Paths are relative to https://<your-space-url>/app/api/v1 and responses are JSON.

Core REST API endpoints used in the quick start
Method Path Reference
GET /space Space Retrieve (opens in a new tab)
GET /kapps Kapp Search (opens in a new tab)
GET /kapps/{kappSlug} Kapp Retrieve (opens in a new tab)
GET /kapps/{kappSlug}/forms Form Search (opens in a new tab)
POST /kapps/{kappSlug}/forms/{formSlug}/submissions Submission Create (opens in a new tab)
GET /submissions/{submissionId} Submission Retrieve (opens in a new tab)

API questions

Answered by Kinetic Data. Last updated .

  • Which authentication does the REST API accept?

    HTTP Basic: a Base64-encoded username and password for a space user in the Authorization header, as the API Reference documents. A browser that already has a Kinetic session uses that session. Custom front ends and portals use OAuth clients.

  • Should I use a personal account for integrations?

    No. Create a dedicated integration user and give it only the teams and security policies it needs. Every response is filtered by that user's policies, so a narrow account limits what a script or agent can read and change.

  • How do I trigger a workflow without a form?

    Create a WebAPI: an inbound endpoint, at space or Kapp level, that runs a workflow and returns the result from its Return node. Requests wait up to 30 seconds. For longer runs, fetch the result later from the webApiCallbacks endpoint with the run ID.

  • Can I export configuration through the API?

    Yes. Kapp Retrieve with the export parameter returns a Kapp and its child components as JSON for version control. Importing is described in the Platform Guide.

  • How do I page through large result sets?

    Search endpoints accept a limit of up to 1,000 and return a page token for the next page. Use include to choose properties, and count=true when you need only the number.

  • Is there an MCP server for AI clients?

    Yes. The Kinetic MCP server exposes this API and the Integrator API to MCP clients such as Claude Code and Cursor, under the signed-in user's permissions. It authenticates the same way, with HTTP Basic for Core calls.

The full API is in the reference

Every Core REST API endpoint, parameter and response schema is in the API Reference at docs.kineticdata.com, alongside the Platform Guide and release notes.