Requires authentication. All custom skills endpoints require a Case.dev API key with
skills permission scope.How It Works
Custom skills live in your organization’s namespace. When your agents search for skills via/skills/resolve, results from your custom skills are merged with curated skills in a single ranked list. If a custom skill has the same slug as a curated skill, the custom skill takes priority for your organization.
Each custom skill includes:
- Content in markdown, up to 64KB
- Vector embedding (generated automatically) for semantic search
- Tags for categorization and search boosting
- Metadata for arbitrary key-value data
- Version tracking with automatic increment on updates
- Soft-delete so deleted skills can be recreated
Create a Skill
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Skill name (max 256 chars) |
content | string | Yes | Full skill content in markdown (max 64KB) |
slug | string | No | URL-safe identifier. Auto-generated from name if omitted |
summary | string | No | Brief description (max 1000 chars) |
tags | string[] | No | Tags for categorization and search boosting |
metadata | object | No | Arbitrary key-value metadata |
Slugs are unique per organization. Reserved slugs (
resolve, custom) cannot be used. If you omit slug, one is auto-generated from the skill name.Read a Skill
Retrieve a skill by slug. For authenticated users, custom skills are checked first, then curated skills.source field indicating whether the skill is "custom" (your organization’s) or "curated" (from the open-source library).
Search Skills
Use/skills/resolve to search across both curated and custom skills. Results are ranked by relevance using semantic search, BM25 text matching, and tag boosting.
| Field | Description |
|---|---|
slug | Skill identifier |
name | Skill name |
summary | Brief description |
tags | Practice area tags |
score | Relevance score (0-1) |
source | "curated" or "custom" |
List Custom Skills
List all custom skills in your organization, with optional filtering.| Parameter | Type | Description |
|---|---|---|
limit | integer | Results per page (1-100, default 50) |
cursor | string | Cursor from previous response for pagination |
tag | string | Filter by tag |
Update a Skill
Update one or more fields. The version is automatically incremented. If you change content-related fields (name, summary, or content), the embedding is regenerated.cURL
Delete a Skill
Soft-deletes a skill. It will no longer appear in search results or be accessible by slug.Deletion frees the slug. You can create a new skill with the same slug after deleting.
Permissions
Custom skills require theskills permission scope on your API key.
| Endpoint | Permission |
|---|---|
GET /skills/resolve | skills (read) |
GET /skills/:slug | skills (read) |
GET /skills/custom | skills (read) |
POST /skills | skills (write) |
PUT /skills/:slug | skills (write) |
DELETE /skills/:slug | skills (write) |
Limits
| Limit | Value |
|---|---|
| Content size | 64KB per skill |
| Name length | 256 characters |
| Summary length | 1,000 characters |
| Tag length | 100 characters per tag |
| Slug length | 128 characters |
| Slugs per org | Unlimited |
What’s Next?
Browse Curated Skills
Explore 870+ open-source legal skills
API Reference
Full endpoint documentation
Skills Overview
Learn about the curated skills library and MCP setup
Rate Limits
Understand request limits and pricing

