client.Version to list versions on a model, read referencedObject for Receive2, or create a version after Send2 so data appears in the Speckle UI.
Guide: Build your first model analysis tool loads the latest version · Full send/receive tour shows publish after send
After
SendPipeline (connectors only), the server creates the version asynchronously — do not call Version.Create on that path.Methods
Get
Task<Version> Get(string versionId, string projectId, CancellationToken cancellationToken = default)
Retrieves a version by id.
GetVersions
Task<ResourceCollection<Version>> GetVersions(string modelId, string projectId, int limit = 25, string? cursor = null, ModelVersionsFilter? filter = null, CancellationToken cancellationToken = default)
Lists versions of a model.
Create
Task<Version> Create(CreateVersionInput input, CancellationToken cancellationToken = default)
Creates a version pointing at an already-sent object.
CreateVersionInput(string objectId, string modelId, string projectId, string? message = null, string? sourceApplication = ".net", int? totalChildrenCount = null, IReadOnlyList<string>? parents = null).Update
Task<Version> Update(UpdateVersionInput input, CancellationToken cancellationToken = default)
Updates a version’s message.
MoveToModel
Task<string> MoveToModel(MoveVersionsInput input, CancellationToken cancellationToken = default)
Moves one or more versions to a different model. Returns the target model id.
MoveVersionsInput(string projectId, string targetModelName, IReadOnlyList<string> versionIds) — note targetModelName takes the destination model’s name, not its id.Deletes one or more versions.
Received
Task Received(MarkReceivedVersionInput input, CancellationToken cancellationToken = default)
Marks a version as received by the current application, for telemetry/analytics purposes.
Usage
Sending with
Send or Send2 does not create a version by itself — follow up with client.Version.Create to publish data to a model’s history and viewer. The SendPipeline path is different: after WaitForUpload, the server creates the version asynchronously — do not call Version.Create on that pathway.FAQ
What objectId do I pass to Create?
What objectId do I pass to Create?
For
Send and Send2, pass the id returned by the send operation — not a value from Base.GetId(), which is obsolete and may not match every send path. For SendPipeline, do not call Version.Create — the server creates the version after upload. See Publish large models (connectors).How do I receive the data behind a version?
How do I receive the data behind a version?
Call
client.Version.Get to read referencedObject, then IOperations.Receive2 with that id. See Build your first model analysis tool.Next Steps
Core concepts
Orphaned objects and version lifecycle
Build your first model analysis tool
Load latest version with Receive2
Operations API
Send and Send2 entry points