Skip to main content
specklepy is the Python SDK for Speckle, enabling you to interact with Speckle Server, send and receive geometry, and build custom integrations for the AEC industry.
New to Speckle SDKs? Start with the shared SDK introduction for platform concepts and how Python and .NET relate.
GitHub Repository
Compatible with Speckle Object Model v3

Quick Start

Get up and running in 5 minutes

Core Concepts

Understand the fundamentals

API Reference

Explore the complete API
📚 Complete API Documentation: For detailed, auto-generated API reference documentation, visit the specklepy API Documentation.

What is specklepy?

specklepy is a comprehensive Python library that provides:
  • Object-based data exchange - Send and receive geometry and BIM data without files
  • GraphQL API client - Full access to Speckle Server’s API
  • Extensible object model - Create custom objects that inherit from Base
  • Multiple transport options - Store data locally (SQLite), in-memory, or on Speckle Server
  • Geometry support - Rich geometric primitives (Point, Line, Mesh, Brep, etc.)
  • Structural analysis - Complete FEA/FEM object types
specklepy v3 requires Python 3.10+ and supports Windows, macOS, and Linux.

Key Features

Object-Based, Not File-Based

Forget about files. Speckle uses objects as the fundamental unit of data exchange.
Instead of files, Speckle stores sets of objects in Models. Models are contained within Projects. Projects are contained within Workspaces. Learn more about organising your data in Speckle in the User Guide.

Version Control for AEC Data

Every change creates a new version (commit), giving you full history and traceability.
The object_id here is of a Speckle object that has already been sent to the Speckle server. Sending will register it in the database, but visibility of it is within the scope of a version.
Objects not associated with a Model Version are considered as “Zombie objects” or “Orphans” other than keeping a record of object_ids they will be irretrievable.

Real-Time Collaboration

Subscribe to changes and get notified when new data arrives.
Subscriptions may not make sense if the script is not running continuously. Consider using a webhook or a scheduled task instead.

Common Use Cases

Custom Python backed web applications

Extract data from one application (e.g., Revit) and load it into another that may have a python scripting interface and no Speckle Connector.

Automated Workflows

Within Speckle Automation or your own automation pipelines that process AEC data, run analyses, or generate reports.

Custom Integrations

Connect Speckle to your internal tools, databases, applications with a python scripting environment, or third-party services.

Structural Analysis

Work with FEA/FEM models using the built-in structural object types.

Installation

Install specklepy using pip:
For detailed installation instructions, see the Installation Guide.

Quick Example

Here’s a complete example of sending geometry to Speckle:

Next Steps

Installation

Install specklepy and set up your environment

Authentication

Learn how to authenticate with Speckle Server

Quickstart

Build your first integration

Core Concepts

Understand how specklepy works

Getting Help

Community Forum

Ask questions and share knowledge

GitHub Issues

Report bugs and request features
Last modified on July 18, 2026