Developer API
Build on Thicket’s REST API: connect with OAuth or a personal access token, learn the conventions and limits, and find the full reference.
Thicket has a versioned REST API at /api/v1. The web app is built on the same service layer, so projects, to-dos, messages, docs and files, calendar events, cards, chat, people, search, reports, and more are all available to your scripts and integrations. The API is included on every plan, and you don't need to register or ask for approval to use it.
Authentication
For the CLI, run thicket auth login and approve access in your browser. The CLI uses OAuth, refreshes credentials automatically, and appears in My settings > Connected apps. A read-and-write connection still follows your role and project access. Use --scope read to approve read-only access.
Other integrations can use OAuth with PKCE and the resource https://www.thickethq.com/api/v1. See the authentication reference.
Scripts without a browser can use personal access tokens:
- In Thicket, open My settings > API tokens
- Create a token, choosing Read-only or Read and write, and copy it. It's shown only once
- Send it with every request as
Authorization: Bearer <token>
A token works exactly as you: the same organizations, the same project access, the same permissions. Along with the token, every request must send a User-Agent header naming your app and a way to contact you, such as Acme Reports (ops@acme.example). Without one, the API answers 400 user_agent_required.
This example reads the token from a THICKET_TOKEN environment variable, so the token itself never appears in the command:
curl https://www.thickethq.com/api/v1/orgs \
-H "Authorization: Bearer $THICKET_TOKEN" \
-H "User-Agent: Acme Reports (ops@acme.example)"
- A read-only token can only read. Requests that change something get
403 read_only_token. - Tokens can only be created and revoked while signed in to the web app, never with another token.
GET /api/v1/authorizationdescribes the token you sent: who it belongs to, its access, when it expires, and the organizations it reaches, with your membership id and role in each.- Revoking a token in My settings > API tokens takes effect immediately.
For managing tokens, see Connected Apps and API Tokens.
The basics
- Base URL:
https://www.thickethq.com/api/v1. Routes that belong to an organization include its slug:/api/v1/{org-slug}/....GET /api/v1/orgslists your organizations and their slugs, and the slug is also in the address bar when you use Thicket (/o/{org-slug}). - Format: JSON with
snake_casekeys and no envelope. - Errors:
{ "error": { "code": "...", "message": "..." } }with conventional HTTP statuses.401means no valid credentials,402 limit_reachedmeans a plan limit,403means not allowed,404means missing or not yours,422means a validation problem, and429and503mean try again after theRetry-Afterseconds. - Tenancy: every request is scoped to an organization you belong to. Data from another organization answers
404, the same as something that doesn't exist. - Rich text:
contentfields take plain text.content_htmlfields take HTML, which Thicket cleans of anything it doesn't allow. - Attribution: anything created with a token shows your name with a small "via API" label in Thicket.
Limits
- Rate limit: 50 requests every 10 seconds per token, and 50 every 10 seconds across all the tokens used from one network address. Over either, you get
429 rate_limitedwith aRetry-Afterheader in seconds. Build retries for429and5xxresponses into your integration from the start. - Pages: listings such as activity, search and chat history answer with a
Linkheader naming the next page, and leave it off on the last page. Follow that URL instead of building your own: it keeps your filters and holds your place, so nothing is skipped or repeated while new activity arrives.?per_page=sets the page size (up to 100). - Uploads: up to 50 MB per file sent in one request. A file attached to a post can be up to 10 GB: reserve it on
POST /attachmentswith JSON, upload the bytes straight to storage with the URLs it answers, then complete it. See the API reference. - Plan limits: the API can't create more than your plan allows; it answers
402 limit_reachedinstead.
Tools that save you work
- OpenAPI spec: thickethq.com/openapi.json (OpenAPI 3.1, date-versioned) describes every route, for generating a client in any language.
- TypeScript SDK:
npm install thicket-sdk(github.com/thicket-hq/thicket-sdk) handles authentication, retries withRetry-After, and pagination, with types generated from the spec. - Command line: the Thicket CLI wraps the same API in the
thicketcommand. - AI agents: the skill file at thickethq.com/thicket-SKILL.md teaches an AI agent the API's patterns. See Connect an AI Agent.
- MCP: AI apps that speak MCP can connect at
https://www.thickethq.com/api/mcpwith a browser sign-in instead of a token. See Connect ChatGPT, Claude and AI Apps to Thicket with MCP.
Building an integration for others
If you're building a product or tool for other Thicket customers, use OAuth so each person can review and approve access in Thicket. Request the API resource with PKCE, store credentials securely, and support refresh and disconnection. The connection follows that person's current permissions. When your integration is live and you'd like it listed for other customers to find, email support@thickethq.com with what it does and a link.
Using an AI tool through the API or CLI
An AI tool can send the content it reads to its operator and AI providers. Their retention, review, training, and processing locations follow your or your organization's provider agreement and settings. Read-only access still shares information. Use only access you're authorized to grant, keep tokens in secure credential configuration, and review consequential actions. Revoking a token stops future requests using it; it doesn't erase external copies or undo earlier changes. See our Privacy Policy.
Full reference
The route-by-route reference is at thickethq.com/developers/api. It covers authentication, projects, content, people, the calendar, search, reports, and account routes.