---
schema_version: "1"
id: 95a95cb92532bebbc49b6df2e11ff7835671b07731ed7c931962d1aadbf7d0e7
title: Metadata API Developer Tools
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_developer_tools.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_developer_tools.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 1d129751f8a514d70a47c86048412aad7473415eebb3c549d358cefc4c6f9651
description: Use the Salesforce Extensions for Visual Studio Code on Salesforce CLI to access Metadata API commands. Salesforce CLI and the Salesforce Extensions for Visual Studio Code streamline the process of using Metadata API.
---
# Metadata API Developer Tools

Use the Salesforce Extensions for Visual Studio Code on Salesforce CLI to access Metadata API commands. Salesforce CLI and the Salesforce Extensions for Visual Studio Code streamline the process of using Metadata API.

The easiest way to access the functionality in Metadata API is to use the Salesforce Extensions for Visual Studio Code or Salesforce CLI. Both tools are built on top of Metadata API and use the standard tools to simplify working with Metadata API.

- The Salesforce Extensions for Visual Studio Code includes tools for developing on the Salesforce platform in the lightweight, extensible VS Code editor. These tools provide features for working with development orgs (scratch orgs, sandboxes, and DE orgs), Apex, Aura components, and Visualforce.
- Salesforce CLI is ideal if you use scripting or the command line for moving metadata between a local directory and a Salesforce org.

For more information about the Salesforce Extensions for Visual Studio Code or Salesforce CLI, see [Salesforce Tools and Toolkits](https://developer.salesforce.com/tools "HTML (New Window)").

If you prefer to build your own client applications, the underlying calls of Metadata API have been exposed for you to use directly. This guide gives you more information about working directly with Metadata API.

You can use the Metadata API to manage setup and customization information (metadata) in Salesforce. For example:

- Export customizations as XML metadata files. See [Working with the Zip File](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/file_based_zip_file.htm "The deploy() and retrieve() calls are used to deploy and retrieve a .zip file. Within the .zip file is a project manifest (package.xml) that lists what to retrieve or deploy, and one or more XML components that are organized into folders.") and [retrieve()](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_retrieve.htm "The retrieve() call retrieves XML file representations of components in an organization.").
- Migrate configuration changes between orgs. See [deploy()](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy.htm "Uses file representations of components to create, update, or delete those components in a Salesforce org.") and [retrieve()](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_retrieve.htm "The retrieve() call retrieves XML file representations of components in an organization.").
- Modify existing customizations using XML metadata files. See [deploy()](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy.htm "Uses file representations of components to create, update, or delete those components in a Salesforce org.") and [retrieve()](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_retrieve.htm "The retrieve() call retrieves XML file representations of components in an organization.").
- Manage customizations programmatically. See [CRUD-Based Metadata Development](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_calls_intro.htm "Use the CRUD-based metadata calls to create, update, or delete setup and configuration components for your organization or application. These configuration components include custom objects, custom fields, and other configuration metadata. The metadata calls mimic the behavior in the Salesforce user interface for creating, updating, or deleting components. Whatever rules apply there also apply to these calls.").

You can modify metadata in test orgs in Developer Edition or sandboxes, and then deploy tested changes to production orgs in Enterprise, Unlimited, or Performance Editions. You can also create scripts to populate a new org with your custom objects, custom fields, and other components.

#### See Also

- [Declarative (File-Based) Metadata API Calls](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/file_based.htm)