---
schema_version: "1"
id: 39d4ad3b41d302ced3f5307a614913f7a6ca5aae9756d9f6e0965d2653ad1990
title: REST Resources for Metadata
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_rest_intro.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_rest_intro.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: e17636c29e2fd0f6da5a05f7078c813c96362385f2adf39e827391f1192a0420
description: Use the REST resource deployRequest to move metadata (XML files) between a Salesforce organization and a local file system.
---
# REST Resources for Metadata

Use the REST resource deployRequest to move metadata (XML files) between a Salesforce organization and a local file system.

Data in XML files is formatted using the English (United States) locale. This approach ensures that fields that depend on locale, such as date fields, are interpreted consistently during data migrations between organizations using different languages. Organizations can support multiple languages for presentation to their users.

Metadata deployment is used primarily for the following development scenarios.

- Development of a custom application (or customization) in a sandbox organization. After development and testing are completed, the application or customization is then deployed into a production organization using Metadata API.
- Team development of an application in a Developer Edition organization. After development and testing are completed, you can then distribute the application via Lightning Platform AppExchange.

**Working with the Zip File**

The deployRequest resource is used to deploy 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.

A component is an instance of a metadata type. For example, CustomObject is a metadata type for custom objects, and the MyCustomObject\_\_c component is an instance of a custom object.

The files that are deployed in a .zip file can be unpackaged components that reside in your organization (such as standard objects). The files can also be packaged components that reside within named packages.

![Note](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note.png)

#### Note

You can deploy up to 10,000 files at once. (In API version 43.0 and later, AppExchange packages can contain up to 12,500 files.) The .zip file size limit that applies to SOAP calls doesn’t apply to the deployRequest REST resource. However, the 400-MB limit for components that are uncompressed into an unzipped folder after upload applies to both SOAP and REST deployments.

Every .zip file contains a project manifest, a file that’s named package.xml, and a set of directories that contain the components. The manifest file defines the components that you’re trying to retrieve or deploy and the API version used for the deployment or retrieval.

The following is a sample package.xml file.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types\>
        <members\>MyCustomObject\_\_c</members\>
        <name\>CustomObject</name\>
    </types\>
    <types\>
        <members\>\*</members\>
        <name\>CustomTab</name\>
    </types\>
    <types\>
        <members\>Standard</members\>
        <name\>Profile</name\>
    </types\>
    <version\>68.0</version\>
</Package\>

The following elements can be defined in package.xml.

- <fullName\> contains the name of the server-side package. If no <fullName\> exists, it’s a client-side unpackaged package.
- <types\> contains the name of the metadata type (for example, CustomObject) and the named members (for example, myCustomObject\_\_c) to be deployed. You can add multiple <types\> elements in a manifest file.
- <members\> contains the fullName of the component, such as MyCustomObject\_\_c. For many metadata types, you can replace the value in members with the wildcard character \* (asterisk) instead of listing each member separately. For a list of metadata types that allow the wildcard character, see the “Allows Wildcard (\*)?” column in [Metadata Types](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_types_list.htm "Metadata API enables you to access some entities and feature settings that you can customize in the user interface.").
    
    ![Note](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note.png)
    
    #### Note
    
    You specify Security in the <members\> element and Settings in the name element when retrieving the SecuritySettings component type.
- <name\> contains the metadata type, for example CustomObject or Profile. There’s one name defined for each metadata type in the directory. Any metadata type that extends [Metadata](https://developer.salesforce.com/docs/atlas.en-us.264.0.api_meta.meta/api_meta/metadata.htm) is a valid value. The name that’s entered must match a metadata type that’s defined in the Metadata API WSDL. See [Metadata Types](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_types_list.htm "Metadata API enables you to access some entities and feature settings that you can customize in the user interface.") for a list.
- <version\> is the API version number that’s used when the .zip file is deployed or retrieved. Currently the valid value is 68.0.

For more sample package.xml manifest files that show you how to work with different subsets of metadata, see [Sample package.xml Manifest Files](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/manifest_samples.htm "This section includes sample package.xml manifest files that show you how to work with different subsets of metadata. A manifest file can include multiple <types> elements so you could combine the individual samples into one package.xml manifest file if you want to work with all the metadata in one batch.").

To delete components, see [Deleting Components from an Organization](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_deleting_files.htm "To delete components, perform a deployment with the deploy() call by using a destructive changes manifest file that lists the components to remove from your organization. You can perform a deployment that only deletes components, or a deployment that deletes and adds components. In API version 33.0 and later, you can specify components to delete before and after other components are added or updated. In earlier API versions, if deletions and additions are specified for the same deployment, the deploy() call performs the deletions first.").