> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Network Graph

> Retrieve the network as a graph of subject nodes (vendor users, vendor businesses, transaction parties) and signal nodes (the shared device/IP/face/document/phone/email/address values linking them), with edges representing memberships.

export const AgentPromptAccordion = ({prompt, title = "AI Agent Integration Prompt"}) => {
  const [copied, setCopied] = React.useState(false);
  const handleCopy = e => {
    e.stopPropagation();
    if (!prompt) return;
    navigator.clipboard.writeText(prompt.trim()).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    });
  };
  const agents = ["Claude Code", "Codex", "Cursor", "Devin", "Windsurf", "GitHub Copilot"];
  return <div className="didit-agent-card">
      {}
      <div className="didit-agent-titlebar">
        <div className="didit-agent-dots" aria-hidden="true">
          <span className="didit-agent-dot didit-agent-dot-red"></span>
          <span className="didit-agent-dot didit-agent-dot-yellow"></span>
          <span className="didit-agent-dot didit-agent-dot-green"></span>
        </div>
        <span className="didit-agent-filename">{title}</span>
        <button type="button" className={`didit-agent-copy ${copied ? "didit-agent-copy-copied" : ""}`} onClick={handleCopy} title="Copy prompt to clipboard" aria-label={copied ? "Copied!" : "Copy prompt to clipboard"}>
          {copied ? <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <path d="M3 8.5l3.5 3.5L13 4" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
              <span>Copied</span>
            </> : <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <rect x="5" y="5" width="9" height="9" rx="1.5" stroke="currentColor" strokeWidth="1.5" />
                <path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5" stroke="currentColor" strokeWidth="1.5" />
              </svg>
              <span>Copy</span>
            </>}
        </button>
      </div>

      {}
      <pre className="didit-agent-body"><code>{prompt.trim()}</code></pre>

      {}
      <div className="didit-agent-footer">
        <span className="didit-agent-footer-label">Paste into</span>
        <div className="didit-agent-chips">
          {agents.map(name => <span key={name} className="didit-agent-chip">{name}</span>)}
        </div>
      </div>
    </div>;
};

<AgentPromptAccordion
  title="Network Graph API Prompt"
  prompt={`Retrieve a fraud network as a graph through the Management API.

Endpoint:
GET https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/

Authentication:
Use the x-api-key header with my Didit API key.

Path parameter:
- network_uuid - the network's UUID.

Query params:
- depth=1|2|3|all - hops from the focus subject to include. Defaults to all (unbounded).
- focus_kind=vendor_user|vendor_business|transaction_party - must be supplied together with focus_id.
- focus_id=<uuid> - subject UUID to center the graph on.

Response 200: NetworkGraph - { network: NetworkDetail, depth: int|null, truncated: bool, nodes: [...], edges: [...], metrics: {node_count, edge_count, hub_signal_count} }.

Node shapes:
- Subject node (kind: vendor_user | vendor_business | transaction_party): id, kind, subject, node_status (approved|in_review|declined|not_completed), tags.
- Signal node (kind: signal): id, kind, uuid, signal_type, subject_count, coverage, is_hub, is_datacenter_ip, is_high_collision_device, node_status (signal_active|signal_guarded), tags, risk_evidence, first_seen_at, last_seen_at.

Edge shape: id, source (subject node id), target (signal node id), subject_kind, signal_type, confidence, observation_count, first_seen_at, last_seen_at.

Failure modes:
- 404 - network not found or not visible.
- 400 - depth is not one of 1, 2, 3, all, or focus_kind/focus_id supplied without the other.
- 401/403 - auth/permission errors.

Side effects: none, pure read.

For the full integration shape, see /integration/integration-prompt.`}
/>

Retrieve the network as a graph: subject nodes for each vendor user, vendor business, or transaction party in the network, signal nodes for each shared device, IP, face, document number, phone, email, or address value linking them, and edges for the memberships between them.

Use `depth` to bound how many hops out from a `focus_kind`/`focus_id` subject to return, this is what backs the Console's graph view zooming into one applicant's immediate connections instead of loading the whole network. Omit `depth` (or pass `all`) for the full neighborhood; `truncated` tells you whether a bounded request cut anything off.

## Related

* [Get network](/management-api/networks/get)
* [Network members](/management-api/networks/members)
* [Network signals](/management-api/networks/signals)


## OpenAPI

