Speckle 1

While some are closing shop, we're just getting started 🙌 Today marks the release of the 1.0.0-beta version of the Speckle API & Server.

Written by Dimitrie Stefanescu on


While some are closing shop, we're just getting started 🙌 Today marks the release of the 1.0.0-beta version of the Speckle API & Server. It includes, besides easter eggs and bugs, a mature & enriched API that lays the groundwork for future functionality to be grown, specifically in regards with comments, history/versioning and project management.

Going forward, all 1.*.* releases will be backwards compatible.

The Admin App


A long since needed ecosystem piece, current features are the following:


The Viewer App


Thanks to the hard steady work of @mswaidan's commits squeezed in between milling the world's best vinyl cabinets, the viewer got revamped:


The Server & API


The API has been simplified and cleaned up. Before we had ±36 endpoints dealing with essentially three models (accounts, streams and objects). Now we have ±34 endpoints dealing with 5 models (accounts, streams, objects, comments and projects). The docs have been updated.

Server side api versioning is now also in place, which means that going forward, different api versions can be concurrently served. So you're looking at api/v1 and api/v0, for example.

I've eliminated the silly payloads for POST/PUT endpoints and opted for direct provision of a ${object} in the request body. Furthermore, responses have been simplified and unified: any server response inherits from a ResponseBase, and results will be either in the resource or resources key, depending on the request (get one/get multiple).


The biggest changes here are the introduction of a simple permissions system that can be controlled on streams via the admin app.

Permissions are not limited to streams though, they have been extended to all models besides users. Furthermore, you can explicitly turn on "anonymous comments" for easier input gathering without forcing outside users to register.

Resources can be marked as "private", in which case only the persons that have access can get to. You can explicitly share a stream with someone, in which case this stream will show up in that user's stream list too. You can grant read or write access.


Streams, objects, projects and comments themselves can now receive comments. The comments model has been rethought and some scaffolding is there for the future, namely:



Projects are essentially a collection of streams and users (and, uh, other projects - yes, you can have sub-projects!). They should help organise your workflow easier in the future once they are exposed through a ui in the admin app and various plugins.

They can receive comments, which should allow you to create multiple stream-wide issues and generally have wider discussions.


SpeckleCore and all its dependents (namely SpeckleRhino and SpeckleView) have been updated, and the new api methods and models have been generated and incorporated. Do report any bugs or inconsistencies you might find!

Migration & Testing

I've deployed hestia.speckle.works as a test server for all of you to use. To start playing:

  1. Download the latest version of the Rhino & Gh plugins (breaks backwards compatibility!)
  2. Create an account using https://hestia.speckle.works/api/v1 as the server url.
  3. You're good to go. The admin app is at /admin and the viewer at /view.


⚠️ s003.speckle.works is still operational with the pre 1.0.0 update. Do not update your plugins if you want to maintain using s003!

Please be aware though that s003 will be retired at one point. [update] s003 has been retired now.


This would have been impossible without the support and hard work of @mswaidan, @luis, @will, the brave beta-testers at HENN & that nice company that makes Rhino.

Feeback or comments? We'd love to hear from you in our community forum!


The world runs on 3D: Speckle enables you to deliver better designs, together.

© Aec Systems Ltd. Speckle and Speckle Systems are trademarks of AEC Systems Ltd., registered in the UK and in other countries. Company No. 12403784.

Terms of service | Privacy policy