Version0.1.0Verifiednot yet verifiedLicenseBSD-3-Clause

sigil-discourse

Discourse forum API client library

Report a bug or suggest a feature
Readme

sigil-discourse

A Sigil library for the Discourse forum REST API.

Modules

ModuleDescription
(discourse client)Shared auth headers, URL construction, HTTP helpers
(discourse topics)List, get, create, update, close/open/pin, delete topics
(discourse posts)Get, create, update, delete posts
(discourse messages)Send, list private messages
(discourse search)Full-text search
(discourse categories)List, get, create, update categories
(discourse users)List, get, create, suspend/unsuspend, activate/deactivate users
(discourse groups)List, get, create, delete groups and manage members
(discourse admin)Site settings and invites

Usage

Add sigil-discourse as a dependency in your package.sgl:

(from-git url: "codeberg:sigil/sigil-discourse" package: "sigil-discourse")

Then import the modules you need:

(import (discourse topics)
        (discourse users))

(define base-url "https://forum.example.com")
(define api-key (getenv "DISCOURSE_API_KEY"))
(define username (getenv "DISCOURSE_USERNAME"))

;; List latest topics
(discourse-list-latest-topics base-url api-key username)

;; Create a new topic
(discourse-create-topic base-url api-key username
                        "Hello World" "This is the body" 5)

;; Get a user
(discourse-get-user base-url api-key username "david")

Authentication

Discourse uses Api-Key and Api-Username headers. Every library function takes (base-url api-key username ...) as its first three parameters.

Building

sigil deps install
sigil build
sigil test

License

BSD-3-Clause

Clone

$ git clone https://codeberg.org/sigil/sigil-discourse

Releases

v0.9.1 — latest by version, released 1 Apr 2026

All releases — 2 tags in this repository.

Source

Browse the latest source

One page per file, and every line has a permalink.

Recent commitsAtom

The last 20 commits keep a page here. Everything older lives in the clone.