Initiate a profile distribution to a segment group, or to one or more virtual segments
on a device.
This API provides two separate interfaces on the same URL path. The parameter names
are different in each interface, so use the parameters that match the method you call.
- GET: Specify the profile and the target as query parameters. Use this method to distribute to a single target.
- POST: Specify the profile and the targets in an XML request body. Use this method to distribute to multiple targets, or to targets of different types, in a single request.
Definition
ipsProfileMgmt/distributeProfile
Method: GET or POST
GET query parameters
| Parameter | Type | Description |
| profileName | string | Required. Name of the profile to distribute. |
| profileVersion | string | Optional. Profile version to distribute. The latest version of the profile is used if this parameter is not specified. |
| segmentGroupName | string | Name of the segment group to distribute to. Specify either this parameter or both
deviceIpAddr and
segmentName. |
| deviceIpAddr | string | IP address of the target device. Must be specified with
segmentName. |
| segmentName | string | Name of the virtual segment on the device. Must be specified with
deviceIpAddr. |
| distribPriority | string | Optional. Distribution priority.
|
ImportantYou must identify a distribution target. If you specify neither
segmentGroupName nor the
deviceIpAddr and
segmentName pair, the request fails with an HTTP 404 error and the message
Unable to determine target segment.
|
GET examples
Distribute the latest version of a profile to a segment group:
curl -k --header "X-SMS-API-KEY: <string>" "https://<sms_server>/ipsProfileMgmt/distributeProfile?profileName=MyProfile& segmentGroupName=MySegmentGroup&distribPriority=high"
Distribute a specific version of a profile to a virtual segment on a device:
curl -k --header "X-SMS-API-KEY: <string>" "https://<sms_server>/ipsProfileMgmt/distributeProfile?profileName=MyProfile& profileVersion=1.2.3&deviceIpAddr=10.0.0.1&segmentName=Segment-A"
POST request body elements
Submit the request body as an XML file attachment using the
multipart/form-data content type.
| Element | Type | Description |
| profile/name | string | Name of the profile to distribute. Specify either
name or
id. |
| profile/id | string | Internal ID assigned to the profile. Specify either
name or
id. |
| profile/version | string | Profile version to distribute. |
| priority | string | Optional. Distribution priority.
|
| segmentGroup/name | string | Name of the segment group to distribute to. |
| segmentGroup/id | string | Internal ID assigned to the segment group. |
| device/id | string | Internal ID assigned to the device. |
| device/shortID | integer | Internal number assigned to the device. |
| device/name | string | Device name. |
| device/ipAddress | string | Device IP address. |
| device/virtualSegment | string | Virtual segment on the device, identified by
name or
id. Specify one element for each virtual segment you want to distribute to. |
| virtualSegment/id | string | Internal ID assigned to a virtual segment. Use this element to distribute to a virtual segment without specifying a device. A virtual segment specified this way can be identified only by ID. |
NoteIdentify a device by
name,
id,
shortID, or
ipAddress. If you specify more than one of these elements, the SMS uses the first one it finds.
|
POST example
Save the request body to a file, and then reference the file in the request:
<distribution> <profile name="MyProfile" version="1.2.3"/> <priority>high</priority> <segmentGroup> <name>MySegmentGroup</name> </segmentGroup> <device> <ipAddress><IP address></ipAddress> <virtualSegment> <name>Segment-A</name> </virtualSegment> </device> </distribution>
curl -k --header "X-SMS-API-KEY: <string>" -F "file=@</path/to/request.xml>" "https://<sms_server>/ipsProfileMgmt/distributeProfile"
POST request body schema
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="uuid"> <xs:restriction base="xs:string"> <xs:pattern value="<value>"/> </xs:restriction> </xs:simpleType> <xs:complexType name="idname"> <xs:choice> <xs:element name="id" type="uuid"/> <xs:element name="name" type="xs:string"/> </xs:choice> </xs:complexType> <xs:element name="distribution"> <xs:complexType> <xs:sequence> <xs:element name="profile" minOccurs="1"maxOccurs="1"> <xs:complexType> <xs:attribute name="id" type="uuid"/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="version" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="priority" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="high"/> <xs:enumeration value="low"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="segmentGroup" type="idname" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="virtualSegment" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="id" type="uuid"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="device" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element name="id" type="uuid"/> <xs:element name="shortID" type="xs:positiveInteger"/> <xs:element name="name" type="xs:string"/> <xs:element name="ipAddress" type="xs:string"/> </xs:choice> <xs:element name="virtualSegment" type="idname" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Response
The response returns the ID assigned to the distribution session, along with the initial
status of the session and of each target.
<distributions> <distribution id="<number>"> <profile name="MyProfile" id="<profile_id>" version="<number>"/> <target>segment group</target> <start-time>Apr 8, 2026, 12:30:00 AM</start-time> <status>Distributing</status> <distribution> <target>device</target> <status>Waiting</status> <device> <name>IPS-Device-1</name> <shortID>42</shortID> </device> </distribution> </distribution> </distributions>
ImportantSave the
id attribute of the
distribution element. This value identifies the distribution session, and you must specify it
to check the status of the distribution. See
Get distribution status.
|
If the SMS cannot resolve an individual target, the error is returned with that target
instead of the status:
<segmentGroup><status>Segment Group name not found: MySegmentGroup</status></segmentGroup> <device><status>Device IP Address not found: <IP address number></status></device>
