Newer Version Available
Migrate Platform Event Definitions with Metadata API
The CustomObject metadata type represents a platform event.
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>HighVolume</eventType>
5 <publishBehavior>PublishAfterCommit</publishBehavior>
6 <fields>
7 <fullName>Ink_Percentage__c</fullName>
8 <externalId>false</externalId>
9 <isFilteringDisabled>false</isFilteringDisabled>
10 <isNameField>false</isNameField>
11 <isSortingDisabled>false</isSortingDisabled>
12 <label>Ink Percentage</label>
13 <precision>18</precision>
14 <required>false</required>
15 <scale>2</scale>
16 <type>Number</type>
17 <unique>false</unique>
18 </fields>
19 <fields>
20 <fullName>Printer_Model__c</fullName>
21 <externalId>false</externalId>
22 <isFilteringDisabled>false</isFilteringDisabled>
23 <isNameField>false</isNameField>
24 <isSortingDisabled>false</isSortingDisabled>
25 <label>Printer Model</label>
26 <length>20</length>
27 <required>false</required>
28 <type>Text</type>
29 <unique>false</unique>
30 </fields>
31 <fields>
32 <fullName>Serial_Number__c</fullName>
33 <externalId>false</externalId>
34 <isFilteringDisabled>false</isFilteringDisabled>
35 <isNameField>false</isNameField>
36 <isSortingDisabled>false</isSortingDisabled>
37 <label>Serial Number</label>
38 <length>20</length>
39 <required>false</required>
40 <type>Text</type>
41 <unique>false</unique>
42 </fields>
43 <label>Low Ink</label>
44 <pluralLabel>Low Ink</pluralLabel>
45</CustomObject>The eventType field specifies the platform event volume. Only the HighVolume value is supported. The StandardVolume value is deprecated. If you create a platform event with the StandardVolume event type, you get an error.
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>52.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>52.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.