````yaml GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/:
    get:
      tags:
        - Networks
      summary: Get network graph
      description: >-
        Retrieve the network as a graph of subject nodes (vendor users, vendor
        businesses, transaction parties) and signal nodes (the shared
        device/IP/face/document/phone/email/address values linking them), with
        edges representing memberships.
      operationId: get_network_graph
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Organization UUID.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Application UUID.
        - name: network_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: n3a5e000-0000-4000-8000-000000000001
          description: Network UUID.
        - name: depth
          in: query
          schema:
            type: string
            enum:
              - '1'
              - '2'
              - '3'
              - all
          description: Hops from the focus subject to include. Defaults to all (unbounded).
        - name: focus_kind
          in: query
          schema:
            type: string
            enum:
              - vendor_user
              - vendor_business
              - transaction_party
          description: >-
            Subject type to center the graph on. Must be supplied together with
            focus_id; defaults to an arbitrary member when depth is bounded and
            neither is supplied.
        - name: focus_id
          in: query
          schema:
            type: string
            format: uuid
          description: Subject UUID to center the graph on.
      responses:
        '200':
          description: Network graph.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkGraph'
        '404':
          description: Network not found (or not visible to this application).
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/n3a5e000-0000-4000-8000-000000000001/graph/?depth=2'
            \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    NetworkGraph:
      type: object
      properties:
        network:
          $ref: '#/components/schemas/NetworkDetail'
        depth:
          type: integer
          nullable: true
          description: Effective depth applied, or null when unbounded (depth=all).
        truncated:
          type: boolean
          description: True if the neighborhood was cut off by depth.
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/NetworkGraphNode'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/NetworkGraphEdge'
        metrics:
          type: object
          properties:
            node_count:
              type: integer
            edge_count:
              type: integer
            hub_signal_count:
              type: integer
    NetworkDetail:
      allOf:
        - $ref: '#/components/schemas/NetworkListItem'
        - type: object
          properties:
            stats:
              type: object
              description: Aggregate stats for the network (e.g. member totals).
            fraud_tags:
              type: array
              items:
                type: object
              description: Fraud-pattern tags surfaced on the network.
            risk_signals:
              type: object
              description: >-
                Risk-signal summaries: residential_proxy_reuse,
                email_intelligence, phone_intelligence.
            reviewed_at:
              type: string
              format: date-time
              nullable: true
            reviewed_by:
              type: string
              nullable: true
            review_reason:
              type: string
              nullable: true
    NetworkGraphNode:
      type: object
      description: >-
        A subject node or a signal node, distinguished by kind. Subject nodes
        (kind: vendor_user | vendor_business | transaction_party) carry id,
        kind, subject, node_status (approved | in_review | declined |
        not_completed), and tags. Signal nodes (kind: signal) carry id, kind,
        uuid, signal_type, subject_count, coverage, is_hub, is_datacenter_ip,
        is_high_collision_device, node_status (signal_active | signal_guarded),
        tags, risk_evidence, first_seen_at, and last_seen_at.
      properties:
        id:
          type: string
        kind:
          type: string
          enum:
            - vendor_user
            - vendor_business
            - transaction_party
            - signal
    NetworkGraphEdge:
      type: object
      properties:
        id:
          type: string
          format: uuid
        source:
          type: string
          description: Subject node id.
        target:
          type: string
          description: Signal node id.
        subject_kind:
          type: string
          enum:
            - vendor_user
            - vendor_business
            - transaction_party
        signal_type:
          type: string
          enum:
            - ip_address
            - device
            - face
            - document_number
            - phone
            - email
            - address
        confidence:
          type: number
          format: float
          description: 1.0 for an exact match.
        observation_count:
          type: integer
        first_seen_at:
          type: string
          format: date-time
          nullable: true
        last_seen_at:
          type: string
          format: date-time
          nullable: true
    NetworkListItem:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        network_id:
          type: string
          description: Human-readable per-organization sequential id, e.g. N-0001.
        name:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - active
            - in_review
            - resolved
            - dismissed
          description: >-
            Network lifecycle status. Distinct from the per-applicant
            outcome_status inside a network
            (approved/in_review/declined/not_completed).
        risk:
          $ref: '#/components/schemas/NetworkRiskDisplay'
        pattern_types:
          type: array
          items:
            type: string
            enum:
              - exact_same_device
              - similar_device
              - same_ip_address
              - same_address
              - similar_selfie_backgrounds
              - similar_poa_documents
              - same_document_number
              - same_phone_number
              - same_email
          description: The clustering patterns detected in this network.
        signal_types:
          type: array
          items:
            type: string
            enum:
              - ip_address
              - device
              - face
              - document_number
              - phone
              - email
              - address
          description: The distinct signal types present in this network.
        member_counts:
          type: object
          description: Counts of members by category (e.g. total, per outcome_status).
        member_status:
          type: object
          description: Breakdown of members by outcome_status.
        signal_coverage:
          type: object
          description: Per signal_type coverage of this network's members.
        first_activity_at:
          type: string
          format: date-time
          nullable: true
        last_activity_at:
          type: string
          format: date-time
          nullable: true
    NetworkRiskDisplay:
      type: object
      properties:
        score:
          type: integer
          description: Risk score, 0-100.
        band:
          type: string
          enum:
            - low
            - medium
            - high
          description: Band the score renders as. high >= 70, medium >= 40, otherwise low.
        bar:
          type: number
          format: float
          description: Normalized 0-1 value for rendering a risk bar.

````