Skip to content

Workspaces

64 endpoints. Every path below is served by workspace-backend behind the gateway at https://api.trilocore.ai.

GET /api/v1/workspaces

List Workspaces

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces

Create Workspace

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
name string yes
slug string yes
curl -X POST https://api.trilocore.ai/api/v1/workspaces \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "…", "slug": "…"}'

GET /api/v1/workspaces/onboarding

My Onboarding

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/onboarding \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/summary

Tenant Summary

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/summary \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

DELETE /api/v1/workspaces/{uuid}

Archive Workspace

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}

Get Workspace

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PATCH /api/v1/workspaces/{uuid}

Update Workspace

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
description one of no
name one of no
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "…", "description": "…"}'

GET /api/v1/workspaces/{uuid}/access-reviews

List Access Reviews

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/access-reviews \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/access-reviews

Create Access Review

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
note one of no
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/access-reviews \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"note": "…"}'

GET /api/v1/workspaces/{uuid}/activity

List Activity

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/activity \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/activity/verify

Verify Activity Chain

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/activity/verify \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/attestations

List Attestations

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/attestations \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/attestations

Issue Attestation

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
audit_share_id string yes maxLength 64, minLength 1
issuer_team_id one of no
issuer_team_name one of no
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/attestations \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"audit_share_id": "…"}'

GET /api/v1/workspaces/{uuid}/attestations/{uuid}

Get Attestation

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/attestations/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PATCH /api/v1/workspaces/{uuid}/attestations/{uuid}/retention

Set Attestation Retention

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
legal_hold one of no
retention_class one of no
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid}/attestations/{uuid}/retention \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"retention_class": "standard", "legal_hold": false}'

GET /api/v1/workspaces/{uuid}/attestations/{uuid}/verify

Verify Attestation

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/attestations/{uuid}/verify \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/audits

List Reports

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/audits

Create Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
audit_id one of no
classification string no one of internal, confidential, restricted
contract_share_id one of no
summary one of no
title string yes maxLength 200, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": "…"}'

GET /api/v1/workspaces/{uuid}/audits/{uuid}

Get Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PATCH /api/v1/workspaces/{uuid}/audits/{uuid}

Update Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
audit_id one of no
classification one of no
contract_share_id one of no
summary one of no
title one of no
version integer yes
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version": 0}'

POST /api/v1/workspaces/{uuid}/audits/{uuid}/acknowledge

Acknowledge Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body not published

This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".

curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/acknowledge \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/audits/{uuid}/archive

Archive Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body not published

This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".

curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/archive \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/audits/{uuid}/comments

List Report Comments

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/comments \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/audits/{uuid}/comments

Create Report Comment

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
body string yes maxLength 4000, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/comments \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body": "…"}'

POST /api/v1/workspaces/{uuid}/audits/{uuid}/findings

Add Finding

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
classification string no one of internal, confidential, restricted
description one of no
due_date one of no
selector one of no
severity string yes one of info, low, medium, high, critical
title string yes maxLength 200, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/findings \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": "…", "severity": "info"}'

PATCH /api/v1/workspaces/{uuid}/audits/{uuid}/findings/{uuid}

Update Finding

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
classification one of no
description one of no
due_date one of no
selector one of no
severity one of no
title one of no
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/findings/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": "…", "severity": "info", "selector": "…"}'

POST /api/v1/workspaces/{uuid}/audits/{uuid}/findings/{uuid}/status

Set Finding Status

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
status string yes one of open, acknowledged, resolved, wont_fix
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/findings/{uuid}/status \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "open"}'

PUT /api/v1/workspaces/{uuid}/audits/{uuid}/project

Set Report Project

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend

Request body

Field Type Required Constraints
project_id one of no
curl -X PUT https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/project \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project_id": "…"}'

POST /api/v1/workspaces/{uuid}/audits/{uuid}/resolve

Resolve Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body not published

This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".

curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/resolve \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/audits/{uuid}/share

Share Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body not published

This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".

curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/audits/{uuid}/share \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/contracts

List Contracts

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/contracts

Create Contract

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
address string yes
chain_id integer yes
classification string no one of internal, confidential, restricted
description one of no
links array no maxItems 20
name string yes maxLength 200, minLength 1
selectors array no maxItems 500
tags array no maxItems 20
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"chain_id": 0, "address": "…", "name": "…"}'

GET /api/v1/workspaces/{uuid}/contracts/{uuid}

Get Contract

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PATCH /api/v1/workspaces/{uuid}/contracts/{uuid}

