API

API basics

Base URL, formats and conventions used across the API.

The Knips Public API is a single REST API over HTTPS. Everything speaks JSON.

Base URL

https://api.knips.com

All endpoints are relative to this base and grouped by resource in the sidebar. A legacy /v1 prefix also works, but the plain paths shown throughout these docs are the canonical form.

Requests

  • Send Content-Type: application/json on any request that has a body.
  • Request bodies are limited to 2 MB — larger bodies are rejected with 413.
  • Authenticate every request with your API key — the public embed endpoints are the only exception.

Responses

  • Responses are JSON. One exception: request the contacts list with an Accept: text/csv (or XLSX) header and you get a file download instead.
  • The API is in beta — response bodies can gain or change fields, so parse defensively and ignore what you don't recognise.
  • Most list endpoints are paged and filterable — see Pagination & filtering.
  • Errors follow a consistent shape — see Errors.

Rate limits

Keys get 60 requests per minute, counted across all API instances. Bursts are throttled harder: more than about 20 requests in quick succession can hit the limit before the per-minute cap does. Either way the response is a 429 with a Retry-After header telling you how many seconds to wait — pace your requests instead of sending bursts.

Requests without a valid key are throttled per client IP.

Public embed endpoints

GET /feeds/{feedId}/posts and GET /feeds/{feedId}/public-posts serve a workspace's published posts and need no API key. They're built for embedding in a browser — any site can call them — and skip the rate limits. Paging is capped at $limit 30 / $offset 100; higher values are quietly clamped.

OpenAPI schema

The whole API is described in an OpenAPI document at https://api.knips.com/openapi.json — no key needed. Handy for generating typed clients.

Conventions

  • Timestamps are in ISO 8601 format, in UTC (e.g. 2026-01-01T12:00:00.000Z).
  • Resource identifiers are opaque strings — don't read anything into their format.

On this page