Skip to main content
Speckle provides SDKs — libraries that let you authenticate with Speckle Server, send and receive AEC data, and build integrations in the language that fits your project. Each SDK implements the same platform: projects, models, versions, objects, and the GraphQL API. The APIs differ; the concepts transfer.
Compatible with Speckle Object Model v3. Platform structure is documented in Data Schema; language-specific setup lives under Python and .NET.

What are the Speckle SDKs?

The SDKs are how developers talk to Speckle outside the web app and desktop connectors. They let you:
  • Authenticate with Speckle Server
  • Create and query projects, models, and versions
  • Send and receive object graphs (geometry, BIM data, custom payloads)
  • Traverse, filter, and process data in code
specklepy (Python) and Speckle.Sdk (.NET) are the production SDKs documented today. speckle.js (TypeScript) is in development — see speckle.js. Each SDK follows its language ecosystem (packaging, patterns, tooling). Platform behaviour is shared; examples and onboarding are language-specific.

Choosing an SDK

Pick the SDK that matches where your code runs, not a feature checklist.
You’re building…Recommended SDK
Grasshopper C# automation, BIM QA scripts, Revit plugins.NET
Desktop connectors and host-app integrations.NET
Data engineering, notebooks, analytics (no C# host)Python
Computational design in Python ecosystemsPython
Both SDKs can call the same server, read the same projects, and work with the same object model. If your team already uses Python or C#, start there.

Common platform concepts

These ideas are the same in every SDK. Learn the platform once; apply it in whichever language you use.
ConceptWhat it isLearn more
AuthenticationHow your code proves identity to Speckle Server (PAT, OAuth, stored accounts)Authenticating with Speckle
ProjectsTop-level containers for related work on a serverProjects, Models, and Versions
ModelsBranches within a project (for example structural, MEP, main)Projects, Models, and Versions
VersionsImmutable snapshots of a model, each referencing a sent object graphProjects, Models, and Versions
ObjectsThe unit of data exchange — geometry, properties, nested graphsData Schema overview · Object schema
GraphQLThe API surface the SDKs call on Speckle ServerGraphQL API reference
TransportsHow serialized objects move to storage (server, local cache, in-memory)Python: Transports · .NET: Load and publish model data

Learning paths

Python (specklepy)

Introduction

specklepy overview and repository

Installation

Install with pip

Quickstart

First send and receive workflow

Core Concepts

Projects, objects, traversal

Guides

Task-oriented recipes

API Reference

Client, operations, resources

.NET (Speckle.Sdk)

Build your first model analysis tool

Load, traverse, export CSV — recommended start

Installation

Install with NuGet

Automate with scripts

Shortest path for scripts and Grasshopper C#

Full send/receive tour

Optional deep dive — Send, Receive, and transports

Core concepts

Projects, objects, send paths

Guides

Task-oriented recipes

API reference

Method lookup after you have a working script

One platform, multiple SDKs

Speckle is one platform. Each SDK embraces the conventions of its language — import-and-go in Python, a one-time bootstrap in .NET for scripts — while exposing the same server resources and object model. Platform concepts (projects, versions, objects, proxies, display values) transfer between SDKs. Code samples, bootstrap patterns, and API shapes stay language-specific. When a new SDK ships, it extends this shared model; you do not relearn what Speckle is.

FAQ

No. Read this page for orientation, then follow one learning path — Python or .NET — for installation, authentication, and examples.
Data Schema is language-agnostic. SDK Concepts pages explain how each language maps onto it.
Yes. Both can target the same Speckle Server and projects. Choose the SDK per component (for example Python for analytics, .NET for a Revit connector).
Last modified on July 10, 2026