Skills
List skills for a workspace with pagination. Optionally filter by enabled status. Requires Skill.view permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
[]50Successful Response
Missing or invalid API key.
Insufficient permissions.
Validation Error
Rate limited.
GET /v1/{workspace_id}/skills HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"description": "text",
"system_prompt": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"result_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"model": "text",
"max_tokens": 1,
"max_result_chars": 1,
"max_input_tokens": 1,
"timeout_s": 1,
"thinking_effort": "low",
"temperature": 1,
"top_p": 1,
"enable_caching": true,
"enable_citations": true,
"use_structured_output": true,
"integration_tools": [
{
"integration": "text",
"endpoint": "text",
"skill_input_bindings": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"static_tools": [
{
"name": "text",
"description": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"enabled": true,
"max_agent_turns": 1,
"checkpoint_enabled": true,
"approval_required": true,
"write_kind": "booking",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}
],
"has_more": true,
"continuation_token": null
}Create a new companion agent skill in a workspace. Requires Skill.create permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
^[a-z0-9][a-z0-9_-]*[a-z0-9]$claude-sonnet-5-54096200060Anthropic sampling temperature (0-1). Ignored on models that reject sampling params (Opus 4.7+/Fable, which 400 otherwise). Set at most one of temperature/top_p -- Claude 4+ rejects both; the runtime keeps temperature and drops top_p.
Anthropic nucleus sampling (0-1). Ignored on sampling-param-rejecting models; see temperature.
truefalsefalsetrue20truefalseWhat this skill's writes do, for its sub-tool calls to an endpoint whose kind varies
(one generic GraphQL endpoint that books, cancels and reads). Sub-tool endpoints with their
own kind write that kind whatever the skill says. Leave unset when unknown.
Successful Response
What this skill's writes do through an endpoint whose kind varies. Null when undeclared.
Missing or invalid API key.
Insufficient permissions.
Workspace not found.
Skill slug already taken or conflicts with a built-in tool name.
Invalid request body.
Rate limited.
POST /v1/{workspace_id}/skills HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 755
{
"slug": "text",
"name": "text",
"description": "text",
"system_prompt": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"result_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"model": "claude-sonnet-5-5",
"max_tokens": 4096,
"max_result_chars": 2000,
"max_input_tokens": 1,
"timeout_s": 60,
"thinking_effort": "low",
"temperature": 1,
"top_p": 1,
"enable_caching": true,
"enable_citations": false,
"use_structured_output": false,
"integration_tools": [
{
"integration": "text",
"endpoint": "text",
"skill_input_bindings": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"static_tools": [
{
"name": "text",
"description": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"enabled": true,
"max_agent_turns": 20,
"checkpoint_enabled": true,
"approval_required": false,
"write_kind": "booking"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"description": "text",
"system_prompt": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"result_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"model": "text",
"max_tokens": 1,
"max_result_chars": 1,
"max_input_tokens": 1,
"timeout_s": 1,
"thinking_effort": "low",
"temperature": 1,
"top_p": 1,
"enable_caching": true,
"enable_citations": true,
"use_structured_output": true,
"integration_tools": [
{
"integration": "text",
"endpoint": "text",
"skill_input_bindings": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"static_tools": [
{
"name": "text",
"description": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"enabled": true,
"max_agent_turns": 1,
"checkpoint_enabled": true,
"approval_required": true,
"write_kind": "booking",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Retrieve a skill by ID. Requires Skill.view permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
What this skill's writes do through an endpoint whose kind varies. Null when undeclared.
Missing or invalid API key.
Insufficient permissions.
Skill not found.
Validation Error
Rate limited.
GET /v1/{workspace_id}/skills/{skill_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"description": "text",
"system_prompt": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"result_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"model": "text",
"max_tokens": 1,
"max_result_chars": 1,
"max_input_tokens": 1,
"timeout_s": 1,
"thinking_effort": "low",
"temperature": 1,
"top_p": 1,
"enable_caching": true,
"enable_citations": true,
"use_structured_output": true,
"integration_tools": [
{
"integration": "text",
"endpoint": "text",
"skill_input_bindings": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"static_tools": [
{
"name": "text",
"description": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"enabled": true,
"max_agent_turns": 1,
"checkpoint_enabled": true,
"approval_required": true,
"write_kind": "booking",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Update a skill's configuration in place.
Field semantics. Omitted fields and explicit null are treated identically — both leave the existing value unchanged. Empty-string is rejected with 422 for fields that carry a minLength bound (model). Clearing a previously-set optional value back to null is not currently supported via PUT.
Requires Skill.update permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Anthropic sampling temperature (0-1); see CreateSkillRequest. null/absent leaves it unchanged.
Anthropic nucleus sampling (0-1); see CreateSkillRequest. null/absent leaves it unchanged.
What this skill's writes do; see CreateSkillRequest. null/absent leaves it unchanged.
Successful Response
What this skill's writes do through an endpoint whose kind varies. Null when undeclared.
Missing or invalid API key.
Insufficient permissions.
Skill not found.
Invalid request body.
Rate limited.
PUT /v1/{workspace_id}/skills/{skill_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 717
{
"name": "text",
"description": "text",
"system_prompt": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"result_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"model": "text",
"max_tokens": 1,
"max_result_chars": 1,
"max_input_tokens": 1,
"timeout_s": 1,
"thinking_effort": "low",
"temperature": 1,
"top_p": 1,
"enable_caching": true,
"enable_citations": true,
"use_structured_output": true,
"integration_tools": [
{
"integration": "text",
"endpoint": "text",
"skill_input_bindings": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"static_tools": [
{
"name": "text",
"description": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"enabled": true,
"max_agent_turns": 1,
"checkpoint_enabled": true,
"approval_required": true,
"write_kind": "booking"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"description": "text",
"system_prompt": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"result_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"model": "text",
"max_tokens": 1,
"max_result_chars": 1,
"max_input_tokens": 1,
"timeout_s": 1,
"thinking_effort": "low",
"temperature": 1,
"top_p": 1,
"enable_caching": true,
"enable_citations": true,
"use_structured_output": true,
"integration_tools": [
{
"integration": "text",
"endpoint": "text",
"skill_input_bindings": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"static_tools": [
{
"name": "text",
"description": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"enabled": true,
"max_agent_turns": 1,
"checkpoint_enabled": true,
"approval_required": true,
"write_kind": "booking",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Delete a skill.
Not idempotent. A second concurrent caller racing the same delete will receive 404 Not Found once the row is gone — clients should treat 404 as success-equivalent for cleanup workflows. Requires Skill.delete permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
No content
Missing or invalid API key.
Insufficient permissions.
Skill not found.
Skill is referenced by one or more context graphs.
Validation Error
Rate limited.
DELETE /v1/{workspace_id}/skills/{skill_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Find all HSMs and services that reference this skill's slug in their latest version's tool_call_specs. Requires Skill.view permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Missing or invalid API key.
Insufficient permissions.
Skill not found.
Validation Error
Rate limited.
GET /v1/{workspace_id}/skills/{skill_id}/references HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"skill_id": "123e4567-e89b-12d3-a456-426614174000",
"skill_slug": "text",
"context_graph_references": [
{
"context_graph_id": "123e4567-e89b-12d3-a456-426614174000",
"context_graph_name": "text",
"version": 1,
"states": [
{
"state_name": "text",
"tool_spec_category": "text"
}
]
}
],
"service_references": [
"123e4567-e89b-12d3-a456-426614174000"
]
}Execute a skill in isolation with the given input.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Final result text produced by the skill
Total execution time in milliseconds
Number of input tokens consumed
Number of output tokens generated
Number of tokens served from cache
Number of agent reasoning rounds executed
Error message if the skill execution failed
Missing or invalid API key.
Insufficient permissions.
Skill not found.
Validation Error
POST /v1/{workspace_id}/skills/{skill_id}/test HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 103
{
"input": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"static_tool_mocks": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}{
"result": "text",
"duration_ms": 1,
"input_tokens": 1,
"output_tokens": 1,
"cached_tokens": 1,
"rounds": 1,
"sub_tool_logs": [
{
"tool_name": "text",
"input": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"output": "text",
"duration_ms": 1,
"succeeded": true,
"round": 1
}
],
"error": "text"
}Last updated
Was this helpful?

