Duplicating Project Streams

I have a stream can I export its model and create new stream?

Yes, and yes, but only if you want to.

If your objective is to start a Project Stream with just the latest version of a model, then you can receive into memory that Version commit and write it to a new one.

We don’t yet expose a server-level function for you to do this at the database layer.

Suppose you want to duplicate a Project stream and all its history of Version commits, model branches comments, attachments, etc. This is equally possible but will be incredibly tedious and time-consuming.

It isn’t precisely what you have asked, but look at the example tutorial on federations: Federating Speckle Models. This is focused on merging models on the same stream. But the logic is adjacent to what you’d need to do to duplicate to another stream.