---
updatedAt: 2025-09-18T22:34:37.000Z
agentTools:
  projectIndex: https://docs.knack.com/llms.txt
---

# Introduction to the API

The Knack API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer). Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients.

Our API follows most conventions of RESTful architecture. Any requests which require authentication must always be authenticated, as our servers do not retain information from previous requests. Our routes are reliably simple and require only a few levels of nesting.

All data sent to and from the API must be in [JSON](https://www.json.org/json-en.html) format. Many coding languages include utilities to convert data structures to JSON strings and vice versa.

<Callout icon="👍" theme="okay">
  Classic Knack and Next-Gen Knack API work the same way
</Callout>

<br />

We provide example API requests throughout the documentation. Each Classic example is from the [Contact Directory template app](https://www.knack.com/templates/contact-directory/).

<Callout icon="📘" theme="info">
  You can add the Contact Directory Template app into your own account, but **note that you will need to replace the placeholder header values and record IDs in these requests in order to get them working with your own apps.**
</Callout>