Introduction
The SupportHub REST API is the HTTP interface external systems (CRMs, bots, mobile apps, your own services) use to create tickets, send and read messages, work with contacts and receive the project’s events.
What to use when
- REST API: server-side integrations. Connect a CRM, a bot or your own channel, create tickets and post to them from code.
- Website widget: a chat on your site without writing your own client, one script tag.
- Webhooks: SupportHub pushes events to your public URL.
- Long polling with
/updates: when you have no public URL (a bot behind NAT, for example), you pull events yourself, like Telegram’s getUpdates.
Base URL
https://api.support.forestsnet.com/api/v1204 responses with no body. Dates are ISO 8601 in UTC; in ticket, message and contact objects they come without a timezone suffix (2026-04-06T10:12:33.123456), so read them as UTC. Object IDs are UUID strings.What the API covers
All paths below are relative to the base URL. Every request must carry an API key (see Authentication).
| Tickets | GET /tickets POST /tickets GET /tickets/{id} PATCH /tickets/{id} POST /tickets/{id}/close POST /tickets/{id}/reopen POST /tickets/{id}/rate GET /contacts/{id}/tickets |
| Messages | GET /tickets/{id}/messages POST /tickets/{id}/messages PATCH /messages/{id} POST /messages |
| Contacts | GET /contacts GET /contacts/{id} POST /contacts |
| Files | POST /media/upload GET /media/{id} |
| Events | GET /updates |
| Webhooks | GET /webhooks POST /webhooks PATCH /webhooks/{id} DELETE /webhooks/{id} POST /webhooks/{id}/test |
| Knowledge base (published public articles, read-only) | GET /kb/categories GET /kb/categories/{id} GET /kb/articles GET /kb/articles/{id} GET /kb/search?q= |
| Project | GET /workspace/settings GET /widget/signing-secret |
GET /workspace/settings returns the project’s name, slug and timezone, the message edit window and the language. GET /widget/signing-secret returns the secret your server signs widget visitor tokens with.
The knowledge base serves only published articles open to customers: internal articles aren’t visible through the API. If the project’s plan has no knowledge base, the endpoints answer 403 PLAN_FEATURE_UNAVAILABLE. An article from GET /kb/articles/{id} has two text fields: content_markdown, the text as written in the editor (markdown), and content_html, the same text as HTML: bold, italics, strikethrough, code, links and lists are marked up, line breaks become <br>, and the rest of the text is escaped. Markdown headings and tables stay plain text in the HTML. Every read of an article adds one to view_count.

