Entity Graph Management

Entity graph management endpoints for discovering, retrieving, and navigating entity relationships within the Streamline data activation system.

List Entity Graph IDs

GET /v1/activation/entity-graph

List entity graph IDs and descriptions, with optional filtering by integration.

Query Parameters:

  • integrationId (string, optional): The UUID of the integration to filter graphs by

Response (200 OK):

[
  {
    "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
    "description": "Customer and Order Relationship Graph - Links customer entities with their order history and product interactions"
  },
  {
    "graphId": "eg2b2c3d-e5f6-7890-1234-567890abcdef", 
    "description": "Product Catalog Graph - Defines relationships between products, categories, and inventory data"
  },
  {
    "graphId": "eg3b2c3d-e5f6-7890-1234-567890abcdef",
    "description": "Marketing Attribution Graph - Connects marketing campaigns to customer interactions and conversions"
  }
]

Get Entity Graph

GET /v1/activation/entity-graph/{graphId}

Get detailed information about a specific entity graph including all nodes and relationships.

Path Parameters:

  • graphId (string, required): The UUID of the graph

Response (200 OK):

{
  "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
  "graphDescription": "Customer and Order Relationship Graph - Links customer entities with their order history and product interactions",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "graphNodes": [
    {
      "entityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
      "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "descriptor": "Customer entity containing user profile information, preferences, and account details"
    },
    {
      "entityId": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
      "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "descriptor": "Order entity containing transaction details, order items, and fulfillment status"
    },
    {
      "entityId": "e3b2c3d4-e5f6-7890-1234-567890abcdef",
      "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "descriptor": "Product entity with catalog information, pricing, and inventory details"
    }
  ],
  "relationships": [
    {
      "linkId": "l1b2c3d4-e5f6-7890-1234-567890abcdef",
      "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "sourceEntityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
      "linkEntityId": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
      "linkDescription": "Customer to Orders relationship - connects customers with their purchase history",
      "linkHash": "hash_abc123def456",
      "relationshipCardinality": {
        "e1b2c3d4-e5f6-7890-1234-567890abcdef": "ONE",
        "e2b2c3d4-e5f6-7890-1234-567890abcdef": "MANY"
      },
      "matchFields": [
        {
          "customer_id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
          "order_customer_id": "f4b2c3d4-e5f6-7890-1234-567890abcdef"
        }
      ]
    },
    {
      "linkId": "l2b2c3d4-e5f6-7890-1234-567890abcdef",
      "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
      "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
      "sourceEntityId": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
      "linkEntityId": "e3b2c3d4-e5f6-7890-1234-567890abcdef",
      "linkDescription": "Order to Products relationship - links orders with the products purchased",
      "linkHash": "hash_def456ghi789",
      "relationshipCardinality": {
        "e2b2c3d4-e5f6-7890-1234-567890abcdef": "MANY",
        "e3b2c3d4-e5f6-7890-1234-567890abcdef": "MANY"
      },
      "matchFields": [
        {
          "order_id": "f5b2c3d4-e5f6-7890-1234-567890abcdef",
          "product_order_id": "f6b2c3d4-e5f6-7890-1234-567890abcdef"
        }
      ]
    }
  ]
}

Get Graph Link by ID

GET /v1/activation/entity-graph/{graphId}/link/{linkId}

Get detailed information about a specific relationship link within an entity graph.

Path Parameters:

  • graphId (string, required): The UUID of the graph
  • linkId (string, required): The UUID of the link

Response (200 OK):

{
  "linkId": "l1b2c3d4-e5f6-7890-1234-567890abcdef",
  "graphId": "eg1b2c3d-e5f6-7890-1234-567890abcdef",
  "organizationId": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "sourceEntityId": "e1b2c3d4-e5f6-7890-1234-567890abcdef",
  "linkEntityId": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
  "linkDescription": "Customer to Orders relationship - connects customers with their purchase history and transaction details",
  "linkHash": "hash_abc123def456",
  "relationshipCardinality": {
    "e1b2c3d4-e5f6-7890-1234-567890abcdef": "ONE",
    "e2b2c3d4-e5f6-7890-1234-567890abcdef": "MANY"
  },
  "matchFields": [
    {
      "customer_id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
      "order_customer_id": "f4b2c3d4-e5f6-7890-1234-567890abcdef"
    },
    {
      "customer_email": "f2b2c3d4-e5f6-7890-1234-567890abcdef",
      "order_customer_email": "f7b2c3d4-e5f6-7890-1234-567890abcdef"
    }
  ]
}

Get Adjacent Nodes

GET /v1/activation/entity-graph/{graphId}/node/{nodeId}/adjacent

Get all adjacent nodes (directly connected entities) for a specific graph node, including relationship information.

Path Parameters:

  • graphId (string, required): The UUID of the graph
  • nodeId (string, required): The UUID of the graph node

Response (200 OK):

[
  {
    "entityId": "e2b2c3d4-e5f6-7890-1234-567890abcdef",
    "relationships": [
      {
        "linkId": "l1b2c3d4-e5f6-7890-1234-567890abcdef",
        "linkCardinality": {
          "e1b2c3d4-e5f6-7890-1234-567890abcdef": "ONE",
          "e2b2c3d4-e5f6-7890-1234-567890abcdef": "MANY"
        },
        "linkRelationship": [
          {
            "customer_id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
            "order_customer_id": "f4b2c3d4-e5f6-7890-1234-567890abcdef"
          }
        ]
      }
    ]
  },
  {
    "entityId": "e4b2c3d4-e5f6-7890-1234-567890abcdef",
    "relationships": [
      {
        "linkId": "l3b2c3d4-e5f6-7890-1234-567890abcdef",
        "linkCardinality": {
          "e1b2c3d4-e5f6-7890-1234-567890abcdef": "ONE",
          "e4b2c3d4-e5f6-7890-1234-567890abcdef": "ONE"
        },
        "linkRelationship": [
          {
            "customer_id": "f1b2c3d4-e5f6-7890-1234-567890abcdef",
            "profile_customer_id": "f8b2c3d4-e5f6-7890-1234-567890abcdef"
          }
        ]
      }
    ]
  }
]

Error Responses:

Response (404 Not Found):

{
  "code": "GRAPH_NOT_FOUND",
  "title": "Entity Graph Not Found",
  "detail": "No entity graph found with the specified ID",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}

Response (404 Not Found):

{
  "code": "LINK_NOT_FOUND",
  "title": "Graph Link Not Found",
  "detail": "No link found with the specified ID in the given graph",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}

Response (404 Not Found):

{
  "code": "NODE_NOT_FOUND",
  "title": "Graph Node Not Found",
  "detail": "No node found with the specified ID in the given graph",
  "traceId": "req_12345678-abcd-4321-9876-fedcba098765"
}

Entity Graph Overview

Entity graphs define the relationships between different data entities in your organization, enabling:

  1. Data Relationship Mapping: Visual representation of how entities connect and relate to each other
  2. Traversal Path Definition: Define paths for navigating between related entities during data activation
  3. Cardinality Management: Specify relationship types (ONE-to-ONE, ONE-to-MANY, MANY-to-MANY)
  4. Field Matching: Configure which fields are used to establish relationships between entities
  5. Graph-based Queries: Enable complex queries that span multiple related entities

Entity graphs are essential for creating comprehensive datasets that include related information from multiple data sources.