Skip to main content

The official Python SDK for interacting with the Little Events API.

Project description

littleevents

The official, developer-friendly Python SDK for interacting with the Little Africa Events API.

littleevents allows external businesses and organizers to seamlessly list, create, and manage events, as well as configure, disable, or enable ticket tiers on the Little Africa platform.

PyPI version Python versions License: MIT


Key Features

  • Resource-Oriented Interface: Natural, idiomatic usage (e.g. client.events.list_events(), client.ticket_prices.create_ticket_price()).
  • Resilient Request Pipeline: Automatically handles HTTP retries on standard rate limits (429) and server errors (5xx) using httpx.HTTPTransport.
  • Zero-Overhead Serialization: Pure Python dictionary interfaces for requests and responses—no complex validation models or Pydantic overhead.
  • Rich Error Observation: Surfaces LittleEventsAPIError preserving raw upstream HTTP status codes, error structures, and validation messages.
  • Clean Sync Client: Optimized HTTP connection pool management built on httpx.

Installation

Install the package via pip from PyPI:

pip install littleevents

Quickstart

1. Client Initialization

Import the client and initialize it using your Bearer API token:

from littleevents import LittleEventsClient

# Initialize the client
client = LittleEventsClient(api_key="your-little-bearer-token")

2. Events Management

List Organizer Events

Retrieve all events belonging to the authenticated organizer:

events_response = client.events.list_events()
print(f"Retrieved {len(events_response.get('data', []))} events.")

Create a New Event

Add a new event under your organizer account. Image dimensions must be exactly 500x500 px:

new_event_data = {
    "EventName": "Startup Neon Gala",
    "Description": "An exquisite evening celebration of tech innovators.",
    "Location": "Alchemist Bar, Westlands",
    "ContactEmail": "events@example.com",
    "ContactPhone": "+254700000000",
    "Country": "Kenya",
    "City": "Nairobi",
    "ImageUrl": "https://example.com/500x500-banner.jpg", # Exactly 500x500 px
    "EventType": "regular",
    "TestEvent": True, # Set to True for sandbox testing
    "Timings": [
        {
            "ShowID": "cb488791-3252-440c-a1de-e5324f10d8cc",
            "Label": "Main Show",
            "Start": "2026-06-01T18:00:00.000Z",
            "End": "2026-06-01T22:00:00.000Z"
        }
    ]
}

created_event = client.events.create_event(new_event_data)

Get Event Details by ID

event = client.events.get_event("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
print(event["EventName"])

Update Event

Modify details of an existing event (fields are optional):

client.events.update_event(
    event_id="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    data={"Location": "Broadwalk Mall, Westlands"}
)

Request Go Live

Submit an event for review and publication by the Little Africa team:

client.events.request_go_live("a1b2c3d4-e5f6-7890-abcd-ef1234567890")

3. Ticket Prices Management

Create Ticket Price

Attach a price tier to an existing event:

ticket_payload = {
    "EventID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "PriceName": "Early Bird General",
    "Price": 1500, # In Currency denomination
    "Remaining": 100, # Total supply available
    "Currency": "KES", # "KES" or "USD"
    "MaxAttendees": 100,
    "MaxTicketsPerOrder": 5
}

client.ticket_prices.create_ticket_price(ticket_payload)

Update Ticket Price

client.ticket_prices.update_ticket_price(
    price_id="f47ac10b-58cc-4372-a567-0e02b2c3d479",
    data={"Price": 1800}
)

Disable / Enable Ticket Tiers

Manage the active sales status of ticket tiers:

# Terminate sales for a tier
client.ticket_prices.disable_ticket_price("f47ac10b-58cc-4372-a567-0e02b2c3d479")

# Re-enable sales for a tier
client.ticket_prices.enable_ticket_price("f47ac10b-58cc-4372-a567-0e02b2c3d479")

List Active Ticket Prices

Retrieve active ticket prices bound to a specific event:

active_tickets = client.ticket_prices.list_active_ticket_prices_for_event("a1b2c3d4-e5f6-7890-abcd-ef1234567890")

Robust Error Handling

The SDK raises standard LittleEventsAPIError whenever the Little Africa API responds with a non-2xx status code. This preserves the upstream message and state details:

from littleevents import LittleEventsClient, LittleEventsAPIError

client = LittleEventsClient(api_key="token")

try:
    # Trigger an intentional error (e.g. invalid dimensions)
    client.events.create_event({
        "EventName": "Gala",
        "ImageUrl": "https://example.com/invalid-image.jpg" # Not 500x500 px
        # ... other missing required fields
    })
except LittleEventsAPIError as e:
    print(f"API Error Occurred! Status Code: {e.status_code}")
    print(f"Server Message: {e.message}")
    print(f"Full JSON Payload: {e.response_data}")

License

This project is licensed under the MIT License.

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

littleevents-0.1.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

littleevents-0.1.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file littleevents-0.1.1.tar.gz.

File metadata

  • Download URL: littleevents-0.1.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for littleevents-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3779402e55cb3e7917ecbc1dc6aa9a3301a22373de40decee32e63cc80b9506c
MD5 23335cde163ff7826bf5632474e7ac0f
BLAKE2b-256 200bd041460a7669955ff9ab1eaf3988c82dec6017445a68cc5e0a6ce5bf4f0a

See more details on using hashes here.

File details

Details for the file littleevents-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: littleevents-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for littleevents-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 919b135e88426a499e6904603b2c3d7b04773b899e9908843034dfe5390b2f75
MD5 1b5bc74136e287447804cf8b3db0d44e
BLAKE2b-256 5f074ac81e71c83473a758e2ca637718d075f9489d2babda4e935d8bb803c7dd

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