Skip to main content

Goal

Pick the right SpeckleSharp API for loading model data from Speckle Server and publishing results back.

What you will learn

When to use Receive2/Send2 (recommended for scripts), Send/Receive with transports, or SendPipeline (connectors only).

When to use this

Before reading Operations method signatures — or when you are unsure which send/receive path fits your workflow. For AEC automation scripts, notebooks, and Grasshopper C#: use Receive2/Send2 (Path C) after the one-time bootstrap. No transport factory required. Avoid SendPipeline unless you are building a desktop connector that uploads an entire host-application model.

The paths at a glance

Path naming is misleading: Send2/Receive2 are the newer, recommended server-facing implementation, not a fallback.

Path A: Serialize only

Example
Use when you need raw JSON — for example, previewing a Grasshopper graph locally. For server work, use Path C.

Path B: Send / Receive with a transport

The classic path used in the Full send/receive tour:
Example
Swap ServerTransport for MemoryTransport or SQLiteTransport for local-only workflows. The simplest path for most AEC automation scripts — direct URL, project id, and token:
Example
The streamId parameter name in these signatures refers to the project id.

Path D: SerializeNew

Experimental — avoid for production workflows.

Path E: SendPipeline (connectors only)

Avoid this unless you are building a connector. For uploading large host-application models, connectors use SendPipeline and client.Ingestion:
Example
See Publish large models (connectors). Do not call Version.Create on this pathway.

Decision guide

Use Path CReceive2 after Build your first model analysis tool.
Use Path C (Send2/Receive2) — see Automate with scripts.
Use Path BFull send/receive tour.

Next steps

Build your first model analysis tool

Load and analyse with Receive2

Send analysis results back

Publish with Send2

Operations API

Full method signatures
Last modified on July 18, 2026