Forward API reference.
Description
Appends a new version to an existing Skill. A version is immutable after creation. The service generates version as a 16-digit Unix microsecond timestamp and updates the Skill's latest_version to point to it.
Package and upload-field rules are the same as Create a Skill. See Skill package.
Path
POST /api/v1/forward/skills/{id}/versions
Request headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PAT or SAT> |
Content-Type | Yes | multipart/form-data |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | ID of the target Skill. |
Form fields
| Field | Type | Required | Description |
|---|---|---|---|
files | file | Yes | Upload field that can appear multiple times. Supports two forms: • A single .zip archive;• A bare file tree, with one file per part and a relative path in filename (for example, customer-reply/SKILL.md or customer-reply/scripts/run.sh).Both the compressed archive and its extracted contents must be no larger than 50 MB. |
This endpoint accepts onlySee Skill package for package constraints. A package must containfiles; omitting it returns 400. The legacy singularfilefield is not supported here.
SKILL.md, have exactly one top-level directory, and use the name from SKILL.md as the directory name.
Example request
Single zip archive:
files field):
Example response
HTTP 201 Created
Response fields
The response is a Skill version object. version is the newly assigned 16-digit Unix microsecond timestamp. After creation, the Skill's latest_version points to that value; verify it with Get a Skill.
Errors
| HTTP | Type | Trigger |
|---|---|---|
| 400 | invalid_request_error | Multipart parsing failed, the package structure is invalid (for example, missing SKILL.md, multiple top-level directories, or a directory name that differs from name), or a parameter is missing. |
| 400 | skill_content_too_large | The compressed archive or its extracted contents exceed 50 MB. |
| 401 | authentication_error | The authentication token is missing or invalid. |
| 403 | permission_error | The caller cannot access the Skill. |
| 404 | not_found_error | The Skill does not exist or is not visible. |
| 413 | invalid_request_error | The request body exceeds the service limit. |
| 429 | rate_limit_error | The caller exceeded the API rate limit. |
| 500/502/503 | api_error | Forward or a dependent service failed. |