Introduction
For Developers

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/v1
Responses are JSON, except file downloads and 204 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.

Was this page helpful?