---
title: "Sync To Ukl"
method: POST
path: "/v1/projects/{project_id}/sync"
tags: ["projects"]
---

# Sync To Ukl

`POST /v1/projects/{project_id}/sync`

Sync selected PRJ nodes and edges to UKL.

This is the explicit sync operation that promotes project graph
insights back to the Unified Knowledge Layer.

GUARDRAIL: Only adds to UKL, never overwrites existing data.

## Path parameters

- `project_id` string, uuid, required

## Request body

- SyncRequest
  - `node_keys` string[]
  - `edge_keys` string[]
  - `synced_by` string, nullable

## Response `200`

Successful Response

- SyncResponse
  - `node_results` SyncResultItem[], required
    - `prj_key` string, nullable
    - `edge_key` string, nullable
    - `ukl_key` string, nullable
    - `action` string, required
  - `edge_results` SyncResultItem[], required
    - `prj_key` string, nullable
    - `edge_key` string, nullable
    - `ukl_key` string, nullable
    - `action` string, required
  - `sync_log_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ontora/apis/ontora-api.md) · [All operations](https://skmtc.dev/ontora/apis/ontora-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ontora/ontora-api/revisions/7f57037fd94b/schema)
