List Skills
Retrieve Skills in your workspace
Returns Skills in your workspace. Use query parameters to paginate, search, or filter by slug.
Base URL
https://api.ajan.io/skills/v1Required Scopes
This endpoint requires the SKILL_API scope.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of Skills to return. Default: 50. Maximum: 250. |
cursor | string | No | Cursor from the previous response for pagination. |
query | string | No | Search query for matching Skills. |
slug | string | No | Filter by Skill slug. Must use lowercase letters, numbers, and dashes. |
Example
javascript
const axios = require("axios");
async function listSkills() {
const response = await axios.get("https://api.ajan.io/skills/v1", {
params: {
limit: 25,
query: "support"
},
headers: {
Authorization: "Bearer YOUR_API_KEY"
}
});
console.log("Skills:", response.data.skills);
return response.data.nextCursor;
}
listSkills();Response Format
Success Response (200 OK)
typescript
{
skills: Array<{
id: string;
name: string;
slug: string;
description: string;
instructions: string;
integrationIds: string[];
createdAt: string;
updatedAt: string;
}>;
nextCursor?: string;
}Example Response
json
{
"skills": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Support Reply Style",
"slug": "support-reply-style",
"description": "Applies the support team's tone and escalation rules.",
"instructions": "Write concise replies, include the next best action, and escalate billing issues to the account owner.",
"integrationIds": [],
"createdAt": "2026-07-06T10:30:00.000Z",
"updatedAt": "2026-07-06T10:30:00.000Z"
}
],
"nextCursor": "550e8400-e29b-41d4-a716-446655440000"
}Error Handling
| Status Code | Description |
|---|---|
| 400 | Invalid query parameter |
| 401 | Invalid or missing API key |
| 403 | Missing SKILL_API scope or Skills product access |
| 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:
get:
tags:
- Skills
summary: List Skills
description: Returns Skills in your workspace.
operationId: listSkills
parameters:
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 250
default: 50
description: Number of Skills to return.
- name: cursor
in: query
required: false
schema:
type: string
format: uuid
description: Cursor from the previous response for pagination.
- name: query
in: query
required: false
schema:
type: string
description: Search query for matching Skills.
- name: slug
in: query
required: false
schema:
type: string
maxLength: 100
pattern: ^[a-z0-9-]+$
description: Filter by Skill slug.
responses:
'200':
description: Skills returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ListSkillsResponse'
'400':
description: Invalid query parameter
'401':
description: Invalid or missing API key
'403':
description: Missing required scope or access
'429':
description: Rate limit exceeded
'500':
description: Internal server error
components:
schemas:
ListSkillsResponse:
type: object
required:
- skills
properties:
skills:
type: array
items:
$ref: '#/components/schemas/Skill'
nextCursor:
type: string
format: uuid
description: Cursor for the next page, if more results are available.
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.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API Key
description: API key as Bearer token. Format "Bearer YOUR_API_KEY"