Skip to main content

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:

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)

Source distribution for suppuo 0.4.0
File Size Uploaded
suppuo-0.4.0.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for suppuo 0.4.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page