Cognee Skills API
Skill management endpoints for ingesting, listing, retrieving, and deleting dataset skills, plus read-only retrieval of improvement proposals.
Skill management endpoints for ingesting, listing, retrieving, and deleting dataset skills, plus read-only retrieval of improvement proposals.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cognee:cognee-skills-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cognee Skills API
description: Cognee API with Bearer token and Cookie auth
version: 1.0.0
servers:
- url: https://{tenant}.aws.cognee.ai
description: 'Cognee Cloud: your tenant pod, named in the platform.cognee.ai dashboard'
variables:
tenant:
default: your-tenant
description: Your tenant name, shown in the Cognee Cloud dashboard
- url: http://localhost:8000
description: 'Self-hosted: a locally running cognee server'
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: Skills
description: Skill management endpoints for ingesting, listing, retrieving, and deleting dataset skills, plus read-only retrieval of improvement proposals.
paths:
/api/v1/skills:
post:
tags:
- Skills
summary: Ingest Skill
description: 'Ingest a skill from inline SKILL.md markdown (no file upload needed).
JSON-native companion to ``POST /api/v1/remember`` (content_type=skills),
for no-code clients. Reuses the same skills ingestion pipeline.
## Request Parameters
- **dataset_id** (Optional[UUID]): Target dataset UUID (alternative to dataset_name).
- **dataset_name** (Optional[str]): Target dataset name (created if needed). Required unless
dataset_id is given.
- **skill_name** (Optional[str]): Name/slug for the skill (defaults to ''skill'').
- **skills_text** (str): Inline SKILL.md markdown to ingest as a Skill node.'
operationId: ingest_skill_api_v1_skills_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SkillIngestRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Ingest Skill Api V1 Skills Post
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
- ApiKeyAuth: []
/api/v1/skills/:
get:
tags:
- Skills
summary: List Dataset Skills
description: 'Return the skills available in an authorized dataset, with publisher metadata.
## Query Parameters
- **dataset_id** (UUID): Dataset UUID to scope the skills to. List your datasets via GET
/api/v1/datasets to find it.
- **include_inactive** (bool): Include skills whose is_active flag is false. Defaults to
False.
- **limit** (int): Max skills to return. Defaults to 200.
- **offset** (int): Number of skills to skip. Defaults to 0.'
operationId: list_dataset_skills_api_v1_skills__get
security:
- BearerAuth: []
- ApiKeyAuth: []
parameters:
- name: dataset_id
in: query
required: true
schema:
type: string
format: uuid
description: Dataset UUID to scope the skills to. List your datasets via GET /api/v1/datasets to find it.
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
title: Dataset Id
description: Dataset UUID to scope the skills to. List your datasets via GET /api/v1/datasets to find it.
- name: include_inactive
in: query
required: false
schema:
type: boolean
description: Include skills whose is_active flag is false.
default: false
title: Include Inactive
description: Include skills whose is_active flag is false.
- name: limit
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: Max skills to return.
default: 200
title: Limit
description: Max skills to return.
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of skills to skip.
default: 0
title: Offset
description: Number of skills to skip.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SkillListItem'
title: Response List Dataset Skills Api V1 Skills Get
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Forbidden
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Conflict
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/skills/{skill_id}:
get:
tags:
- Skills
summary: Get Dataset Skill
description: 'Return one skill, including its full procedure body.
## Path Parameters
- **skill_id** (str): ID of the skill (from GET /api/v1/skills/).
## Query Parameters
- **dataset_id** (UUID): Dataset UUID the skill belongs to.'
operationId: get_dataset_skill_api_v1_skills__skill_id__get
security:
- BearerAuth: []
- ApiKeyAuth: []
parameters:
- name: skill_id
in: path
required: true
schema:
type: string
title: Skill Id
- name: dataset_id
in: query
required: true
schema:
type: string
format: uuid
description: Dataset UUID the skill belongs to.
title: Dataset Id
description: Dataset UUID the skill belongs to.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SkillDetail'
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Conflict
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Skills
summary: Delete Dataset Skill
description: 'Delete one skill (graph node + embeddings) from an authorized dataset.
## Path Parameters
- **skill_id** (str): ID of the skill (from GET /api/v1/skills/).
## Query Parameters
- **dataset_id** (UUID): Dataset UUID the skill belongs to.'
operationId: delete_dataset_skill_api_v1_skills__skill_id__delete
security:
- BearerAuth: []
- ApiKeyAuth: []
parameters:
- name: skill_id
in: path
required: true
schema:
type: string
title: Skill Id
- name: dataset_id
in: query
required: true
schema:
type: string
format: uuid
description: Dataset UUID the skill belongs to.
title: Dataset Id
description: Dataset UUID the skill belongs to.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Delete Dataset Skill Api V1 Skills Skill Id Delete
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__skills__routers__get_skills_router__ErrorResponse'
description: Conflict
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/proposals/{proposal_id}:
get:
tags:
- Skills
summary: Get Skill Proposal
description: 'Return one skill-improvement proposal with its before/after procedures.
## Path Parameters
- **proposal_id** (str): ID of the skill-improvement proposal.
## Query Parameters
- **dataset_id** (UUID): Dataset UUID the proposal is scoped to. List your datasets via GET
/api/v1/datasets to find it.'
operationId: get_skill_proposal_api_v1_proposals__proposal_id__get
security:
- BearerAuth: []
- ApiKeyAuth: []
parameters:
- name: proposal_id
in: path
required: true
schema:
type: string
title: Proposal Id
- name: dataset_id
in: query
required: true
schema:
type: string
format: uuid
description: Dataset UUID the proposal is scoped to. List your datasets via GET /api/v1/datasets to find it.
examples:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
title: Dataset Id
description: Dataset UUID the proposal is scoped to. List your datasets via GET /api/v1/datasets to find it.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProposalDetail'
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__proposals__routers__get_proposals_router__ErrorResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__proposals__routers__get_proposals_router__ErrorResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/cognee__api__v1__proposals__routers__get_proposals_router__ErrorResponse'
description: Conflict
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
cognee__api__v1__proposals__routers__get_proposals_router__ErrorResponse:
properties:
error:
type: string
title: Error
type: object
required:
- error
title: ErrorResponse
description: Generic API error response.
SkillListItem:
properties:
id:
type: string
title: Id
description: Stable skill identifier.
name:
type: string
title: Name
description: Skill name.
description:
type: string
title: Description
description: Short summary for routing.
default: ''
maintainer:
type: string
title: Maintainer
description: Publishing company / team that maintains the skill.
default: ''
maintainer_url:
type: string
title: Maintainer Url
description: Maintainer homepage or repo URL.
default: ''
version:
type: string
title: Version
description: Skill version string.
default: ''
tags:
items:
type: string
type: array
title: Tags
description: Free-form category tags.
license:
type: string
title: License
description: License identifier.
default: ''
declared_tools:
items:
type: string
type: array
title: Declared Tools
description: Tools the skill is allowed to use.
dataset_scope:
items:
type: string
type: array
title: Dataset Scope
description: Dataset UUIDs this skill is scoped to.
is_active:
type: boolean
title: Is Active
description: Whether the skill is active for routing.
default: true
source_repo_url:
type: string
title: Source Repo Url
description: Source repository URL, when known.
default: ''
source_dir:
type: string
title: Source Dir
description: On-disk source directory.
default: ''
type: object
required:
- id
- name
title: SkillListItem
description: One skill row returned by GET /skills.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
cognee__api__v1__skills__routers__get_skills_router__ErrorResponse:
properties:
error:
type: string
title: Error
type: object
required:
- error
title: ErrorResponse
description: Generic API error response.
SkillDetail:
properties:
id:
type: string
title: Id
description: Stable skill identifier.
name:
type: string
title: Name
description: Skill name.
description:
type: string
title: Description
description: Short summary for routing.
default: ''
maintainer:
type: string
title: Maintainer
description: Publishing company / team that maintains the skill.
default: ''
maintainer_url:
type: string
title: Maintainer Url
description: Maintainer homepage or repo URL.
default: ''
version:
type: string
title: Version
description: Skill version string.
default: ''
tags:
items:
type: string
type: array
title: Tags
description: Free-form category tags.
license:
type: string
title: License
description: License identifier.
default: ''
declared_tools:
items:
type: string
type: array
title: Declared Tools
description: Tools the skill is allowed to use.
dataset_scope:
items:
type: string
type: array
title: Dataset Scope
description: Dataset UUIDs this skill is scoped to.
is_active:
type: boolean
title: Is Active
description: Whether the skill is active for routing.
default: true
source_repo_url:
type: string
title: Source Repo Url
description: Source repository URL, when known.
default: ''
source_dir:
type: string
title: Source Dir
description: On-disk source directory.
default: ''
procedure:
type: string
title: Procedure
description: The full skill instruction body.
default: ''
type: object
required:
- id
- name
title: SkillDetail
description: A single skill including its full procedure body.
ProposalDetail:
properties:
proposal_id:
type: string
title: Proposal Id
description: Stable proposal identifier.
skill_id:
type: string
title: Skill Id
description: Identifier of the skill being improved.
default: ''
skill_name:
type: string
title: Skill Name
description: Name of the skill being improved.
default: ''
status:
type: string
title: Status
description: 'Lifecycle status: ''proposed'' or ''applied''.'
default: proposed
confidence:
type: number
title: Confidence
description: Model confidence in the proposed change.
default: 0.0
rationale:
type: string
title: Rationale
description: Why the change was proposed.
default: ''
model_name:
type: string
title: Model Name
description: LLM that generated the proposal.
default: ''
old_procedure:
type: string
title: Old Procedure
description: Current skill procedure (before).
default: ''
proposed_procedure:
type: string
title: Proposed Procedure
description: Proposed skill procedure (after).
default: ''
runs_used:
items:
type: string
type: array
title: Runs Used
description: SkillRun ids whose failures motivated the proposal.
dataset_scope:
items:
type: string
type: array
title: Dataset Scope
description: Dataset UUIDs this proposal is scoped to.
type: object
required:
- proposal_id
title: ProposalDetail
description: A single skill-improvement proposal, including before/after procedures.
SkillIngestRequest:
properties:
skills_text:
type: string
title: Skills Text
description: Inline SKILL.md markdown to ingest as a Skill node.
skill_name:
anyOf:
- type: string
- type: 'null'
title: Skill Name
description: Name/slug for the skill (defaults to 'skill').
dataset_name:
anyOf:
- type: string
- type: 'null'
title: Dataset Name
description: Target dataset name (created if needed). Required unless dataset_id is given.
dataset_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Dataset Id
description: Target dataset UUID (alternative to dataset_name).
type: object
required:
- skills_text
title: SkillIngestRequest
description: JSON body for ingesting a single skill from inline SKILL.md markdown.
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Api-Key
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
CookieAuth:
type: apiKey
in: cookie
name: auth_token
x-provenance:
method: harvested
publisher: Cognee
source: https://docs.cognee.ai/cognee_openapi_spec.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)