Skip to content

Projects

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

GET /api/v1/workspaces/projects

List Projects

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
Pagination paged: page_size ≤ 200 (default 50) + page_token; the body is {data, has_more, next_page_token, page_size}

Query parameters

Parameter Type Required Constraints Description
include_archived boolean no — —
page_size integer no default 50, clamped to 200, minimum 1 Items per page. Default 50; values above 200 are clamped to 200 (never an error). The effective value is echoed as page_size.
page_token string no maxLength 2048 Opaque token from a previous page's next_page_token. Valid for 3 days, only with the same filters and the same caller. Omit it to start from the first page.
workspace_id string no — —
curl -X GET https://api.trilocore.ai/api/v1/workspaces/projects \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

▶ Run this example in the sandbox

DELETE /api/v1/workspaces/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/projects/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

GET /api/v1/workspaces/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/projects/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

▶ Run this example in the sandbox

PATCH /api/v1/workspaces/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/projects/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "…", "status": "active"}'

▶ Run this example in the sandbox

GET /api/v1/workspaces/projects/{uuid}/audit-logs

List Project Audit Logs

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
Pagination paged: page_size ≤ 200 (default 50) + page_token; the body is {data, has_more, next_page_token, page_size}

Query parameters

Parameter Type Required Constraints Description
page_size integer no default 50, clamped to 200, minimum 1 Items per page. Default 50; values above 200 are clamped to 200 (never an error). The effective value is echoed as page_size.
page_token string no maxLength 2048 Opaque token from a previous page's next_page_token. Valid for 3 days, only with the same filters and the same caller. Omit it to start from the first page.
curl -X GET https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/audit-logs \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

▶ Run this example in the sandbox

POST /api/v1/workspaces/projects/{uuid}/audit-logs

Append Project Audit Log

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
kind string no one of note, review, handoff
message string yes maxLength 2000, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/audit-logs \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "…"}'

▶ Run this example in the sandbox

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

Content

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
Pagination paged: page_size ≤ 200 (default 50) + page_token; the body is {data, has_more, next_page_token, page_size}

Query parameters

Parameter Type Required Constraints Description
page_size integer no default 50, clamped to 200, minimum 1 Items per page. Default 50; values above 200 are clamped to 200 (never an error). The effective value is echoed as page_size.
page_token string no maxLength 2048 Opaque token from a previous page's next_page_token. Valid for 3 days, only with the same filters and the same caller. Omit it to start from the first page.
curl -X GET https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/content \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

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

List Project Invitations

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
Pagination paged: page_size ≤ 200 (default 50) + page_token; the body is {data, has_more, next_page_token, page_size}

Query parameters

Parameter Type Required Constraints Description
include_closed boolean no — —
page_size integer no default 50, clamped to 200, minimum 1 Items per page. Default 50; values above 200 are clamped to 200 (never an error). The effective value is echoed as page_size.
page_token string no maxLength 2048 Opaque token from a previous page's next_page_token. Valid for 3 days, only with the same filters and the same caller. Omit it to start from the first page.
curl -X GET https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/invitations \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

▶ Run this example in the sandbox

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

Create Project 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/projects/{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/projects/{uuid}/invitations/{uuid}

Revoke Project 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/projects/{uuid}/invitations/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

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

List Project Members

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
Pagination paged: page_size ≤ 200 (default 50) + page_token; the body is {data, has_more, next_page_token, page_size}

Query parameters

Parameter Type Required Constraints Description
include_inactive boolean no — —
page_size integer no default 50, clamped to 200, minimum 1 Items per page. Default 50; values above 200 are clamped to 200 (never an error). The effective value is echoed as page_size.
page_token string no maxLength 2048 Opaque token from a previous page's next_page_token. Valid for 3 days, only with the same filters and the same caller. Omit it to start from the first page.
curl -X GET https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/members \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

▶ Run this example in the sandbox

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

Add Project 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/projects/{uuid}/members \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"principal_type": "…", "principal_id": "…", "role": "…"}'

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

Revoke Project 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/projects/{uuid}/members/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

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

Project Overview

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/projects/{uuid}/overview \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

▶ Run this example in the sandbox

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

Pending

Property Value
Authentication Authorization: Bearer (jns_ key or SSO session)
Idempotency-Key not required
Success 200
Upstream workspace-backend
Pagination paged: page_size ≤ 200 (default 50) + page_token; the body is {data, has_more, next_page_token, page_size}

Query parameters

Parameter Type Required Constraints Description
page_size integer no default 50, clamped to 200, minimum 1 Items per page. Default 50; values above 200 are clamped to 200 (never an error). The effective value is echoed as page_size.
page_token string no maxLength 2048 Opaque token from a previous page's next_page_token. Valid for 3 days, only with the same filters and the same caller. Omit it to start from the first page.
curl -X GET https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/transfers \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

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

Prepare

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

Request body

Field Type Required Constraints
all_content boolean no —
destination_project_id one of no —
items array of Item no maxItems 2000
mode string yes one of move, copy
new_project_name one of no —
operation_id string yes —
remove_source boolean no —
curl -X POST https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/transfers \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"operation_id": "…", "mode": "move"}'

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

Transfer Status

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/projects/{uuid}/transfers/{uuid} \
  -H "Authorization: Bearer $TRILOCORE_API_KEY"

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

Complete

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

Request body

Field Type Required Constraints
architecture_receipt string yes maxLength 1048576, minLength 1
curl -X POST https://api.trilocore.ai/api/v1/workspaces/projects/{uuid}/transfers/{uuid}/complete \
  -H "Authorization: Bearer $TRILOCORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"architecture_receipt": "…"}'