SynapSynapDocs
Hub REST API

Capture

The Capture operations of the Hub REST API (3 operations).

For BuildersOpen-source podSynap CloudGenerated from Synap-core/backend@c31e261ab (main)
POST
/capture/cluster-tabs

Authorization

bearerAuth
headerAuthorizationBearer <API key>

Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.

Request Body

application/json
  1. body
tabs*array<>

Response Body

Tab clusters

application/json
  1. response
clusters*array<>
Example Request
curl -X POST 'https://pod.example.com/api/hub/capture/cluster-tabs' \  -H 'Content-Type: application/json' \  -d '{  "tabs": [    {      "url": "string",      "title": "string"    }  ]}'
Example Response
{  "clusters": [    {      "name": "string",      "icon": "string",      "tabs": [        {          "url": "string",          "title": "string",          "favIconUrl": "string",          "tabId": 0,          "windowId": 0,          "property1": null,          "property2": null        }      ]    }  ]}
POST
/capture/structure

Authorization

bearerAuth
headerAuthorizationBearer <API key>

Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.

Request Body

application/json
  1. body
userId?string
text?string
Length1 <= length <= 8000
file?
url?string
Formaturi
html?string
Lengthlength <= 50000
context?string
instructions?string
Lengthlength <= 2000
workspaceId?string
Formatuuid
previousEntities?array<>

Response Body

Structured entity proposals

application/json
  1. response
proposals?array<>
relations?array<>
followUp?unknown
targetWorkspaceId?string|null
targetWorkspaceName?string|null
targetWorkspaceReason?string|null
targetWorkspaceConfidence?number|null
targetProjectId?string|null
targetProjectReason?string|null
targetProjectConfidence?number|null
targetProjectOutcome?|
Value in"not_offered""selected""declined""unstated"null
placement?
degraded?boolean
degradedReason?string
extraction?
status?string
degradedMessage?string
degradedRetryable?boolean
salvagedEntities?array<>
nextStep?string
pendingQuestion?unknown
[key: string]?unknown
Example Request
curl -X POST 'https://pod.example.com/api/hub/capture/structure' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "proposals": [    {      "property1": null,      "property2": null    }  ],  "relations": [    {      "property1": null,      "property2": null    }  ],  "followUp": null,  "targetWorkspaceId": "string",  "targetWorkspaceName": "string",  "targetWorkspaceReason": "string",  "targetWorkspaceConfidence": 0,  "targetProjectId": "string",  "targetProjectReason": "string",  "targetProjectConfidence": 0,  "targetProjectOutcome": "not_offered",  "placement": {    "workspaceId": "string",    "workspaceName": "string",    "deterministic": true,    "suggestion": {      "workspaceId": "string",      "workspaceName": "string",      "reason": "string",      "alternatives": [        {          "workspaceId": "string",          "workspaceName": "string",          "weight": 0        }      ]    }  },  "degraded": true,  "degradedReason": "string",  "extraction": {    "kind": "string",    "extractor": "string",    "metadata": {      "property1": null,      "property2": null    },    "warnings": [      "string"    ],    "text": "string",    "textTruncated": true,    "degraded": true,    "degradedReason": "string"  },  "status": "string",  "degradedMessage": "string",  "degradedRetryable": true,  "salvagedEntities": [    {      "property1": null,      "property2": null    }  ],  "nextStep": "string",  "pendingQuestion": null,  "property1": null,  "property2": null}
POST
/capture/execute

Authorization

bearerAuth
headerAuthorizationBearer <API key>

Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.

Request Body

application/json
  1. body
userId?string
workspaceId?string
Formatuuid
projectId?|
Formatuuid
entities*array<>
relations?array<>
targetWorkspaceId?|
Formatuuid
keepRaw?boolean
file?
idempotencyKey?string
Lengthlength <= 200
workspaceRouting?string
Value in"auto""ask""locked"
aiWorkspaceId?|
Formatuuid
aiWorkspaceConfidence?number|null
aiWorkspaceReason?string|null
aiWorkspaceDecision?|null
workspaceChoice?string
Value in"accepted""changed""removed""ignored"
aiProjectId?|
Formatuuid
aiProjectConfidence?number|null
aiProjectReason?string|null
sessionId?string
Formatuuid
intentText?string
Lengthlength <= 4000

Response Body

Created entities + relations

application/json
  1. response
[key: string]?unknown
Example Request
curl -X POST 'https://pod.example.com/api/hub/capture/execute' \  -H 'Content-Type: application/json' \  -d '{  "entities": [    {      "tempId": "string",      "profileSlug": "string",      "title": "string"    }  ]}'
Example Response
{  "property1": null,  "property2": null}