---
title: "Search Graph"
method: POST
path: "/api/v1/search/graph"
tags: ["App Entitlement"]
---

# Search Graph

`POST /api/v1/search/graph`

SearchGraph performs a server-side BFS traversal and returns a bounded, filtered subgraph.
 Exactly one of user_id, app_id, or resource_id must be set.

## Request body

- C1ApiAppV1AppEntitlementSearchServiceSearchGraphRequest — SearchGraph request. Builds a filtered access graph starting from a root entity. Exactly one of user_id, app_id, or resource_id must be set. Server validates this constraint and returns InvalidArgument if violated.
  - `appId` string — The appId field.
  - `appIds` string[], nullable — Filters — all optional, applied at every traversal hop
  - `entitlementIds` string[], nullable — The entitlementIds field.
  - `entitlementNameQuery` string — The entitlementNameQuery field.
  - `maxDepth` integer — Traversal controls
  - `maxFanOut` integer — The maxFanOut field.
  - `pageSize` integer — The pageSize field.
  - `pageToken` string — The pageToken field.
  - `resourceId` string — The resourceId field.
  - `resourceIds` string[], nullable — The resourceIds field.
  - `resourceNameQuery` string — The resourceNameQuery field.
  - `resourceTypeIds` string[], nullable — The resourceTypeIds field.
  - `userId` string — Root entity — exactly one must be set

## Response `200`

SearchGraph response. Contains a subgraph of nodes and edges.

- C1ApiAppV1AppEntitlementSearchServiceSearchGraphResponse — SearchGraph response. Contains a subgraph of nodes and edges.
  - `edges` C1ApiAppV1GraphEdge[], nullable — The edges field.
    - `hiddenChildren` integer — The hiddenChildren field.
    - `isTruncated` boolean — The isTruncated field.
    - `sourceId` string — The sourceId field.
    - `targetId` string — The targetId field.
    - `type` 'GRAPH_EDGE_TYPE_UNSPECIFIED' | 'GRAPH_EDGE_TYPE_IDENTITY_LINK' | 'GRAPH_EDGE_TYPE_DIRECT_GRANT' | 'GRAPH_EDGE_TYPE_APP_HIERARCHY' | 'GRAPH_EDGE_TYPE_RESOURCE_HIERARCHY' | 'GRAPH_EDGE_TYPE_PROXY_BINDING' — The type field.
  - `hasMore` boolean — The hasMore field.
  - `nodes` C1ApiAppV1GraphNode[], nullable — The nodes field.
    - `appId` string — The appId field.
    - `displayName` string — The displayName field.
    - `id` string — The id field.
    - `resourceTypeId` string — The resourceTypeId field.
    - `type` 'GRAPH_NODE_TYPE_UNSPECIFIED' | 'GRAPH_NODE_TYPE_USER' | 'GRAPH_NODE_TYPE_APP_USER' | 'GRAPH_NODE_TYPE_APP' | 'GRAPH_NODE_TYPE_RESOURCE_TYPE' | 'GRAPH_NODE_TYPE_RESOURCE' | 'GRAPH_NODE_TYPE_ENTITLEMENT' | 'GRAPH_NODE_TYPE_GRANT' — The type field.
  - `pageToken` string — The pageToken field.
  - `pathsReturned` integer — The pathsReturned field.
  - `truncatedNodeIds` string[], nullable — The truncatedNodeIds field.

---

[API](https://skmtc.net/conductorone/apis/c1-api.md) · [All operations](https://skmtc.net/conductorone/apis/c1-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductorone/c1-api/revisions/d391405a35d3/schema)
