> API Documentation
Complete reference for the AI Toolkit REST endpoints and CLI commands.
Authentication
The API supports two authentication methods: JWT Bearer Token (for web sessions) and API Token (for CLI and integrations).
Base URL
Auth
Authentication and token management endpoints.
/api/v1/auth/cli-tokenJWTGenerate an API token for CLI authentication.
namestringrequiredDescriptive token name.{ "token": "aitk_xxx...", "id": "uuid" }/api/v1/auth/verifyAPI TokenVerify if an API token is valid.
{ "valid": true, "user_id": "uuid" }Artifacts
Endpoints to create, search and manage artifacts.
/api/v1/artifactsList public artifacts with pagination.
pagenumberPage number (default: 1).limitnumberItems per page (default: 20, max: 100).typestringFilter by type (skill, mcp, template, config, hook).{ "data": [Artifact], "total": number, "page": number }/api/v1/artifacts/searchFull-text search for artifacts by query.
qstringrequiredSearch term.typestringFilter by type (skill, mcp, template, config, hook).toolstringFilter by target tool.{ "data": [Artifact], "total": number }/api/v1/artifactsJWTCreate a new artifact in the registry.
namestringrequiredArtifact name.typestringrequiredArtifact type (skill, mcp, template, config, hook).descriptionstringrequiredArtifact or team description.visibilitystringVisibility (public, private, team). Default: public.keywordsstring[]Keywords for search.tool_targetsstring[]Compatible tools.{ "data": Artifact }/api/v1/artifacts/:scope/:nameGet details of a specific artifact.
{ "data": Artifact }Versions
Endpoints to publish, download and query versions.
/api/v1/artifacts/:scope/:name/versionsJWTPublish new version with tarball (multipart/form-data).
versionstringrequiredSemver version (e.g., 1.0.0).tarballFilerequiredTarball file (.tgz) with version content.changelogstringChangelog for this version.{ "data": ArtifactVersion }/api/v1/artifacts/:scope/:name/versions/:version/downloadDownload tarball of a specific version.
application/gzip (tarball)/api/v1/artifacts/:scope/:name/statsGet artifact download statistics.
{ "total_downloads": number, "weekly": [...] }Teams
Endpoints to create and manage teams.
/api/v1/teamsJWTList teams of the authenticated user.
{ "data": [Team] }/api/v1/teamsJWTCreate a new team.
slugstringrequiredUnique team identifier.namestringrequiredTeam display name.descriptionstringArtifact or team description.{ "data": Team }/api/v1/teams/:slugJWTGet details of a team.
{ "data": Team }/api/v1/teams/:slug/membersJWTAdd a member to a team.
usernamestringrequiredMember username.rolestringMember role (admin, member). Default: member.{ "data": TeamMember }CLI (aitk)
The CLI lets you manage artifacts directly from the terminal. Install with npx or globally.
$ aitk loginAuthenticate via browser OAuth.
$ aitk search "query"Search artifacts in the registry.
$ aitk install scope/nameInstall artifact into project.
$ aitk publishPublish artifact to the registry.
$ aitk initInitialize project or apply template.
$ aitk listList installed artifacts.
$ aitk updateUpdate installed artifacts.
$ aitk team create slugManage teams.
Shell Autocompletion
eval "$(aitk completions bash)"eval "$(aitk completions zsh)"aitk completions fish | sourceCI/CD — GitHub Action
Automate artifact publishing with the reusable GitHub Action.
- 1.Generate an API Token in the Dashboard
- 2.Add it as AITK_API_TOKEN secret in your repository
- 3.Create aitk-artifact.json in your artifact root
- 4.Add the workflow to your repository
api-tokenstringrequiredAPI token (required). Generate at Dashboard → API Tokens.directorystringDirectory containing aitk-artifact.json.accessstringArtifact visibility (public, private, team).teamstringTeam slug (required for access=team).registry-urlstringRegistry URL (default: https://ai-toolkit-henna.vercel.app).artifact-slugstringFull slug of published artifact (scope/name@version).