Implement powerful and modern search experiences with Elastic Cloud Hosted. Sign up to get instant access.
Five new Elastic Cloud Hosted APIs replace a painful pattern: fetching a full deployment plan, editing topology elements by hand, and resubmitting the whole thing just to change one tier or bump a version. Upgrade, scale, configure, tag and share snapshot repositories, each with a single targeted API call. The same validators apply, and every operation is available in the Elastic Cloud Console too. If you run more than a handful of deployments, this is the fleet operations surface you've been waiting for.
Here's what's new.
How to upgrade an Elastic Cloud Hosted deployment via API
Upgrade API: POST /deployments/{id}/upgrade
Upgrading an Elastic Stack version across all resources in a deployment used to require you to construct and submit a full deployment plan update. Now, you can upgrade every resource in a deployment (Elasticsearch, Kibana, and all other components) to a target Elastic Stack version with one API call.
This pays off most when you operate many deployments and want to roll a new Elastic Stack version across your fleet quickly.
How to resize Elasticsearch tiers in Elastic Cloud Hosted
Scale API: GET / PATCH /deployments/{id}/elasticsearch/{ref_id}/tiers
The tiers API lets you resize any Elasticsearch tier (hot, warm, cold, frozen, master, coordinating or ML) with a single PATCH request scoped only to the tiers you want to change.Send a body keyed by tier ID. Anything you don't mention stays exactly as it was, so you can change one tier in isolation without touching the others.
A few things to know:
- Valid tier IDs are
hot_content,warm,cold,frozen,master,coordinating, andml. Invalid keys are rejected with the list of tiers you can use. memory_sizeandzone_countare each optional per tier. Include only the one you want to change; the other stays untouched.- Dedicated master handling is automatic. Include
masterwithmemory_sizeandzone_countgreater than zero, and the endpoint flips thehot_contenttier out of the master-eligible role so your new dedicated masters take over. Includemasterwithmemory_sizeset to zero, and thehot_contenttier resumes acting as master-eligible. No separate flag to manage. - Same validation as the full plan API. The modified plan runs through the existing validators, so size-vs-instance-configuration mismatches, zone-count limits, and topology rules are enforced consistently.
For teams automating tier-level scaling based on ingest load, rebalancing zones before a maintenance window, or promoting a deployment to dedicated masters as it grows, this collapses what used to be a multistep plan edit into a single targeted request.
How to update elasticsearch.yml settings in Elastic Cloud Hosted
User Settings API: GET and PUT /deployments/{id}/{resource_kind}/{ref_id}/user_settings
User-defined settings on a running deployment (elasticsearch.yml-style overrides, Kibana settings, APM config) now have their own endpoints. Read or update them directly with a focused JSON request, scoped to a single resource.
The endpoints cover Elasticsearch, Kibana, Elastic APM, App Search, Enterprise Search, and Integrations Server. Same endpoint shape across all of them; only the {resource_kind} path segment changes.
Read the current settings for a resource:
Update them with a JSON body containing only the keys you want set:
A few things to know:
- JSON in, JSON out. A JSON contract that's easy to template, diff, and check into source control.
- Existing YAML is auto-migrated. Any tier-level user settings you currently have in YAML are converted to JSON the first time you
PUT, so existing deployments work without a manual rewrite or a one-time migration step. - Allowlist and denylist rules still apply. Settings the platform doesn't permit are rejected with the same validation the full plan API runs.
- Asynchronous. The action is acknowledged immediately and applied in the background, consistent with the other targeted endpoints in this release.
- Non-breaking. The full
PUT /deployments/{id}endpoint continues to work; this is an additive surface, not a replacement.
For teams that tune settings as part of a release, sweep a configuration change across a fleet, or want to manage cluster overrides as code, this is a single targeted PUT per deployment.
How to manage deployment tags in Elastic Cloud Hosted
Tags API: GET and PUT /deployments/{id}/tags
Deployment tags attach metadata (environment, owner, cost center, application) to deployments for filtering, reporting, and policy. The Tags API gives you a GET for the current tags and a PUT to replace them, both in one targeted call.
PUT replaces all tags on the deployment. Validation enforces up to 64 tags per deployment, keys up to 32 characters, and values up to 128 characters, with explicit 400 errors on violations. Authorization follows the same model as the deployment update endpoint.
How to link snapshot repositories across Elastic Cloud Hosted deployments
Snapshot repository APIs: Full CRUD at /deployments/{id}/elasticsearch/{ref_id}/snapshot/repository, plus a new Elastic Cloud console workflow
A common operational pattern in ECH is needing one deployment to access snapshots from another: migration validation, populating a staging environment, or selectively restoring one tenant's indices across a fleet. Snapshot repository linking lets you do this without copying full snapshot data into a new deployment.
The capability creates a link between a source deployment's managed snapshot repository and a target deployment. The target can browse the source's snapshots and restore only what it actually needs; nothing is copied at link time. Cross-bucket credentials and the repository are wired up for you, given your user has an admin role over both deployments.
This works specifically and only for Elastic Cloud managed snapshot repositories, whose credentials are managed by Elastic Cloud.
You can manage these links in two ways: from the Elastic Cloud console UI for ad hoc, point-and-click work, or via the API for automation and infrastructure-as-code workflows.
Link snapshot repositories from the Elastic Cloud console
For one-off restore drills, staging refreshes, or anytime you'd rather not script it, the Elastic Cloud console now provides a guided flow to link a source deployment's snapshot repository into a target deployment. Open the target deployment, go to the snapshot repository management screen, pick the source deployment from the list of deployments you have access to, and confirm. The console handles credentials and registration behind the scenes. No JSON, no keystore wrangling.

