Get Skill
Retrieve a Skill by ID from your workspace
Retrieves a Skill by ID from your workspace, including metadata for every stored file.
Base URL
https://api.ajan.io/skills/v1/{skillId}Required Scopes
This endpoint requires the SKILL_API scope.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
skillId | string | Yes | UUID of the Skill to retrieve. |
Example
javascript
const axios = require("axios");
async function getSkill(skillId) {
const response = await axios.get(
`https://api.ajan.io/skills/v1/${skillId}`,
{
headers: {
Authorization: "Bearer YOUR_API_KEY"
}
}
);
console.log("Skill:", response.data.skill);
console.log("Files:", response.data.files);
}
getSkill("550e8400-e29b-41d4-a716-446655440000");Response Format
Success Response (200 OK)
typescript
{
skill: {
id: string;
name: string;
slug: string;
description: string;
instructions: string;
integrationIds: string[];
createdAt: string;
updatedAt: string;
};
files: Array<{
path: string;
sizeBytes: number;
extension: string;
hasScript: boolean;
sha256: string;
}>;
}The files array lists stored files without contents. Use Get Skill File to read a supported text file.
Error Handling
| Status Code | Description |
|---|---|
| 400 | Invalid Skill ID format |
| 401 | Invalid or missing API key |
| 403 | Missing SKILL_API scope or Skills product access |
| 404 | Skill not found or not accessible |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
OpenAPI
openapi: 3.0.0
info:
title: ajan API
version: 3.0.0
servers:
- url: https://api.ajan.io
description: Production
security:
- bearerAuth: []
paths:
/skills/v1/{skillId}:
get:
tags:
- Skills
summary: Get a Skill
description: >-
Retrieves a Skill by ID from your workspace, including metadata for
every stored file.
operationId: getSkill
parameters:
- $ref: '#/components/parameters/SkillId'
responses:
'200':
description: Skill returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/GetSkillResponse'
'400':
description: Invalid Skill ID
'401':
description: Invalid or missing API key
'403':
description: Missing required scope or access
'404':
description: Skill not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
components:
parameters:
SkillId:
name: skillId
in: path
required: true
description: UUID of the Skill.
schema:
type: string
format: uuid
schemas:
GetSkillResponse:
type: object
required:
- skill
- files
properties:
skill:
$ref: '#/components/schemas/Skill'
files:
type: array
description: >-
Stored Skill files, ordered by path. Includes text and binary files.
Does not include file contents.
items:
$ref: '#/components/schemas/SkillFile'
Skill:
type: object
required:
- id
- name
- slug
- description
- instructions
- integrationIds
- createdAt
- updatedAt
properties:
id:
type: string
format: uuid
description: Unique identifier for the Skill.
name:
type: string
maxLength: 64
description: Skill name.
slug:
type: string
maxLength: 100
pattern: ^[a-z0-9-]+$
description: Stable Skill slug.
description:
type: string
maxLength: 1024
description: Description used to explain when the Skill should apply.
instructions:
type: string
maxLength: 50000
description: Skill instructions.
integrationIds:
type: array
items:
type: string
format: uuid
description: >-
Integration IDs attached to the Skill. Each integration must be
enabled in your workspace.
createdAt:
type: string
format: date-time
description: ISO 8601 timestamp for Skill creation.
updatedAt:
type: string
format: date-time
description: ISO 8601 timestamp for the latest Skill update.
SkillFile:
type: object
required:
- path
- sizeBytes
- extension
- hasScript
- sha256
properties:
path:
type: string
description: Relative path inside the Skill.
sizeBytes:
type: integer
description: File size in bytes.
extension:
type: string
description: Lowercase file extension, including the leading dot.
hasScript:
type: boolean
description: Whether the file is a script file (`.py`, `.sh`, `.js`, or `.ts`).
sha256:
type: string
description: Lowercase SHA-256 hash of the original file bytes.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API Key
description: API key as Bearer token. Format "Bearer YOUR_API_KEY"