A modern Python wrapper for the Spiget API, providing easy access to Spigot resources, authors, and categories.
pip install pyspigetfrom spiget import Spiget
# Initialize the client
api = Spiget(user_agent="MyApp/1.0.0")
# Get a resource
resource = api.get_resource(1234)
print(f"Resource name: {resource.name}")
# Search for resources
resources = api.search_resources("worldedit")
for resource in resources:
print(f"Found: {resource.name}")The main class for interacting with the Spiget API.
api = Spiget(user_agent="MyApp/1.0.0")Handles webhook-related operations for the Spiget API.
webhook_handler = WebhookHandler(api.session)All models inherit from BaseModel which provides basic dictionary to object conversion.
Represents a Spigot resource (plugin, mod, etc.)
Properties:
id: Resource IDname: Resource nametag: Resource tagcontributors: List of contributorslikes: Number of likesfile: ResourceFile objecttested_versions: List of tested Minecraft versionslinks: Dictionary of related linksrating: ResourceRating objectrelease_date: Release datetimeupdate_date: Last update datetimedownloads: Number of downloadsexternal: Whether the resource is externalicon: Icon objectpremium: Whether the resource is premiumprice: Resource price (if premium)currency: Price currencydescription: Resource descriptiondocumentation: Resource documentationsource_code_link: Link to source codedonation_link: Link to donation page
Represents a resource's downloadable file.
Properties:
type: File typesize: File sizesize_unit: Size uniturl: Download URLexternal_url: External download URL
Represents a specific version of a resource.
Properties:
id: Version IDuuid: Version UUIDname: Version namerelease_date: Release datetimedownloads: Number of downloadsrating: ResourceRating object
Represents an update post for a resource.
Properties:
id: Update IDresource: Resource IDtitle: Update titledescription: Update descriptiondate: Update datetimelikes: Number of likes
Represents a review for a resource.
Properties:
author: Author objectrating: ResourceRating objectmessage: Review messageresponse_message: Author's responseversion: Version revieweddate: Review datetime
Represents a resource author.
Properties:
id: Author IDname: Author nameicon: Icon object
Represents a resource category.
Properties:
id: Category IDname: Category name
# Get multiple resources
resources = api.get_resources(size=10, page=1, sort=None, fields=None)
# Get a single resource
resource = api.get_resource(resource_id=1234)
# Get resource versions
versions = api.get_resource_versions(resource_id=1234, size=10, page=1)
# Get specific version
version = api.get_resource_version(resource_id=1234, version_id="1.0.0")
# Get latest version
latest = api.get_resource_latest_version(resource_id=1234)
# Get resource updates
updates = api.get_resource_updates(resource_id=1234, size=10, page=1)
# Get resource reviews
reviews = api.get_resource_reviews(resource_id=1234, size=10, page=1)
# Get resource author
author = api.get_resource_author(resource_id=1234)# Get multiple authors
authors = api.get_authors(size=10, page=1)
# Get single author
author = api.get_author(author_id=1234)
# Get author's resources
resources = api.get_author_resources(author_id=1234, size=10, page=1)# Get all categories
categories = api.get_categories(size=10, page=1)
# Get single category
category = api.get_category(category_id=1234)
# Get category resources
resources = api.get_category_resources(category_id=1234, size=10, page=1)# Search resources
resources = api.search_resources(query="worldedit", field=None, size=10, page=1)
# Search authors
authors = api.search_authors(query="sk89q", field=None, size=10, page=1)# Get available webhook events
events = webhook_handler.get_webhook_events()
# Register a webhook
webhook = webhook_handler.register_webhook(
url="https://example.com/webhook",
events=["resource-update", "new-resource"]
)
# Get webhook status
status = webhook_handler.get_webhook_status(webhook_id="abc123")
# Delete webhook
webhook_handler.delete_webhook(webhook_id="abc123", secret="webhook_secret")The wrapper includes a custom SpigetError exception that is raised when API requests fail:
from spiget import Spiget, SpigetError
api = Spiget()
try:
resource = api.get_resource(99999999)
except SpigetError as e:
print(f"API error: {e}")This wrapper is built for the Spiget API created by the SpiGetOrg team.
MIT License - see LICENSE file for details