Skip to main content
PUT
/
api
/
v2
/
skills
/
{name}
Update a skill
curl --request PUT \
  --url https://agp.eu.hcompany.ai/api/v2/skills/{name} \
  --header 'Authorization: Bearer <token>'
Updates an existing skill. This is a full replacement of the Skill object. The name must match the URL identifier: renames are not supported. Returns the updated Skill object.

Path parameters

name
string
required
The skill’s name (e.g. extract-table-data or myorg/web-helper). Slash-containing names are supported.

Request body

A full replacement of the Skill object. The name in the body must equal the URL identifier. Because this replaces the resource, resend a field’s current value to keep it unchanged.
{
  "name": "extract-table-data",
  "description": "Extract data from HTML tables, with CSV output support.",
  "body": "When you encounter an HTML table, extract rows into JSON or CSV based on the user request.",
  "source": "https://github.com/myorg/skills",
  "url_pattern": null
}

Examples

curl -X PUT https://agp.eu.hcompany.ai/api/v2/skills/extract-table-data \
  -H "Authorization: Bearer $H_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "extract-table-data",
    "description": "Extract data from HTML tables: updated with CSV output support.",
    "body": "When you encounter an HTML table, extract all rows into JSON or CSV format based on the user request."
  }'
PUT is a full replacement. Omitting a required field (name, description, body) returns 422. To leave a field unchanged, pass the existing value.
Response
{
  "name": "extract-table-data",
  "description": "Extract data from HTML tables: updated with CSV output support.",
  "body": "When you encounter an HTML table, extract all rows into JSON or CSV format based on the user request.",
  "source": null,
  "url_pattern": null
}

Errors

StatusCause
400The name in the body does not match the URL identifier (renames are not supported).
403The skill is reserved (h/) and you are not an H employee.
404Skill not found or you don’t have access.
422Body fails validation; common cases: empty body.