Create a workspace custom agent skill
Creates a shared workspace skill. Attach the returned skill id to native custom agents with config.workspaceSkillIds on /agents/{id}/native, or to Leadtime-managed Claude agents with config.managedAgent.skills on /agents/{id}/claude.
POST
/agents/skillsAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:writeor
AuthorizationBearer token (JWT) · headerrequiredQuery parameters
fieldsToReturnstringComma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestringAdvanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
compactfullHeader parameters
LT-Response-ShapestringAdvanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
fullRequest body
requiredapplication/jsonbodystringrequiredMarkdown instructions loaded when the skill is activated by a native custom agent or Leadtime-managed hosted agent.
descriptionstringrequiredShort description used for native and hosted agent skill discovery. Maximum 1024 characters.
displayTitlestringrequiredHuman-readable shared workspace agent skill title shown in Leadtime.
namestringrequiredShared workspace agent skill slug used in SKILL.md frontmatter. Lowercase letters, numbers, and hyphens only.
Responses
201
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X POST "https://leadtime.app/api/public/agents/skills" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"body": "string",
"description": "string",
"displayTitle": "string",
"name": "invoice-analysis"
}'const response = await fetch("https://leadtime.app/api/public/agents/skills", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"body": "string",
"description": "string",
"displayTitle": "string",
"name": "invoice-analysis"
})
});import requests
response = requests.post(
"https://leadtime.app/api/public/agents/skills",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"body": "string",
"description": "string",
"displayTitle": "string",
"name": "invoice-analysis"
},
)Response
No example response.
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions