Import a Catalog Skill
Imports a Catalog Skill into your organization. The import makes a Skill from the name, the description and the body of the Catalog Skill, and sets source. Your organization owns the Skill, and can edit it like any other Skill. Send {} to keep the slug of the Catalog Skill. Your organization holds at most one import of each Catalog Skill: a second import answers 409 with error=already_imported. If a Skill of your organization holds the slug, the answer is 409 with error=slug_conflict: send another slug.
/context/skill-catalog/{catalogSlug}/importAuthorizationBearer token · headerrequiredSend Authorization: Bearer <credential>.
Use an API key (acr_…), from the AdCrunch console under Settings → API keys.
The credential names the organization, and no operation takes an organization parameter.
See https://docs.adcrunch.dev/api/authentication.
catalogSlugstringrequiredapplication/jsonslugstringOptional slug for the new Skill, normalized to kebab-case. It defaults to the slug of the Catalog Skill. Send one when a Skill of your organization holds that slug.
The Skill as the import made it, at revision 1, with its source.
bodystringrequiredThe agent instructions themselves — the SKILL.md-equivalent, in markdown.
createdAtnumberrequiredMilliseconds since the Unix epoch, UTC.
createdBystringrequireddescriptionstringrequiredidstringrequirednamestringrequiredrevisionnumberrequiredIncrements on every write. Send it back as base_revision to edit; a stale one answers 409.
slugstringrequiredsourceobject | nullrequiredThe Catalog Skill and the version that this Skill was imported from. It is null for a Skill that your organization wrote. An edit keeps it.
Show propertiesHide properties
slugstringrequiredThe slug of the Catalog Skill that the Skill was imported from.
versionstringrequiredThe version of the Catalog Skill that the Skill was last imported from, YYYY-MM-DD.
updatedAtnumber | nullrequiredMilliseconds since the Unix epoch, UTC.
The request does not match the schema of this operation: a field is missing or has the wrong type, or the body is not valid JSON. error is invalid_request, and issues names each field. Nothing was changed.
issuesobject[]requiredOne entry for each field that does not match.
Show propertiesHide properties
objectinstringrequiredThe part of the request that holds the field.
bodycookieheadersparamsquerymessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
pathstringrequiredA JSON Pointer into that part of the request, such as /filename. An empty string is the whole part.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
invalid_requestmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
No API key, or one that does not resolve. See the security scheme. error is unauthorized.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
unauthorizedmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
The caller does not hold skill:write. error is forbidden.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
forbiddenmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
No Catalog Skill with that slug. error is not_found.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
messagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
Two different conflicts share this status, and error tells them apart. already_imported means that your organization holds an import of this Catalog Skill: slug names that Skill. slug_conflict means that another Skill holds the slug: send another slug.
slugstringrequiredThe slug of the Skill that holds the live import.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
already_importedmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
slugstringrequiredThe slug that is already taken.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
slug_conflictmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
The slug contains no letter or digit. error is invalid_slug.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
messagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.