openapi: 3.2.0 info: title: Identity Service Graph API description: "Delivering relevant digital experiences requires having a complete\nunderstanding of your customer. This is made more difficult when your\ncustomer data is fragmented across disparate systems, causing each\nindividual customer to appear to have multiple \"identities\". Adobe\nExperience Platform Identity Service provides a RESTful API to help you to\ngain a better view of your customers and their behavior. By bridging\nidentities across devices and systems, you are better able to deliver\nimpactful, personal digital experiences in real-time.

\n\nUse the Identity Service API to manage identities, namespaces, and clusters\nlinked to the Identity Graph.

\n\n**Related documentation**:\n * [Identity Service documentation](https://www.adobe.com/go/identity-overview-en)\n\n**Visualize API calls with Postman (a free, third-party software)**:\n * [Identity Service API Postman collection on GitHub](https://github.com/adobe/experience-platform-postman-samples/blob/master/apis/experience-platform/Identity%20Service.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-{REGION}.adobe.io\n * Information on {REGION} values can be found in the [Identity Service developer guide](https://experienceleague.adobe.com/docs/experience-platform/identity/api/getting-started.html).\n * Base path for this API: /data/core/\n * Example of a complete path: https://platform-va7.adobe.io/data/core/identity/cluster/members\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` with a value of `application/json`.\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.0 servers: - url: https://{environment}.adobe.io/data/core variables: environment: default: platform enum: - platform - platform-stage tags: - name: Graph API description: Graph API provides access to groupings of identities as linked in the identity graph. paths: /identity/v2/graph: post: tags: - Graph API operationId: getGraphs summary: List linked identities description: 'Given set of identities, returns all linked identities in the graph corresponding to each identity. ' 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' - $ref: '#/components/parameters/x-request-id' - $ref: '#/components/parameters/content-type' requestBody: description: "JSON object containing the list of xids/composite_xids identities for which to retrieved \nlinked identities in the same format and additional filters.

\nLinked identities can be returned as a `set` or `graph` projection by setting `projection_type`.

\nThe `projection_type: graph` option can be used alongside `require_edge_meta_data: true` to provide\ninformation about the datasets and batches which have contributed to each edge.\n" content: application/json: schema: oneOf: - $ref: '#/components/schemas/GraphRequestCompositeXids' - $ref: '#/components/schemas/GraphRequestXids' examples: setOfMembersWithNamespaceCodeFilter: summary: get a set of linked identities using the namespace code value: composite_xids: - ns: adcould id: '2521328045094711779817' projection_type: set graphOfMembersWithNamespaceIdFilter: summary: get a graph of linked identities using the namespace id value: composite_xids: - nsid: 411 id: '2521328045094711779817' projection_type: graph require_edge_meta_data: true graphOfMembersWithXids: summary: get a graph of linked identities using xids value: xids: - HHDAHDKYYD - ABXZDAFGYY projection_type: graph require_edge_meta_data: true required: true responses: '200': description: OK x-summary: Success - Data Retrieved headers: content-type: description: Response is a JSON document with UTF-8 encoding schema: type: string default: application/json;charset=utf-8 cache-control: description: caching policy for response schema: type: string default: no-cache content: application/json;version=2.2.1;charset=utf-8: schema: $ref: '#/components/schemas/GraphResponse' examples: setOfMembersWithNamespaceCodeFilter: summary: get a set of linked identities using the namespace code value: version: '2.0' graphs: - composite_xid: ns: adcloud id: '2521328045094711779817' members: - ns: adcloud id: '2521328045094711779817' - ns: ECID id: '1111111111111' - ns: Email id: janeDoe@adobe.com - ns: Email id: johnDoe@adobe.com - ns: Phone id: 0000000009 unprocessed_composite_xids: [] algo_type: STITCH_ALL graphOfMembersWithNamespaceIdFilter: summary: get a graph of linked identities using the namespace id value: version: '2.0' graphs: - composite_xid: nsid: 411 id: '2521328045094711779817' vertices: - composite_xid: nsid: 411 id: '2521328045094711779817' last_updated_ts: 1724757940000 - composite_xid: nsid: 4 id: '1111111111111' last_updated_ts: 1724757940000 - composite_xid: nsid: 6 id: janeDoe@adobe.com last_updated_ts: 1724313364568 - composite_xid: nsid: 6 id: johnDoe@adobe.com last_updated_ts: 1724313364568 - composite_xid: nsid: 7 id: 0000000009 last_updated_ts: 1724313042154 edges: - composite_xid_pair: - nsid: 411 id: '2521328045094711779817' - nsid: 7 id: 0000000009 first_established_ts: 1724313042154 last_established_ts: 1724313042154 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPZ6KNDF - composite_xid_pair: - nsid: 6 id: janeDoe@adobe.com - nsid: 6 id: johnDoe@adobe.com first_established_ts: 1724313364568 last_established_ts: 1724313364568 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPA21687 - composite_xid_pair: - nsid: 411 id: '2521328045094711779817' - nsid: 6 id: johnDoe@adobe.com first_established_ts: 1724313364568 last_established_ts: 1724313364568 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPA21687 - composite_xid_pair: - nsid: 411 id: '2521328045094711779817' - nsid: 4 id: '1111111111111' first_established_ts: 1724757940000 last_established_ts: 1724757940000 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPZ6KAKD unprocessed_composite_xids: [] algo_type: STITCH_ALL graphOfMembersWithXids: summary: get a graph of linked identities using xids value: version: '2.0' graphs: - xid: HHDAHDKYYD vertices: - xid: HHDAHDKYYD last_updated_ts: 1724757940000 - xid: HHDAHDKABD last_updated_ts: 1724757940000 - xid: AD1JBUOPJD last_updated_ts: 1724313364568 - xid: UGJUHGFKUG last_updated_ts: 1724313364568 - xid: YUGVgfjgikFSFUK last_updated_ts: 1724313042154 edges: - xid_pair: - HHDAHDKYYD - YUGVgfjgikFSFUK first_established_ts: 1724313042154 last_established_ts: 1724313042154 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPZ6KNDF - xid_pair: - AD1JBUOPJD - UGJUHGFKUG first_established_ts: 1724313364568 last_established_ts: 1724313364568 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPA21687 - xid_pair: - HHDAHDKYYD - UGJUHGFKUG first_established_ts: 1724313364568 last_established_ts: 1724313364568 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPA21687 - xid_pair: - HHDAHDKYYD - HHDAHDKABD first_established_ts: 1724757940000 last_established_ts: 1724757940000 dataset_ids: - 66b61a17dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPZ6KAKD - xid: ABXZDAFGYY vertices: - xid: ABXZDAFGYY last_updated_ts: 1724757940000 - xid: LKGUYP588hguj last_updated_ts: 1724757940000 - xid: BVR478768HGFJHVJK last_updated_ts: 1724757940000 edges: - xid_pair: - ABXZDAFGYY - LKGUYP588hguj first_established_ts: 1724757940000 last_established_ts: 1724757940000 dataset_ids: - 66b61a54dd6e6e1767a897fd batch_ids: - 01J5WGCRZCK5C0Y30SKPZ6KN11 - xid_pair: - ABXZDAFGYY - BVR478768HGFJHVJK first_established_ts: 1724757940000 last_established_ts: 1724757940000 dataset_ids: - 66b61a54dd6e6e1ea7a89713 batch_ids: - 01J5WGCRZCK5C0Y30SKPA21612 unprocessed_composite_xids: [] algo_type: STITCH_ALL '400': description: Bad Request from the client x-summary: Bad Request - Invalid Input headers: content-type: description: Response is a JSON document with UTF-8 encoding schema: type: string default: application/json;version=2.2.1;charset=utf-8;charset=utf-8 cache-control: description: caching policy for response schema: type: string default: no-cache content: application/json: schema: $ref: '#/components/schemas/ServiceErrorStatus' example: reason: 'Validation error Request id: id-api-http-8qUg8oSANC.' message: Graph Request Invalid - projection types available are [graph|set]. '401': description: IMS token is missing required scope. x-summary: Unauthorized - Missing or Invalid Scope headers: content-type: description: Response is a JSON document with UTF-8 encoding schema: type: string default: application/json cache-control: description: caching policy for response schema: type: string default: no-cache content: application/json: schema: $ref: '#/components/schemas/ServiceErrorStatus' example: title: UnauthorizedAccessInvalidScope status: 401 detail: Token does not have valid scope. Either 'acp_core_identity' scope or 'acp_foundation' scope is required. '403': description: Insufficient permissions x-summary: Unauthorized - Missing Permissions headers: content-type: description: Response is a JSON document with UTF-8 encoding schema: type: string default: application/json cache-control: description: caching policy for response schema: type: string default: no-cache content: application/json: schema: $ref: '#/components/schemas/ServiceErrorStatus' example: type: https://ns.adobe.com/aep/errors/UIS-4064-403 status: 403 title: Insufficient permissions detail: 'The authorization token provided in the request does not have the permissions to access: READ IdentityGraph. Please contact your system administrator to fix this issue. ' report: tenantInfo: imsOrgId: 09A55EBC5639E6017F000101@AdobeOrg, sandboxId: 8129954a-fa83-43ba-a995-4bfa8373ba2b, sandboxName: Prod additionalContext: null errorChain: [] '429': description: Request rate is large x-summary: Too Many Requests - Rate Limit Exceeded content: application/json: schema: $ref: '#/components/schemas/ServiceErrorStatus' example: title: RequestRateTooLarge status: 429 detail: Request rate is large. Please try again later. '500': description: Unexpected Internal application error x-summary: Server Error - Internal Error content: application/json: schema: $ref: '#/components/schemas/ServiceErrorStatus' example: title: InternalError status: 500 x-codegen-request-body-name: body components: schemas: GraphRequestTraverse: type: object properties: predicate: type: array items: $ref: '#/components/schemas/GraphPredicate' GraphRequestBase: type: object properties: projection_type: type: string description: 'This is a required field dictating the format of the returned graph: a set of members or a graph with vertices and edges. ' enum: - set - graph graph_type: type: string traverse: type: array items: $ref: '#/components/schemas/GraphRequestTraverse' filter: type: array items: $ref: '#/components/schemas/GraphRequestFilter' aam_properties: type: object description: 'This filter cannot be used with projection_type: graph. ' properties: return_data_sources: type: boolean require_edge_meta_data: type: boolean description: 'This is and optional field that is used to add edge meta data in the response, such as dataset_ids and batch_ids. It will only apply if the requested projection_type is graph. ' GraphResponseEdge: type: object properties: composite_xid_pair: type: array items: $ref: '#/components/schemas/GraphResponseCompositeXid' xid_pair: type: array items: $ref: '#/components/schemas/Id' first_established_ts: type: integer last_established_ts: type: integer dataset_ids: type: array description: 'This field is returned for requests with require_edge_meta_data: true ' items: type: string batch_ids: type: array description: 'This field is returned for requests with require_edge_meta_data: true ' items: type: string GraphRequestXids: allOf: - type: object properties: xids: type: array items: $ref: '#/components/schemas/Id' minItems: 1 maxItems: 1000 - $ref: '#/components/schemas/GraphRequestBase' GraphResponseCompositeXid: type: object properties: nsid: description: Namespace id type: integer id: description: Identity in given namespace type: string ns: description: Namespace code type: string Id: type: string description: Identity string as returned by /identity/identity GET api. GraphResponseDataSources: type: object properties: composite_xid: $ref: '#/components/schemas/GraphResponseCompositeXid' xid: $ref: '#/components/schemas/Id' ds_ids: type: array items: type: integer GraphRequestFilter: type: object properties: predicate: type: array items: $ref: '#/components/schemas/GraphPredicate' order_by: type: string limit: type: string GraphPredicate: type: object properties: v_prop: type: string e_prop: type: string op: type: string value: type: string GraphResponse: type: object properties: version: type: string graphs: type: object properties: vertices: type: array description: 'This field is returned for requests with projection_type: graph

The returned identities are formatted to match the request (composite_xid/xid) ' items: $ref: '#/components/schemas/GraphResponseVerticle' edges: type: array description: 'This field is returned for requests with projection_type: graph

The returned identities are formatted to match the request (composite_xid/xid) ' items: $ref: '#/components/schemas/GraphResponseEdge' members: type: array description: 'This field is returned for requests with projection_type: set

The returned identities are formatted to match the request (composite_xid/xid) ' items: oneOf: - $ref: '#/components/schemas/GraphResponseCompositeXid' - $ref: '#/components/schemas/Id' datasources: type: array items: $ref: '#/components/schemas/GraphResponseDataSources' unprocessed_composite_xids: type: array description: 'This field is returned when the requested identity is formatted as composite_xid ' items: $ref: '#/components/schemas/GraphResponseCompositeXid' unprocessed_xids: type: array description: 'This field is returned when the requested identity is formatted as xid ' items: $ref: '#/components/schemas/Id' ServiceErrorStatus: type: object properties: title: type: string description: A short, human-readable summary of the problem type status: type: integer description: HTTP error code describing the problem detail: type: string description: 'A human-readable explanation specific to this occurrence of the problem ' type: type: string description: Link to error type reason: type: string description: A short, human-readable summary of the problem type message: type: string description: 'A human-readable explanation specific to this occurrence of the problem ' report: type: object properties: tenantInfo: description: Sandbox details type: object properties: imsOrgId: type: string sandboxId: type: string sandboxName: type: string additionalContext: description: Additional details relevant to the error. type: object properties: userId: type: string errorChain: description: Where multiple errors occurred leading up to the returned response, additional errors are included in this field. type: array items: type: object properties: serviceId: type: string errorCode: type: string invokingServiceId: type: string errorMessage: type: string unixTimeStampMs: type: integer GraphResponseVerticle: type: object properties: last_updated_ts: type: integer composite_xid: $ref: '#/components/schemas/GraphResponseCompositeXid' xid: $ref: '#/components/schemas/Id' GraphRequestCompositeXids: allOf: - type: object properties: composite_xids: type: array items: $ref: '#/components/schemas/GraphResponseCompositeXid' minItems: 1 maxItems: 1000 - $ref: '#/components/schemas/GraphRequestBase' 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-request-id: name: x-request-id in: header description: Request id to be used for tracing this request. 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-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 content-type: name: Content-Type in: header description: The type of content being sent in the request. Use 'application/json'. required: true schema: type: string default: application/json x-sandbox-name: name: x-sandbox-name in: header description: 'The the all-lowercase name of the sandbox the operation will take place in. If unspecified, falls back to the default production sandbox (usually "prod"). See the [sandboxes overview](https://adobe.com/go/sandbox-overview-en) for more information. ' schema: type: string example: prod x-original-swagger-version: '2.0'