canonical: https://jentic.com/apis/knack.com/knack

# Knack API

Jentic publishes the only available OpenAPI specification for Knack API, keeping it validated and agent-ready. Knack is a no-code database and application builder used to ship internal tools, member directories, and customer portals without writing a backend. The API exposes records on application objects with full-field access, view-scoped record reads and writes that respect a published view's permissions, and a session endpoint for user-token-based access. Two authentication modes are supported: an application id with REST API key for full access, and an end-user token for view-based requests scoped to that user.

## For AI agents

Read and write records in a Knack no-code database via object-based or view-scoped REST endpoints, with optional end-user authentication.

## Scope

Does not handle UI page rendering, workflow rule editing, or billing for the Knack account itself - use for record-level reads and writes via object or view endpoints only.

## Capabilities

- List records on a Knack object with filtering, pagination, and full field access
- Retrieve a single Knack record by object key and record id
- Create a Knack record with the field values defined on its object
- Update or delete a Knack record using the object-based endpoint
- Read records through a published Knack view, scoped to that view's fields
- Create or update records through a Knack view to respect view permissions
- Authenticate an end user against a Knack application to obtain a user token

## Use cases

### Internal Tool Backend Sync

Use Knack as the backend for an internal tool and sync records to or from the team's other systems. POST and GET on `/objects/{object_key}/records` give full-field access to every record on an object, which is the right surface when staff are running operations that bypass user-facing views. Common for ops teams who built their workflow in Knack and now need to feed reporting or finance tools.

Example prompt: List all records on Knack object 'object_5' updated since yesterday and write them as rows into the data warehouse staging table.

### View-Scoped Customer Portal Writes

Let an external app write into a Knack application without granting it full database access. Calls go through `/pages/{scene_key}/views/{view_key}/records`, which only exposes the fields configured on that view, so the integration cannot accidentally read or modify data outside the view's scope. Suited for customer-portal flows where end users submit forms or update their own records.

Example prompt: POST a new record to view 'view_12' under scene 'scene_3' on behalf of the signed-in customer with the form fields supplied.

### End-User Authentication for Mobile or Web

Authenticate end users against a Knack application from a custom front end. POST `/applications/{application_id}/session` exchanges credentials for a user token that subsequent view-based calls can use. Useful for mobile apps backed by Knack where the data model lives in Knack but the UI is custom.

Example prompt: POST credentials for user@example.com to `/applications/abc123/session` and use the returned token on the next view-based request.

### Bulk Record Operations

Run bulk maintenance on Knack data without rebuilding the application. The object-based endpoints support filtering and per-record updates, so an agent can list, transform, and re-write records in a controlled batch. Best for migrations, deduping, and field normalisation jobs that would otherwise require manual editing.

Example prompt: List records on object_3 where state='Texas', call PUT for each to set state='TX', and report the count of records updated.

### Agent-Driven Record Operations via Jentic

Embed Knack record reads and writes in an AI agent so an operator can ask 'how many open orders today' or 'create a new customer' and have the agent call the right Knack endpoint. The agent searches Jentic, loads the operation schema, and executes with the application id and REST API key kept in your Jentic One instance. Far faster than writing object key lookups into custom code.

Example prompt: Through Jentic, search for 'list Knack records', load `/objects/{object_key}/records`, and report today's count of records on the 'orders' object.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/objects/{object_key}/records` | List records on an object |
| POST | `/objects/{object_key}/records` | Create a record on an object |
| GET | `/objects/{object_key}/records/{record_id}` | Retrieve a single record |
| GET | `/pages/{scene_key}/views/{view_key}/records` | List records through a view |
| POST | `/pages/{scene_key}/views/{view_key}/records` | Create a record through a view |
| POST | `/applications/{application_id}/session` | Authenticate an end user |

## Key resources

- **Object-Based Records** — CRUD on records via object keys with full-field access
- **View-Based Records** — Read and write records through a published view, scoped to its fields
- **Authentication** — Exchange end-user credentials for a session token

## Why Jentic

- **Setup:** Wiring Knack by hand means learning its application-id and REST-API-key header auth and handling the api.knack.com/v1 host and its errors yourself. Through Jentic you install once, import Knack from the API Directory, store the keys once, and your agent calls it.
- **Permission scoping:** Knack puts the object key in the URL path (`/objects/{object_key}/records`), so a rule can pin your agent to one object: it can read the records in that object and nothing else. You choose the operations it may call, so record creation on that object is not included unless you add it.
- **Credential handling:** Your Knack application id and REST API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'read records from a Knack object' or 'create a record', and Jentic returns the matching Knack operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Airtable API** — No-code database with a record-and-field model similar to Knack
- **NocoDB API** — Open-source no-code database that exposes object-style record APIs
- **Stripe API** — Often paired with Knack to charge for the records or services tracked in the database

## FAQ

### Why is there no official OpenAPI spec for Knack API?

Knack does not publish an OpenAPI specification - only narrative reference docs. Jentic generates and maintains this spec so that AI agents and developers can call Knack API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Knack API use?

The Knack API uses two API key headers: X-Knack-Application-Id identifies the application and X-Knack-REST-API-Key authorises object-based requests. View-based requests can also use X-Knack-REST-API-Key or an end-user token in the Authorization header obtained from `/applications/{application_id}/session.` Through Jentic, both keys are stored in your Jentic One instance.

### What is the difference between object-based and view-based requests?

Object-based requests at `/objects/{object_key}/records` give full access to every field on the object and require the application id and REST API key. View-based requests at `/pages/{scene_key}/views/{view_key}/records` are scoped to the fields exposed by the view and can be made with an end-user token, so they respect the same permissions a real user would have.

### What are the rate limits for the Knack API?

Knack enforces per-application rate limits that vary by plan. The spec does not declare hard numbers - consult docs.knack.com/reference for the current per-plan figures. Cache list responses where possible; Jentic's runtime caches identical reads across agent runs.

### How do I create a Knack record from an AI agent through Jentic?

Search Jentic for 'create a Knack record', load POST `/objects/{object_key}/records`, and execute with the object key and the field payload. Jentic injects the X-Knack-Application-Id and X-Knack-REST-API-Key headers from the vault so the agent never holds the raw keys.

### Can the Knack API authenticate end users of my application?

Yes. POST `/applications/{application_id}/session` exchanges an email and password for a user token. Pass that token on subsequent view-based requests so the API respects the same role and permission checks the user would see in the Knack UI.

### Can I limit what my agent is allowed to do with the Knack API?

Yes. Because your Jentic One instance is self-hosted, your own rules decide which Knack operations and credentials the agent may use. Knack puts the object key in the URL path, such as `/objects/{object_key}/records`, so a rule can pin the agent to a single object and let it read only that object's records. You also choose the operations it may call, so creating or updating records on that object is not available unless you explicitly add it.