Once the link is in place, the same screen lists all linked deployments:

Removing a link is equally direct: Pick the linked repository, and unlink it. The source deployment is unaffected; only the read-only link from the target is torn down.
Manage repositories linking via the API
The snapshot repository linking operations (create, list, delete) are also available as API endpoints for automation and infrastructure-as-code workflows.
Create a link
The endpoint is idempotent. A retry after a partial failure picks up where the previous attempt left off, so you don't end up with half-configured links. The work runs asynchronously: You get an immediate acknowledgment, and the Elastic Cloud control plane handles the rest (fetching the source repository configuration, injecting credentials into the target cluster's keystore, and registering the read-only repository in Elasticsearch). The linking proceeds, provided the caller has the right permissions on both deployments.
List linked snapshot repositories
Each entry in the response includes a repository_name field with the actual name of the repository as registered in Elasticsearch (for example, _clone_abcd1234). You don't need to derive it from internal ID conventions; take the name straight from the response, and use it anywhere you'd reference a repository in the Elasticsearch snapshot and restore APIs.
Remove a link
DELETE takes the repository_name directly (the same value returned from GET above). That keeps the API symmetric and avoids looking up the source deployment by ID when you're tearing a link down.
A typical lifecycle:
This is particularly useful for multi-environment workflows where a staging deployment reads from production snapshots, tenants-per-cluster setups that need selective restores, or multitenanted restore processes that require a specific index restore.
Choosing instance configurations per tier in Elastic Cloud Hosted
Instance configuration customization: Elastic Cloud console UI
Elastic Cloud Hosted now lets you pick an instance configuration per data tier (hot, warm, cold, frozen) directly from the Elastic Cloud Console.
Match deployment hardware to a specific workload by picking an instance configuration per data tier (hot, warm, cold, frozen):
- Navigate to your deployment's overview page, and click Edit on the hardware profile.
- In the hardware profile flyout, select the instance configuration that best fits each data tier's workload.
- Review the changes, and click Update. A confirmation dialog shows exactly what will change before you apply.

