Cognee Skills API

Skill management endpoints for ingesting, listing, retrieving, and deleting dataset skills, plus read-only retrieval of improvement proposals.

Operations 5

POST /api/v1/skills Ingest Skill #
GET /api/v1/skills/ List Dataset Skills #
GET /api/v1/skills/{skill_id} Get Dataset Skill #
DELETE /api/v1/skills/{skill_id} Delete Dataset Skill #
GET /api/v1/proposals/{proposal_id} Get Skill Proposal #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cognee:cognee-skills-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

cognee-skills-api-openapi.yml Raw ↑
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)