Skip to main content

Shadow SDK — Python client for Shadow server REST API and Socket.IO real-time events

Project description

Shadow Python SDK

Python client for the Shadow server REST API and Socket.IO real-time events.

Installation

pip install shadowob-sdk

Quick Start

from shadowob_sdk import ShadowClient, ShadowSocket

# REST API
client = ShadowClient("https://shadowob.com", token="your-jwt-token")
me = client.get_me()
print(f"Logged in as {me['username']}")

# Send a message
msg = client.send_message("channel-id", "Hello from Python!")
print(f"Sent message: {msg['id']}")

# Real-time events
socket = ShadowSocket("https://shadowob.com", token="your-jwt-token")
socket.on("message:new", lambda msg: print(f"New message: {msg['content']}"))
socket.connect()
socket.join_channel("channel-id")
socket.wait()  # Block until disconnected

Commerce Automation

from shadowob_sdk import ShadowClient

client = ShadowClient("https://shadowob.com", token="your-jwt-token")

# Buyer-facing product context includes product, shop, provider, delivery, refund,
# credit, and asset homepage links.
context = client.get_commerce_product_context("product-id")

# Preview an offer, then purchase with an idempotency key.
preview = client.get_commerce_offer_checkout_preview("offer-id")
if preview["nextAction"] == "purchase":
    client.purchase_commerce_offer(
        "offer-id",
        idempotency_key="checkout-20260518-001",
    )

# Paid files return a short-lived grant token for authorized downloads or previews.
opened = client.open_paid_file("workspace-file-id")
print(opened["viewerUrl"], opened.get("grantToken"))

# External provider apps use an OAuth access token for app-scoped entitlements.
app_client = ShadowClient("https://shadowob.com", token="oauth-access-token")
access = app_client.get_oauth_commerce_entitlement_access(
    resource_id="oauth-app-id:premium",
)
if access["allowed"]:
    app_client.redeem_oauth_commerce_entitlement(
        resource_id="oauth-app-id:premium",
        idempotency_key="provider-delivery-001",
    )

API Reference

See the full documentation for complete API reference.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shadowob_sdk-1.1.20.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadowob_sdk-1.1.20-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file shadowob_sdk-1.1.20.tar.gz.

File metadata

  • Download URL: shadowob_sdk-1.1.20.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for shadowob_sdk-1.1.20.tar.gz
Algorithm Hash digest
SHA256 acd841bed607279215dc0965a37ae60980c5c2a598a373aad606350da7743ff3
MD5 ea7fee6cb8f28fd2a102d143f9a2003d
BLAKE2b-256 70749fe5f14f97d4612bcde9cc4eb72ef3b8ec2699f0da0103aeb1c627f9df9f

See more details on using hashes here.

File details

Details for the file shadowob_sdk-1.1.20-py3-none-any.whl.

File metadata

  • Download URL: shadowob_sdk-1.1.20-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for shadowob_sdk-1.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 e07012bd6a0f26aa61af5bdecbf84c6229d68af76f76b672577176ea85c63771
MD5 4e73803e22be2e673b442b1de4f4f362
BLAKE2b-256 04da61ebf95ff8f69906a2c2168a43e9a3b6804d6ed8bc14763779afecf90ff1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page