For the complete documentation index, see llms.txt. This page is also available as Markdown.

Getting Started

Read and write the books of every workspace in your organization's book of business from one REST API.

The Kick Platform API is a REST API for partners who keep books in Kick on behalf of their clients. A single organization access token reaches every workspace in that organization's book of business, so one integration can create workspaces and entities, read a chart of accounts, and pull transactions across an entire client base.

The Platform API is not yet publicly available. Access is enabled per organization by the Kick team. If you are interested in building on it, email platform@kick.co and tell us what you want to build.

What the API covers

Resource
Operations

Workspaces

List, create, retrieve, delete

Entities

List, create, retrieve, update, delete

Chart of Accounts

List, create, create in bulk, retrieve, update, archive, restore, delete

Plaid Connections

List, create, delete

Transactions

List, retrieve, update

Transaction Rules

List, create, retrieve, update, delete

Classes

List, create, retrieve, update, delete

Ledgers

Open

Journal Entries

List, create, create in bulk, retrieve, update, delete

Reports

Profit and loss, balance sheet, cash flow, trial balance, general ledger


Demo app

A demo app using this API can be found here. It's written in React/Node.js.

Base URL

Every endpoint lives under one production host:

Paths in the reference are relative to it, so GET /platform/v1/workspaces is https://use.kick.co/api/platform/v1/workspaces.

Authentication

Send your organization access token as a bearer token on every request:

The token identifies the organization, so no organization id ever appears in a path.

Once your organization has access, an organization admin creates the token in Kick:

  1. In your organization, click API in the left navigation.

  2. Under Platform token, click Create token.

  3. Copy the token before dismissing the dialog. Kick stores only its prefix and cannot show the full value again.

Rotate token replaces it. The previous token stops working immediately, so every integration using it has to be updated with the new one.

Paging

List endpoints page with limit and offset. limit defaults to 100, which is also the maximum, so walk longer collections by advancing offset:

Rate limits

Requests are rate limited per token. Over the limit the API answers 429 with a Retry-After header giving the number of seconds to wait before retrying.

Default rate limit is 300 requests/minute. Reach out to us with your use-case if you need higher limit.

Idempotency

Every mutating endpoint accepts an optional Idempotency-Key header. Retrying a request under the same key within 24 hours replays the original response instead of writing again, which is what makes a retry after a timeout safe.

→ Idempotency

Errors

Status
Meaning

400

The path, query, or body failed validation

401

The token is missing, malformed, revoked, or its organization does not have access

404

The resource does not exist, or it sits outside your book of business

409

The request conflicts with the current state of the books, such as deleting an account that already carries journal entries

429

Rate limited, retry after the number of seconds in Retry-After

Trace ids

Every response carries an X-Trace-Id header holding the id Kick assigned to that one request:

Errors carry the header as well, and repeat the value in the body as traceId next to message:

When reporting errors experienced during API usage make sure to include trace id from errored requests in bug report.


Next steps

→ Workspaces

→ Idempotency

→ Webhooks

Last updated

Was this helpful?