Newer Version Available
Migrate Platform Event Definitions with Metadata API
The CustomObject metadata type represents a platform event or a high-volume platform event (pilot).
Platform event names are appended with __e. The file that contains the platform event definition has the suffix .object. Platform events are stored in the objects folder.
Example
Here is a definition of a platform event with a number field and two text fields.
1<?xml version="1.0" encoding="UTF-8"?>
2<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
3 <deploymentStatus>Deployed</deploymentStatus>
4 <eventType>StandardVolume</eventType>
5 <fields>
6 <fullName>Ink_Percentage__c</fullName>
7 <externalId>false</externalId>
8 <isFilteringDisabled>false</isFilteringDisabled>
9 <isNameField>false</isNameField>
10 <isSortingDisabled>false</isSortingDisabled>
11 <label>Ink Percentage</label>
12 <precision>18</precision>
13 <required>false</required>
14 <scale>2</scale>
15 <type>Number</type>
16 <unique>false</unique>
17 </fields>
18 <fields>
19 <fullName>Printer_Model__c</fullName>
20 <externalId>false</externalId>
21 <isFilteringDisabled>false</isFilteringDisabled>
22 <isNameField>false</isNameField>
23 <isSortingDisabled>false</isSortingDisabled>
24 <label>Printer Model</label>
25 <length>20</length>
26 <required>false</required>
27 <type>Text</type>
28 <unique>false</unique>
29 </fields>
30 <fields>
31 <fullName>Serial_Number__c</fullName>
32 <externalId>false</externalId>
33 <isFilteringDisabled>false</isFilteringDisabled>
34 <isNameField>false</isNameField>
35 <isSortingDisabled>false</isSortingDisabled>
36 <label>Serial Number</label>
37 <length>20</length>
38 <required>false</required>
39 <type>Text</type>
40 <unique>false</unique>
41 </fields>
42 <label>Low Ink</label>
43 <pluralLabel>Low Ink</pluralLabel>
44</CustomObject>The definition of a high-volume platform event is similar to that of a platform event. The only difference is the value of the eventType field, which is set to HighVolume.
1<eventType>HighVolume</eventType>This package.xml manifest file references the previous event definition. The name of the referenced event is Low_Ink__e.
1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3 <types>
4 <members>Low_Ink__e</members>
5 <name>CustomObject</name>
6 </types>
7 <version>42.0</version>
8</Package>Retrieve Platform Events
To retrieve all platform events, in addition to custom objects defined in your org, use the wildcard character (*) for the <members> element, as follows.
1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3 <types>
4 <members>*</members>
5 <name>CustomObject</name>
6 </types>
7 <version>42.0</version>
8</Package>To retrieve or deploy triggers associated to a platform event, use the ApexTrigger metadata type. For more information about how to use Metadata API and its types, see the Metadata API Developer Guide.