Migrate Cloud Graphs to Self-Hosted
Migrate your graph from cloud-hosted to self-hosted
Serverless plans end on February 1, 2026, and Dedicated plans end on March 15, 2026. After these dates, cloud routers are no longer available.
If you are on a Serverless or Dedicated plan, migrate your graphs to self-hosted. After migrating your graphs, move your organization to a supported plan.
During the migration window, your cloud router continues to receive traffic, schema updates, and configuration updates. The migration window ends on February 1, 2026 for Serverless and March 15, 2026 for Dedicated.
This guide provides step-by-step instructions to migrate graphs on Serverless or Dedicated plans to self-hosted graphs on a supported plan.
Export your cloud router configuration.
Change your graph's hosting mode to self-hosted.
Deploy a self-hosted router.
Validate and shift traffic to your self-hosted endpoint.
After you migrate all graphs to self-hosted, move your organization to a supported plan.
Steps to migrate
Export your cloud router configuration
You'll use your router configuration in a later step when you deploy your self-hosted router. You can export your router configuration with Studio or the Rover CLI.
Using Studio
In Studio, navigate to your graph's Cloud Router page and find the Router configuration YAML section to copy your router configuration.
Save the configuration to a router.yaml file on your local machine.
If you can't access the Cloud Router page (for example, if you have already changed your graph's hosting mode), use the Rover CLI to export the configuration.
Using the Rover CLI
Use the cloud config fetch command to download your router configuration.
Replace the
<GRAPH_REF>placeholder in the following command with your own graph ref to download the router configuration YAML to a localrouter.yamlfile.Bashrover cloud config fetch <GRAPH_REF> > router.yaml
Change the graph's hosting mode to self-hosted
In Studio, click the Start the migration process button at the top of the graph variant's page to change the graph's hosting mode to self-hosted.
Click Confirm to begin the process of migrating your graph to self-hosted.
When the process is successful, you'll see a message confirming that your graph has been switched to self-hosted mode.
During the migration window, the cloud router remains running and continues to receive schema and configuration updates.
Deploy a self-hosted router
Deploy a self‑hosted router using your preferred platform.
For Kubernetes deployments, use the Apollo GraphOS Operator.
For other platforms, see the following guides:
Use the router configuration YAML you exported in the first step to configure your self-hosted router.
Validate and shift traffic
Validate the new endpoint, then gradually shift production traffic from the cloud router to your self-hosted endpoint.
Move your organization to a supported plan
Navigate to Organization > Billing and Usage.
Click the Change plan button to move your organization to a supported plan. See the Plan Selection Troubleshooting page for more information.
Frequently asked questions
What happens to your running cloud routers when you change your graph's hosting mode?
Changing a graph's hosting mode doesn't affect running cloud routers. Cloud routers continue to receive traffic, emit telemetry, and receive schema and configuration updates until a shutdown event occurs for Serverless routers or the migration period ends on February 1, 2026 for Serverless and March 15, 2026 for Dedicated.
How do you retrieve and update the configuration of your running cloud routers after converting to self-hosted mode?
Use the cloud config fetch command to fetch your cloud router configuration. Install and configure the Rover CLI to run this command.
rover cloud config fetch <GRAPH_REF> > router.yamlUse the cloud config update command to update your running cloud routers' configuration. For example, to apply changes from a local router.yaml:
rover cloud config update --file router.yaml <GRAPH_REF>