Update Contract

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
classification one of no
description one of no
links one of no
name one of no
selectors one of no
tags one of no
version integer yes
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version": 0}'

POST /api/v1/workspaces/{uuid}/contracts/{uuid}/archive

Archive Contract

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body not published

This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".

curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid}/archive \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/contracts/{uuid}/comments

List Contract Comments

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid}/comments \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/contracts/{uuid}/comments

Create Contract Comment

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
body string yes maxLength 4000, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid}/comments \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body": "…"}'

PUT /api/v1/workspaces/{uuid}/contracts/{uuid}/project

Set Contract Project

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend

Request body

Field Type Required Constraints
project_id one of no
curl -X PUT https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid}/project \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project_id": "…"}'

POST /api/v1/workspaces/{uuid}/contracts/{uuid}/share

Share Contract

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body not published

This endpoint accepts a body, but no machine-readable schema for it is published yet, so none is shown. The example below is therefore incomplete — do not read it as "send no body".

curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/contracts/{uuid}/share \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/invitations

List Invitations

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/invitations \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/invitations

Create Invitation

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
access_expires_in_days one of no
expires_in_days one of no
invited_email string yes maxLength 320, minLength 3
invited_user_id one of no
project_id one of no
role string yes maxLength 64, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/invitations \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"invited_email": "…", "role": "…"}'

DELETE /api/v1/workspaces/{uuid}/invitations/{uuid}

Revoke Invitation

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid}/invitations/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/members

List Members

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/members \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/members

Add Member

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
expires_at one of no
principal_id string yes maxLength 128, minLength 1
principal_label one of no
principal_type string yes maxLength 32, minLength 1
role string yes maxLength 64, minLength 1
starts_at one of no
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/members \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"principal_type": "…", "principal_id": "…", "role": "…"}'

DELETE /api/v1/workspaces/{uuid}/members/{uuid}

Revoke Member

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid}/members/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/projects

List Projects

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/projects \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/projects

Create Project

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
chain one of no
ide_workspace_id one of no
name one of no
target_address one of no
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/projects \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "…", "chain": "…", "target_address": "…"}'

DELETE /api/v1/workspaces/{uuid}/projects/{uuid}

Archive Project

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid}/projects/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/projects/{uuid}

Get Project

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/projects/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PATCH /api/v1/workspaces/{uuid}/projects/{uuid}

Update Project

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
name one of no
status one of no
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid}/projects/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "…", "status": "active"}'

GET /api/v1/workspaces/{uuid}/reports

List Reports

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/reports

Create Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
project_id string yes maxLength 64, minLength 1
source_audit_share_id one of no
summary one of no
title string yes maxLength 200, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project_id": "…", "title": "…"}'

DELETE /api/v1/workspaces/{uuid}/reports/{uuid}

Archive Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/reports/{uuid}

Get Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PATCH /api/v1/workspaces/{uuid}/reports/{uuid}

Update Report

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
summary one of no
title one of no
version integer yes
visibility one of no
curl -X PATCH https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version": 0}'

List Share Links

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports/{uuid}/share-links \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/reports/{uuid}/share-links

Create Share Link

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
expires_in_days one of no
label one of no
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports/{uuid}/share-links \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"label": "…", "expires_in_days": 0}'

DELETE /api/v1/workspaces/{uuid}/reports/{uuid}/share-links/{uuid}

Revoke Share Link

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid}/reports/{uuid}/share-links/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/snapshot

Get Workspace Snapshot

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/snapshot \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

PUT /api/v1/workspaces/{uuid}/snapshot

Save Workspace Snapshot

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend

Request body

Field Type Required Constraints
files object yes
version integer no
curl -X PUT https://api.trilocore.ai/api/v1/workspaces/{uuid}/snapshot \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"files": {}}'

GET /api/v1/workspaces/{uuid}/summary

Workspace Summary

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/summary \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/{uuid}/teams

List Team Grants

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
curl -X GET https://api.trilocore.ai/api/v1/workspaces/{uuid}/teams \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

POST /api/v1/workspaces/{uuid}/teams

Grant Team

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 201
Upstream workspace-backend

Request body

Field Type Required Constraints
team_id string yes maxLength 64, minLength 1
team_kind string yes one of dev, audit
team_name string yes maxLength 120, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/{uuid}/teams \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"team_id": "…", "team_kind": "dev", "team_name": "…"}'

DELETE /api/v1/workspaces/{uuid}/teams/{id}

Revoke Team

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 204
Upstream workspace-backend
curl -X DELETE https://api.trilocore.ai/api/v1/workspaces/{uuid}/teams/{id} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"