Upload skill
Upload a skill archive (.skill/.zip/.tar.gz/.tgz) to create or replace a skill.
Restrictions
Usage
- Send as
multipart/form-datawith afilepart; accepted archive types are.skill,.zip,.tar.gz,.tgz, capped at 100MB (oversized files are rejected before the body is read). skill_id+replace=truetargets and overwrites that specific skill, skipping the team-authorship check since the caller already owns the row.replace=truewithoutskill_idupserts by matching skill name; omittingreplacealways creates a new skill — both paths require the caller to be allowed to author into the targetteam_id.- The response always stamps
can_edit: true. - Every call is recorded in the account audit log.
Authorizations
App key issued from the Flashduty console. Required on every public API call. Keep it secret — it grants the same access as the owning account.
Body
Multipart form for uploading a skill archive.
Skill archive (.skill / .zip / .tar.gz / .tgz). Max 100MB; oversized files are rejected before the body is read.
Team scope for the created/upserted skill: 0 = account-wide. Ignored when replacing a specific skill via skill_id.
When true, overwrite an existing skill instead of failing on a name collision — matched by skill_id if provided, otherwise by skill name.
Existing skill ID to target when replacing a specific skill (requires replace=true).
Response
Success
Standard response envelope used by every Flashduty public API. On success data contains the endpoint-specific payload and error is absent. On failure error is present and data is absent. request_id is always present and is also mirrored in the Flashcat-Request-Id response header.
Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
Error payload inside the response envelope. Present only on non-2xx responses.
An AI SRE skill — a packaged SKILL.md bundle the agent can load.