Hub REST API
Links
The Links operations of the Hub REST API (2 operations).
For BuildersOpen-source podSynap CloudGenerated from Synap-core/backend@c31e261ab (main)
GET
bearerAuthheader
AuthorizationBearer <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.
type*stringValue in
"playbook""tool""skill""command""session""source""entity""channel""participant""automation""project""secret""capability""agent""workspace""document""track""profile"id*stringLength
1 <= lengthThe edges touching this node
application/json- response
links*array<>curl -X GET 'https://pod.example.com/api/hub/links?type=playbook&id=string'Example Response
{ "links": [ { "property1": null, "property2": null } ]}POST
bearerAuthheader
AuthorizationBearer <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.
application/json- body
userId?stringworkspaceId?stringFormat
uuidfromType*stringValue in
"playbook""tool""skill""command""session""source""entity""channel""participant""automation""project""secret""capability""agent""workspace""document""track""profile"fromId*stringLength
1 <= lengthtoType*stringValue in
"playbook""tool""skill""command""session""source""entity""channel""participant""automation""project""secret""capability""agent""workspace""document""track""profile"toId*stringLength
1 <= lengthlinkType*stringValue in
"grants""requires""instantiated_from""used""targets""produced""member_of""feeds""promoted_to""provided_by""about""documents""concerns""activates""spawned_from""blocked_by""replaces""uses""dispatched_via""assigned_to"metadata?agentUserId?stringFormat
uuidreasoning?stringCreated link, or a proposal when governance defers. For blocked_by, link is always null (there is no row to hand back through the dedicated producer) and blockedBy.inserted distinguishes a new edge (1) from an already-existing one (0).
application/json- response
status*string[key: string]?unknowncurl -X POST 'https://pod.example.com/api/hub/links' \ -H 'Content-Type: application/json' \ -d '{ "fromType": "playbook", "fromId": "string", "toType": "playbook", "toId": "string", "linkType": "grants"}'Example Response
{ "status": "string", "property1": null, "property2": null}