suppuo (Python SDK)
Typed Python client for the suppuo.com helpdesk REST API.
pip install suppuo
from forjio_suppuo import SuppuoClient
# Bearer token from token= or the SUPPUO_TOKEN env var — use an
# sk_live_... API key from Dashboard -> Settings -> API keys.
client = SuppuoClient(token="sk_live_xxx")
# Tickets — agent workspace surface
page = client.tickets.list(status="open", channel="telegram", tag="billing", q="refund")
ticket = client.tickets.get(page["tickets"][0]["id"])
client.tickets.reply(ticket["id"], body="On it!", is_internal=False)
client.tickets.update(ticket["id"], status="resolved", tags=["billing", "vip"])
tags = client.tickets.tags() # distinct tags (autocomplete feed)
# Attachments — stage, bind to a reply, download
with open("invoice.pdf", "rb") as f:
meta = client.attachments.upload(
data=f.read(), filename="invoice.pdf", content_type="application/pdf"
)
client.tickets.reply(ticket["id"], body="Attached.", attachment_ids=[meta["id"]])
file = client.attachments.download(meta["id"]) # {"data", "contentType", "filename"}
# Billing — current plan + upgrade checkout (tiers: free / starter / growth / business)
info = client.billing.get()
out = client.billing.checkout("growth") # redirect the browser to out["hostedUrl"]
# Channels — BYO integrations
channels = client.channels.list()
client.channels.create(provider="telegram_bot", botToken="123456789:AAxxx")
client.channels.delete(channels["integrations"][0]["id"])
# Reports / settings / CSAT
summary = client.reports.summary(days=30)
automation = client.settings.get_automation()
client.settings.put_automation(auto_response_enabled=True, hide_branding=True)
csat = client.csat.stats()
# Canned replies
client.canned_replies.create(title="Refund policy", body="...")
# Public (requester) surface — no token required
out = client.public.submit_ticket(
account_id="acc_...",
subject="Order question",
body="Where is my order?",
email="customer@example.com",
)
view = client.public.get_ticket(out["accessToken"])
client.public.reply_ticket(out["accessToken"], body="Any update?")
Endpoints covered
| Namespace | Methods |
|---|---|
tickets |
list (status / assignee / tag / channel / priority / q / limit / cursor), tags, get, create, reply (with attachment_ids), update (status / priority / assignee_sub / tags) |
billing |
get (subscription + tier table), checkout(tier) -> hosted checkout URL |
channels |
list, create (whatsapp_twilio / whatsapp_cloud / email_resend / telegram_bot / slack_webhook / discord_webhook), delete |
reports |
summary(days=7|30|90) |
settings |
get_automation, put_automation (business hours, auto-response, hide_branding) |
csat |
stats |
attachments |
upload (raw bytes + filename, 8MB max), download |
canned_replies |
list, create, update, delete |
public |
submit_ticket, get_ticket, reply_ticket (no token) |
Errors raise SuppuoError carrying the API envelope's error.code
(NOT_FOUND, VALIDATION_ERROR, AUTH_REQUIRED, ...), the HTTP
status, and the meta.requestId.
Family
Sister to:
@forjio/suppuo(JS/TS)hachimi-cat/suppuo-go(Go)
Metadata
Release files for suppuo 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| suppuo-0.4.0.tar.gz | 14.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| suppuo-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.0 kB
Release files / suppuo-0.4.0.tar.gz
| Download URL | suppuo-0.4.0.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8ff4b2b9b7b3e1bcac4b3207df2ff3ef57eefe8e1ed5b3c97805c2d42a1ec9e
|
|
BLAKE2b-256 checksum How to use checksums |
003349eb2b980bdf2d1a10d6a68b57ad0027435379a9e7d31211b33c76b0023d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / suppuo-0.4.0-py3-none-any.whl
| Download URL | suppuo-0.4.0-py3-none-any.whl |
|---|---|
| Size | 14.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b2143c83e8cf192bd452f11063cd447fb3e8d7a3c56c899d80299968b5bd469
|
|
BLAKE2b-256 checksum How to use checksums |
c34340c93985757f98de1e9271cd2811ae0fef3531f4dbc9e9b033cab73403b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|