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.
What the API covers
List, create, retrieve, delete
List, create, retrieve, update, delete
List, create, create in bulk, retrieve, update, archive, restore, delete
List, create, delete
List, retrieve, update
List, create, retrieve, update, delete
List, create, retrieve, update, delete
Open
List, create, create in bulk, retrieve, update, delete
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:
In your organization, click API in the left navigation.
Under Platform token, click Create token.
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.
An organization holds one platform token at a time, and it reaches every workspace in the book of business. Store it like any other production credential.
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
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?
