Start the export
CallPOST /brands/{id}/exports to start or reuse an export for the active Skill:
202 Accepted with the immutable skillId selected for the export:
Wait for the archive
SetSKILL_ID to the returned skillId. Poll that exact Skill with GET /brands/{id}/exports/{skillId} until the status is ready or failed:
Use the exported Skill
Download the ZIP before the signed URL expires. Preserve the extracted folder and its relative paths. Start withSKILL.md, which routes the agent to the supporting guidance and assets it needs.
If a newer Skill becomes active while the export is being prepared, the status request stays pinned to the returned skillId; request another export to select the new active Skill.
Handle an unavailable export
If the status isfailed, check failure.retryable. When it is true, repeat the POST request. A non-retryable failure means the same Skill cannot be exported unchanged. Export failure affects the download only; the ready brand remains usable.
If the status request returns 404 BRAND_EXPORT_NOT_FOUND, start an export and poll the skillId returned by the POST request.
A 409 BRAND_SKILL_UNAVAILABLE response means there is no active exportable Skill. Wait if GET /brands/{id} reports status: "analyzing"; otherwise use a brand with an active Skill before retrying.