> ## Documentation Index
> Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These docs contain multiple Speckle product experiences. For Speckle 2026.9, prefer /next/ pages for the topics and changes they cover. The navigation label Current does not override this version-specific precedence.
> Coverage under /next/ is incremental. Use Current documentation for unchanged topics and when a /next/ page says coverage is unavailable or explicitly refers you to Current. Do not infer a feature was removed from a missing page.
> Read the page-specific documentation status, applicability, affected guidance and replacement links in agent-only content. Impacted, changed and superseded apply only to the stated scope; they do not mean the entire feature is deprecated. Historical connector guides apply only to the legacy connector described.
> Match guidance to the customer's deployment version, model data format and connector. Respect plan, permission and compatibility restrictions. If an unknown version or data format changes the answer, ask a focused clarification; do not infer deployment version from the date alone.

# Middleware and orchestration

> Connect Speckle to enterprise systems as a middleware or orchestration layer between platforms.

**When to use:** Your integration sits between Speckle and enterprise systems (PLM, data lakes, scheduling, proprietary APIs) without owning a host-application UI.

Typical stack:

* [GraphQL API](/developers/api/graphql) and [REST](/developers/api/rest) where documented
* [specklepy](/developers/sdks/python/introduction) or [@speckle/objectsender](/developers/packages/objectsender) / [@speckle/objectloader2](/developers/packages/objectloader2) depending on runtime
* Idempotent, version-aware sync patterns

**Docs:** [Key concepts](/developers/key-concepts) · [Updating syncs](/developers/api/guides/updating-syncs) · [Webhooks](/developers/api/webhooks)

## Design notes

* Treat **versions** as immutable inputs; design jobs to be replayable from a known version id.
* Separate **read** paths (pull from Speckle) from **write** paths (push new versions) so failures are easier to reason about.
* Prefer explicit mapping tables for external system ids ↔ Speckle `applicationId` values.

## Related

* [Data & build order](/developers/connectivity/data-and-build)
* [Desktop host](/developers/connectivity/desktop-host) · [Cloud & automation](/developers/connectivity/cloud-automation) · [Hybrid](/developers/connectivity/hybrid)
* [Resources](/developers/connectivity/resources)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.