GET | /api/v1/skills | SkillRouter.list_skills() | List skills |
POST | /api/v1/skills | SkillRouter.create_skill() | Create a skill |
GET | /api/v1/skills/{skill_name} | SkillRouter.get_skill() | Get a skill by name |
PUT | /api/v1/skills/{skill_id} | SkillRouter.update_skill() | Update a skill |
DELETE | /api/v1/skills/{skill_id} | SkillRouter.delete_skill() | Delete a skill (soft-delete). Deleting a fork its agents had also returns agents_back_on_source and agents_without_skill |
POST | /api/v1/agents/{agent_name}/skills/{skill_id} | SkillRouter.assign_skill() | Assign a skill to one agent, optionally pinned to a version |
DELETE | /api/v1/agents/{agent_name}/skills/{skill_id} | SkillRouter.unassign_skill() | Remove a skill’s assignment from one agent (admin key) |
GET | /api/v1/skills/{skill_name}/versions | SkillRouter.list_versions() | List versions of a skill |
POST | /api/v1/skills/sync | SkillRouter.sync_skills() | Bulk-upsert skills from local files |
GET | /api/v1/skills/menu | SkillRouter.get_menu() | Get the skill list (Free tier) |
POST | /api/v1/skills/route | SkillRouter.smart_route() | Smart-route a query to the best skill (Free tier) |
GET | /api/v1/skills/{skill_name}/body | SkillRouter.get_skill_body() | Get a skill’s full body for prompt injection — the serve path behind load_skill |
GET | /api/v1/skills/export | — | Export org skills with full content. The SDK does not call it: decimalai skills add and SkillRouter.export() use the install routes below |
POST | /api/v1/skills/{skill_name}/benchmark/run | — | Run an A/B benchmark for a skill |
GET | /api/v1/skills/{skill_name}/benchmark/results | — | Get benchmark results for a skill |