Overview
GraphQL subscriptions provide a way to receive real-time updates from the Speckle server. Unlike webhooks, which are HTTP-based and designed for server-to-server communication, subscriptions are ideal for client applications that need to stay synchronized with Speckle data in real-time.When to Use Subscriptions vs Webhooks:
- Subscriptions: Use for client applications (web apps, desktop apps) that need real-time UI updates. Subscriptions use WebSocket connections and require an active connection.
- Webhooks: Use for server-to-server integrations, CI/CD pipelines, and HTTP-based automation workflows. Webhooks send HTTP POST requests to your endpoint, making them ideal for serverless functions and webhook endpoints.
Available Subscriptions
The complete list of available subscriptions is documented in Apollo Studio: Apollo Studio - Subscriptions Common subscription types include:- Project Events:
projectUpdated,projectModelsUpdated,projectVersionsUpdated,projectCommentsUpdated,projectIssuesUpdated - Version Events:
projectVersionsUpdated,projectPendingVersionsUpdated - Automation Events:
projectAutomationsUpdated,projectTriggeredAutomationsStatusUpdated - Workspace & User Events:
workspaceUpdated,userProjectsUpdated
Using Subscriptions
Endpoint and Authentication
Subscriptions use WebSocket connections. The endpoint forapp.speckle.systems is:
Example
Most subscriptions accept anid parameter to filter events for a specific project:
userProjectsUpdated, don’t require parameters and will send updates for all projects the authenticated user has access to.