SynapSynapDocs
Hub REST API

Agent Skills

The Agent Skills operations of the Hub REST API (9 operations).

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

List all agent skills

GET
/agent-skills/list

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.

Query Parameters

topic?string
q?string
tag?string
workspaceId?string
Formatuuid
system?string

'true' to list only seeded system/* instruction skills

limit?string
offset?string

Response Body

Skills

application/json
  1. response
skills*array<>
total*number
Example Request
curl -X GET 'https://pod.example.com/api/hub/agent-skills/list'
Example Response
{  "skills": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "slug": "string",      "name": "string",      "description": "string",      "topics": [        "string"      ],      "body": "string",      "source": "string",      "author": "string",      "version": "string",      "tags": [        "string"      ],      "teachesTools": [        "string"      ],      "skillGroup": "string",      "alwaysOn": true,      "createdAt": "string",      "updatedAt": "string",      "match": {        "terms": [          "string"        ],        "fields": [          "string"        ]      }    }  ],  "total": 0}
GET
/agent-skills/get

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.

Query Parameters

slug*string
Length1 <= length
workspaceId?string
Formatuuid

Response Body

Skill

application/json
  1. response
id*string
Formatuuid
slug*string
name*string
description*string|null
topics*array<string>
body*string|null
source*string|null
author*string|null
version*string|null
tags*array<string>
teachesTools*array<string>
skillGroup*string|null
alwaysOn*boolean
createdAt*string
updatedAt*string
match?
Example Request
curl -X GET 'https://pod.example.com/api/hub/agent-skills/get?slug=string'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "slug": "string",  "name": "string",  "description": "string",  "topics": [    "string"  ],  "body": "string",  "source": "string",  "author": "string",  "version": "string",  "tags": [    "string"  ],  "teachesTools": [    "string"  ],  "skillGroup": "string",  "alwaysOn": true,  "createdAt": "string",  "updatedAt": "string",  "match": {    "terms": [      "string"    ],    "fields": [      "string"    ]  }}

Create a agent skill

POST
/agent-skills/create

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
slug*string
Length1 <= length <= 100
name*string
Length1 <= length <= 200
description?string
Lengthlength <= 500
topics?array<string>
body*string
Length1 <= length
source?string
author?string
version?string
tags?array<string>

Response Body

Created skill

application/json
  1. response
id*string
Formatuuid
slug*string
name*string
description*string|null
topics*array<string>
body*string|null
source*string|null
author*string|null
version*string|null
tags*array<string>
teachesTools*array<string>
skillGroup*string|null
alwaysOn*boolean
createdAt*string
updatedAt*string
match?
Example Request
curl -X POST 'https://pod.example.com/api/hub/agent-skills/create' \  -H 'Content-Type: application/json' \  -d '{  "slug": "string",  "name": "string",  "body": "string"}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "slug": "string",  "name": "string",  "description": "string",  "topics": [    "string"  ],  "body": "string",  "source": "string",  "author": "string",  "version": "string",  "tags": [    "string"  ],  "teachesTools": [    "string"  ],  "skillGroup": "string",  "alwaysOn": true,  "createdAt": "string",  "updatedAt": "string",  "match": {    "terms": [      "string"    ],    "fields": [      "string"    ]  }}
PATCH
/agent-skills/update

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.

Query Parameters

slug*string
Length1 <= length

Request Body

application/json
  1. body
name?string
Length1 <= length <= 200
description?string
Lengthlength <= 500
body?string
Length1 <= length

Response Body

Updated skill

application/json
  1. response
id*string
Formatuuid
slug*string
name*string
description*string|null
topics*array<string>
body*string|null
source*string|null
author*string|null
version*string|null
tags*array<string>
teachesTools*array<string>
skillGroup*string|null
alwaysOn*boolean
createdAt*string
updatedAt*string
match?
Example Request
curl -X PATCH 'https://pod.example.com/api/hub/agent-skills/update?slug=string' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "slug": "string",  "name": "string",  "description": "string",  "topics": [    "string"  ],  "body": "string",  "source": "string",  "author": "string",  "version": "string",  "tags": [    "string"  ],  "teachesTools": [    "string"  ],  "skillGroup": "string",  "alwaysOn": true,  "createdAt": "string",  "updatedAt": "string",  "match": {    "terms": [      "string"    ],    "fields": [      "string"    ]  }}
DELETE
/agent-skills/delete

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.

Query Parameters

id*string
Formatuuid

Response Body

Deleted

Example Request
curl -X DELETE 'https://pod.example.com/api/hub/agent-skills/delete?id=497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
Empty
GET
/agent-skills/executable

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.

Query Parameters

userId?string
workspaceId?string
status?string
Value in"active""inactive""error""all"
approved?string
Value in"true""false"

Response Body

Executable skills

application/json
  1. response
[index: integer]?
Example Request
curl -X GET 'https://pod.example.com/api/hub/agent-skills/executable'
Example Response
[  {    "id": "string",    "name": "string",    "description": "string",    "code": "string",    "body": "string",    "parameters": {      "property1": null,      "property2": null    },    "category": "action",    "status": "active",    "approved": true,    "workspaceId": "string",    "createdAt": "string",    "updatedAt": "string",    "property1": null,    "property2": null  }]
POST
/agent-skills/executable

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
name*string
description?string
code*string
parameters?
category?SkillCategory
Value in"action""context""utility""custom"
workspaceId?string

Response Body

Created executable skill

application/json
  1. response
id*string
name*string
description?string|null
code?string
body*string|null
parameters?
category?SkillCategory
Value in"action""context""utility""custom"
status?string
Value in"active""inactive""error"
approved?boolean
workspaceId?string|null
createdAt?string|
updatedAt?string|
[key: string]?unknown
Example Request
curl -X POST 'https://pod.example.com/api/hub/agent-skills/executable' \  -H 'Content-Type: application/json' \  -d '{  "userId": "string",  "name": "string",  "code": "string"}'
Example Response
{  "id": "string",  "name": "string",  "description": "string",  "code": "string",  "body": "string",  "parameters": {    "property1": null,    "property2": null  },  "category": "action",  "status": "active",  "approved": true,  "workspaceId": "string",  "createdAt": "string",  "updatedAt": "string",  "property1": null,  "property2": null}
GET
/agent-skills/executable/{id}

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.

Path Parameters

id*string

Query Parameters

userId?string

Response Body

Executable skill

application/json
  1. response
id*string
name*string
description?string|null
code?string
body*string|null
parameters?
category?SkillCategory
Value in"action""context""utility""custom"
status?string
Value in"active""inactive""error"
approved?boolean
workspaceId?string|null
createdAt?string|
updatedAt?string|
[key: string]?unknown
Example Request
curl -X GET 'https://pod.example.com/api/hub/agent-skills/executable/string'
Example Response
{  "id": "string",  "name": "string",  "description": "string",  "code": "string",  "body": "string",  "parameters": {    "property1": null,    "property2": null  },  "category": "action",  "status": "active",  "approved": true,  "workspaceId": "string",  "createdAt": "string",  "updatedAt": "string",  "property1": null,  "property2": null}
POST
/agent-skills/import

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
Length1 <= length
skill*
documents?array<>
Default[]

Response Body

Imported skill + documents

application/json
  1. response
skill*
documents*array<>
Example Request
curl -X POST 'https://pod.example.com/api/hub/agent-skills/import' \  -H 'Content-Type: application/json' \  -d '{  "userId": "string",  "skill": {    "name": "string",    "slug": "string"  }}'
Example Response
{  "skill": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "slug": "string",    "name": "string",    "description": "string",    "topics": [      "string"    ],    "body": "string",    "source": "string",    "author": "string",    "version": "string",    "tags": [      "string"    ],    "teachesTools": [      "string"    ],    "skillGroup": "string",    "alwaysOn": true,    "createdAt": "string",    "updatedAt": "string",    "match": {      "terms": [        "string"      ],      "fields": [        "string"      ]    }  },  "documents": [    {      "id": "string",      "title": "string"    }  ]}