Whether you need more storage density on your warm tier, higher compute on hot for search-intensive workloads, or want to move to a newer machine type in your region, you can now make that change from the console instead of crafting API requests. If your selection aligns with an existing hardware profile, that profile is automatically applied. Otherwise, the deployment is labeled custom, and any combination supported by your region is allowed.
The API continues to support instance configuration changes for both data tiers and stateless resources (Kibana, machine learning [ML] nodes, master nodes) for automation use cases.
Full documentation for instance configuration customization is available in the Elastic Docs.
Elastic Cloud Hosted API reference: upgrade, scale, configure, tag, snapshot
These endpoints, plus the new Elastic Cloud console workflows, give ECH a verb-shaped surface for fleet operations: upgrade, scale, set, tag, share, customize. One call per operation, the same validators as the full deployment plan, available from API and Terraform. That's what makes fleet-scale automation practical.
| API | Endpoint | What it does |
|---|---|---|
| Upgrade | POST /deployments/{id}/upgrade | Upgrades all resources to a target Elastic Stack version |
| Tiers | PATCH /deployments/{id}/elasticsearch/{ref_id}/tiers | Resizes one or more tiers without touching others |
| User settings | PUT /deployments/{id}/{resource_kind}/{ref_id}/user_settings | Reads/updates elasticsearch.yml and Kibana settings |
| Tags | PUT /deployments/{id}/tags | Reads/replaces deployment tags |
| Snapshot repository | POST/GET/DELETE /deployments/{id}/elasticsearch/{ref_id}/snapshot/repository | Links, lists, and removes snapshot repository links |
Get started:
- Already on Elastic Cloud Hosted? Generate an API key from your Elastic Cloud account page, and try the examples above. Full reference is in the Elastic Cloud API documentation.
- Prefer infrastructure as code? The Elastic Cloud Terraform provider wraps these APIs for declarative deployment management.
- New to Elastic Cloud? Start a free trial, and deploy your first cluster in minutes.
常见问题
How do I upgrade an Elastic Cloud Hosted deployment to a new Elastic Stack version?
Use POST /deployments/{id}/upgrade with a target_version field in the request body. This upgrades all resources in the deployment (Elasticsearch, Kibana and other components) in a single API call, without constructing a full deployment plan.
Can I resize one Elasticsearch tier without changing others in Elastic Cloud Hosted?
Yes. The PATCH /deployments/{id}/elasticsearch/{ref_id}/tiers endpoint accepts a body keyed by tier ID. Only the tiers you include are modified; all other tiers remain unchanged. Valid tier IDs are hot_content, warm, cold, frozen, master, coordinating, and ml.
How do I update elasticsearch.yml settings on a running Elastic Cloud Hosted deployment?
Use PUT /deployments/{id}/elasticsearch/{ref_id}/user_settings with a JSON body containing only the keys you want to set. Existing settings not included in the body are preserved. Any YAML settings currently on the deployment are automatically migrated to JSON on the first PUT.
How do I restore indices from one Elastic Cloud Hosted deployment into another?
Use the snapshot repository linking API: POST /deployments/{target_id}/elasticsearch/{ref_id}/snapshot/repository with the source deployment ID. This creates a read-only link to the source deployment's managed snapshot repository. The target can then browse and selectively restore snapshots without copying snapshot data at link time.
What are the limits on deployment tags in Elastic Cloud Hosted?
Each deployment supports up to 64 tags. Tag keys can be up to 32 characters and values up to 128 characters. The Tags API (GET and PUT /deployments/{id}/tags) returns an explicit 400 error if any limit is exceeded.
Do the new Elastic Cloud Hosted targeted APIs bypass deployment plan validation?
No. All five new endpoints run through the same validators as the full PUT /deployments/{id} deployment plan API. Size-to-instance-configuration mismatches, zone-count limits, and topology rules are enforced consistently regardless of which endpoint you use.
Can I manage Elastic Cloud Hosted deployments with Terraform using these new APIs?
Yes. The Elastic Cloud Terraform provider wraps these APIs for declarative deployment management, including upgrade, tier scaling, user settings, tags and snapshot repository linking. The targeted endpoints are additive; existing Terraform configurations using the full deployment plan endpoint continue to work.




