openapi: 3.2.0 info: title: Real-time Customer Profile Merge policies API description: "Use Real-time Customer Profile to drive coordinated, consistent and relevant experiences for your customers no matter where or when they interact with your brand. Profile provides a holistic view of each individual customer that combines data from multiple channels, including online, offline, CRM, and third-party data.\n- **Related documentation**:\n - [Real-time Customer Profile documentation](http://www.adobe.com/go/profile-overview-en)\n - [Profile API developer guide](http://www.adobe.com/go/profile-developer-guide-en)\n\n- **Visualize API calls with Postman (a free, third-party software)**:\n - [Real-time Customer Profile API Postman collection on GitHub](https://github.com/adobe/experience-platform-postman-samples/blob/master/apis/experience-platform/Real-time%20Customer%20Profile%20API.postman_collection.json)\n - [Video guide for creating the Postman environment](https://video.tv.adobe.com/v/28832)\n - [Steps for importing environments and collections in Postman](https://learning.getpostman.com/docs/postman/collection_runs/using_environments_in_collection_runs/)\n\n- **API paths**:\n - PLATFORM Gateway URL: https://platform.adobe.io/\n - Base path for this API: /data/core/ups\n - Base path for the computed attributes API: /data/core/ca\n - Example of a complete path: https://platform.adobe.io/data/core/ups/config/mergePolicies\n\n- **Required headers**:\n - All calls require the headers `Authorization`, `x-gw-ims-org-id`, and `x-api-key`. For more information on how to obtain these values, see the [authentication tutorial](http://www.adobe.com/go/platform-api-authentication-en).\n - All resources in Experience Platform are isolated to specific virtual sandboxes. All requests to Platform APIs require the header `x-sandbox-name` whose value is the all-lowercase name of the sandbox the operation will take place in (for example, \"prod\"). See the [sandboxes overview](https://adobe.com/go/sandbox-overview-en) for more information.\n - All requests with a payload in the request body (such as POST, PUT, and PATCH calls) must include the header `Content-Type`. Accepted values specific to each call are provided in the call parameters.\n\n- **API error handling**:\n - Refer to the Experience Platform API troubleshooting guide for [FAQs](https://experienceleague.adobe.com/docs/experience-platform/landing/troubleshooting.html#faq), [API status codes](https://experienceleague.adobe.com/docs/experience-platform/landing/troubleshooting.html#api-status-codes), and [request header errors](https://experienceleague.adobe.com/docs/experience-platform/landing/troubleshooting.html#request-header-errors).\n " version: '1.0' servers: - url: https://{environment}.adobe.io/data/core variables: environment: default: platform enum: - platform - platform-stage tags: - name: Merge policies description: Merge policies are the rules that Platform uses to determine how data will be prioritized and what data will be combined to create an individual customer profile. For more information on using this set of endpoints, please read the [merge policies endpoint guide](https://experienceleague.adobe.com/docs/experience-platform/profile/merge-policies/merge-policies.html). paths: /ups/config/mergePolicies: get: tags: - Merge policies summary: List merge policies operationId: getMany parameters: - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: x-request-id in: header description: Request ID schema: type: string example: q0gf6caRuRtX2s5khaN1Zgd1OoEXcPJA - name: start in: query description: Page offset - As per created time of resource schema: type: string example: 2 - name: limit in: query description: Page Size schema: type: integer example: 10 - name: orderby in: query description: The model attribute which will be using for ordering schema: type: string example: value - name: schema.name in: query description: Schema class ID schema: type: string example: _xdm.context.profile - name: default in: query description: default flag schema: type: boolean example: true responses: 200: x-summary: Success description: List of merge policies returned content: application/json: schema: $ref: '#/components/schemas/MergePoliciesResponse' 500: x-summary: Internal server error description: There was an internal server error. Try the request again in a few minutes, and contact Adobe Support if the problem persists. content: {} 503: x-summary: Service unavailable description: Service Unavailable content: {} post: tags: - Merge policies summary: Create a merge policy operationId: createMergePolicy parameters: - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: Content-Type in: header description: Type of content being sent in the body of the request. Should be 'application/json'. required: true schema: type: string - name: x-profile-instance-id in: header description: Profile Instance ID required: true schema: type: string example: ups - name: x-request-id in: header description: Request ID schema: type: string example: q0gf6caRuRtX2s5khaN1Zgd1OoEXcPJA requestBody: description: The merge policy object content: application/json: schema: $ref: '#/components/schemas/PostMergePolicy' required: true responses: 200: x-summary: Success description: Merge Policy successfully created content: application/json: schema: $ref: '#/components/schemas/MergePolicy' 400: x-summary: Bad request description: The post body is incomplete. Please double check your post body and try again. content: {} 403: x-summary: Missing access permissions description: You do not have access permissions for this endpoint. content: {} 429: x-summary: Rate limit description: The request rate for using this endpoint is too large. Please reduce the request rate and try again. content: {} '500': x-summary: Internal server error description: There was an internal server error. Try the request again in a few minutes, and contact Adobe Support if the problem persists. content: {} 503: x-summary: Service unavailable description: Service Unavailable content: {} x-codegen-request-body-name: body /ups/config/mergePolicies/{mergePolicyId}: get: tags: - Merge policies summary: Retrieve a merge policy operationId: retrieveMergePolicy parameters: - name: mergePolicyId in: path description: Merge policy ID. required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: x-request-id in: header description: Request ID schema: type: string example: q0gf6caRuRtX2s5khaN1Zgd1OoEXcPJA responses: 200: x-summary: Success description: MergePolicy successfully returned content: application/json: schema: $ref: '#/components/schemas/MergePolicy' '403': x-summary: Missing access permissions description: You do not have access permissions for this endpoint. content: {} 404: x-summary: Not found description: Merge policy not found content: {} 503: x-summary: Service unavailable description: Service Unavailable content: {} put: tags: - Merge policies summary: Update a merge policy operationId: updateMergePolicy parameters: - name: mergePolicyId in: path description: Merge policy ID. required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: x-profile-instance-id in: header description: Profile Instance ID required: true schema: type: string example: ups - name: x-request-id in: header description: Request ID schema: type: string example: q0gf6caRuRtX2s5khaN1Zgd1OoEXcPJA requestBody: description: merge policy object content: application/json: schema: $ref: '#/components/schemas/MergePolicy' required: true responses: 200: x-summary: Success description: Merge Policy successfully updated content: application/json: schema: $ref: '#/components/schemas/MergePolicy' 400: x-summary: Bad request description: The request is incomplete or malformed. content: {} '403': x-summary: Missing access permissions description: You do not have access permissions for this endpoint. content: {} 429: x-summary: Rate limit description: The request rate for using this endpoint is too large. Please reduce the request rate and try again. content: {} '500': x-summary: Internal server error description: There was an internal server error. Try the request again in a few minutes, and contact Adobe Support if the problem persists. content: {} 503: x-summary: Service unavailable description: Service Unavailable content: {} x-codegen-request-body-name: body delete: tags: - Merge policies summary: Delete a merge policy operationId: deleteMergePolicy parameters: - name: mergePolicyId in: path description: Merge policy ID. required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: x-request-id in: header description: Request ID schema: type: string example: q0gf6caRuRtX2s5khaN1Zgd1OoEXcPJA responses: 200: x-summary: Success description: Merge Policy deleted successfully content: {} '403': x-summary: Missing access permissions description: You do not have access permissions for this endpoint. content: {} 404: x-summary: Not found description: MergePolicy not found content: {} 503: x-summary: Service unavailable description: Service Unavailable content: {} patch: tags: - Merge policies summary: Update one or more attributes of a merge policy operationId: patchMergePolicy parameters: - name: mergePolicyId in: path description: Merge policy ID. required: true schema: type: string - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: x-profile-instance-id in: header description: Profile Instance ID required: true schema: type: string example: ups - name: x-request-id in: header description: Request ID schema: type: string example: q0gf6caRuRtX2s5khaN1Zgd1OoEXcPJA requestBody: description: A sample request body to update the merge policy. content: application/json: schema: type: array items: $ref: '#/components/schemas/PatchOperation' required: true responses: 200: x-summary: Success description: Merge Policy successfully updated content: application/json: schema: $ref: '#/components/schemas/MergePolicy' 400: x-summary: Bad request description: The post body is incomplete. Please double check your post body and try again. '403': x-summary: Missing access permissions description: You do not have access permissions for this endpoint. content: {} 429: x-summary: Rate limit description: The request rate for using this endpoint is too large. Please reduce the request rate and try again. content: {} '500': x-summary: Internal server error description: There was an internal server error. Try the request again in a few minutes, and contact Adobe Support if the problem persists. content: {} 503: x-summary: Service unavailable description: Service Unavailable content: {} x-codegen-request-body-name: body /ups/config/mergePolicies/bulk-get: post: tags: - Merge policies summary: Retrieve multiple merge policies using multiple merge policy IDs operationId: bulkGetMergePolicies parameters: - $ref: '#/components/parameters/authorization' - $ref: '#/components/parameters/x-api-key' - $ref: '#/components/parameters/x-gw-ims-org-id' - $ref: '#/components/parameters/x-sandbox-name' - name: Content-Type in: header description: Type of content being sent in the body of the request. Should be 'application/json'. required: true schema: type: string requestBody: description: An array of the merge policy IDs that you are trying to retrieve. required: true content: application/json: schema: type: object properties: ids: type: array items: type: object properties: id: type: string example: 10648288-cda5-11e8-a8d5-f2801f1b9fd1 example: ids: - id: 10648288-cda5-11e8-a8d5-f2801f1b9fd1 - id: 42d4a596-b1c6-46c0-994e-ca5ef1f85130 responses: 207: x-summary: Success description: The details of each merge policy are returned. The sample response has been truncated to show only the details for the first merge policy. content: application/json: schema: type: object properties: results: type: object properties: 10648288-cda5-11e8-a8d5-f2801f1b9fd1: type: object properties: id: type: string example: 10648288-cda5-11e8-a8d5-f2801f1b9fd1 name: type: string example: Sample merge policy 1 imsOrgId: type: string example: '{IMS_ORG_ID}' sandbox: type: object properties: sandboxId: type: string example: ff0f6870-c46d-11e9-8ca3-036939a64204 sandboxName: type: string example: prod type: type: string example: production default: type: boolean example: 'true' schema: type: object properties: name: type: string example: _xdm.context.profile version: type: integer example: 1 identityGraph: type: object properties: type: type: string example: none attributeMerge: type: object properties: type: type: string example: timestampOrdered isActiveOnEdge: type: boolean example: true default: type: boolean example: true updateEpoch: type: integer example: 1552086578 42d4a596-b1c6-46c0-994e-ca5ef1f85130: type: object properties: id: type: string example: 42d4a596-b1c6-46c0-994e-ca5ef1f85130 name: type: string example: Sample merge policy 2 imsOrgId: type: string example: '{IMS_ORG_ID}' sandbox: type: object properties: sandboxId: type: string example: ff0f6870-c46d-11e9-8ca3-036939a64204 sandboxName: type: string example: prod type: type: string example: production default: type: boolean example: 'true' schema: type: object properties: name: type: string example: _xdm.context.profile version: type: integer example: 1 identityGraph: type: object properties: type: type: string example: pdg attributeMerge: type: object properties: type: type: string example: dataSetPrecedence order: type: array items: type: string example: - 5b76f86b85d0e00000be5c8b - 5b76f8d787a6af01e2ceda18 isActiveOnEdge: type: boolean example: false default: type: boolean example: false updateEpoch: type: integer example: 1576099719 x-codegen-request-body-name: body components: schemas: Page: required: - count type: object properties: count: type: number description: number of merge policies per page example: 100.0 next: type: string description: page offset example: K1JJRDpFaWc5QUwyZFgtMEpBQUFBQUFBQUFBPT0jUlQ6MSNUUkM6MiNGUEM6QWdFQUFBQVFBQWZBQUg0Ly9yL25PcmpmZndEZUR3QT0= IdentityGraph: required: - type type: object properties: type: type: string description: The identity graph type. This determines which related identities will be merged. example: pdg enum: - none - pdg description: The identity graph for the merge policy. MergePoliciesResponse: required: - _page - children type: object properties: _page: $ref: '#/components/schemas/Page' children: type: array items: $ref: '#/components/schemas/MergePolicy' PostMergePolicy: required: - attributeMerge - identityGraph - schema type: object properties: name: type: string description: The name of the merge policy you want to create. example: real-time-customer-profile-default schema: $ref: '#/components/schemas/SchemaClass' default: type: boolean example: true description: A boolean that specifies if the merge policy is the default for the schema. identityGraph: $ref: '#/components/schemas/IdentityGraph' attributeMerge: $ref: '#/components/schemas/AttributeMerge' isActiveOnEdge: type: boolean example: true description: A boolean that specifies if the merge policy will be active on edge. description: The request body when you want to create a merge policy. PatchOperation: required: - op - path - value type: object properties: op: type: string description: op example: add enum: - add path: type: string description: The path of the attribute need to be updated. Supported values include `/name`, `/identityGraph.type`, `/attributeMerge.type`, `/schema.name`, `/version`, `/default`, and `/idActiveOnEdge`. example: /identityGraph.type value: type: string description: The new value used to update the specified attribute example: pdg description: Patch operation AttributeMerge: required: - type type: object properties: type: type: string description: The type of attribute merge applied. Possible values include timestampOrdered and dataSetPrecedence. example: timestampOrdered enum: - timestampOrdered - dataSetPrecedence order: type: array items: type: string description: An object that describes which profile attributes to prioritize in case of conflicting profile attributes. SchemaClass: required: - name type: object properties: name: type: string description: The name of the XDM class that the schema associated with the merge policy is based. example: _xdm.context.profile description: An object that specifies which schema class the merge policy is created for. MergePolicy: description: merge policy allOf: - type: object properties: id: type: string description: The ID of the merge policy. example: 10648288-cda5-11e8-a8d5-f2801f1b9fd1 - $ref: '#/components/schemas/PostMergePolicy' - type: object properties: version: type: integer description: The version of the merge policy. example: 1 parameters: authorization: name: Authorization in: header description: The access token which can be copied from your Experience Platform integration, prefixed with "Bearer ". For more information on how to obtain this value, visit the [authentication tutorial](http://www.adobe.com/go/platform-api-authentication-en). required: true schema: type: string x-api-key: name: x-api-key in: header description: The API key which can be copied from your Experience Platform integration. For more information on how to obtain this value, visit the [authentication tutorial](http://www.adobe.com/go/platform-api-authentication-en). required: true schema: type: string x-gw-ims-org-id: name: x-gw-ims-org-id in: header description: The Organization ID which can be copied from your Experience Platform integration. For more information on how to obtain this value, visit the [authentication tutorial](http://www.adobe.com/go/platform-api-authentication-en). required: true schema: type: string x-sandbox-name: name: x-sandbox-name in: header description: All resources in Experience Platform are isolated to specific virtual sandboxes. Requests to Platform APIs require a header that specifies the name of the sandbox in which the operation will take place. See the [sandboxes overview](https://adobe.com/go/sandbox-overview-en) for more information. required: true schema: type: string