Deliverd Knowledge API

The Knowledge API from Deliverd — 5 operation(s) for knowledge.

Operations 7

GET /api/v1/knowledge Search the knowledge #
POST /api/v1/knowledge Propose a knowledge entry #
GET /api/v1/knowledge/{id} A knowledge entry, with the versions before and after it #
PATCH /api/v1/knowledge/{id} Change a proposal #
POST /api/v1/knowledge/import Import Markdown as proposed entries #
GET /api/v1/knowledge/export Export the knowledge #
GET /api/v1/knowledge/agents-md An AGENTS.md of the confirmed knowledge and the playbooks in force #

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/deliverd-dev:deliverd-dev-knowledge-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

deliverd-dev-knowledge-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Deliverd Dev Knowledge API
  version: 1.0.0
  x-refined-note:
  - x-source differs across the merged source definitions and was not carried
  description: 'Operations tagged Knowledge across 2 of this provider''s published API definitions: deliverd-dev-openapi.json, deliverd-dev-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://deliverd.dev
  description: 'Deliverd REST API (paths carry the /api/v1 prefix; https://deliverd.dev/llms.txt: "REST API: https://deliverd.dev/api/v1")'
tags:
- name: Knowledge
paths:
  /api/v1/knowledge:
    get:
      summary: Search the knowledge
      description: 'Ranked by relevance to `q`, or newest first without it. Confirmed entries unless `status` says otherwise: only those are to be relied on. `more` is true when the list was cut at `limit`.'
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
        required: false
        name: q
        in: query
      - schema:
          type: string
          enum:
          - fact
          - convention
          - decision
          - procedure
          - glossary
          - contact
          - known_issue
        required: false
        name: kind
        in: query
      - schema:
          type: string
          enum:
          - confirmed
          - proposed
          - rejected
          - retired
          - superseded
          - open
          - all
        required: false
        name: status
        in: query
      - schema:
          type: string
          format: uuid
        required: false
        name: workspaceId
        in: query
      - schema:
          type: string
          format: uuid
        required: false
        name: flowId
        in: query
      - schema:
          type: integer
        required: false
        name: limit
        in: query
      responses:
        '200':
          description: '`{ entries, more }`'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
      tags:
      - Knowledge
      operationId: getApiV1Knowledge
      x-operation-id-source: derived
    post:
      summary: Propose a knowledge entry
      description: 'A proposal until a person confirms it in Deliverd; no key confirms anything. A secret is refused; personal data is said back as `screening`. With `supersedesId` it is a revision that replaces the confirmed entry once confirmed. With `externalId`, an open entry under the same one is returned instead (`resumed: true`, status 200).'
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                  - fact
                  - convention
                  - decision
                  - procedure
                  - glossary
                  - contact
                  - known_issue
                  description: fact (true here), convention (how we do it), decision (settled, with why), procedure (a how-to note), glossary (what a term means here), contact (who to ask about what) or known_issue (a problem and its workaround)
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: The fact or rule in one line, as it should appear in a list
                body:
                  type: string
                  minLength: 1
                  maxLength: 8000
                  description: 'The detail another agent needs to act on it, written to be read by a person. Never a secret, token or password: those are refused'
                tags:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 40
                  maxItems: 20
                  description: A few words to find it by
                workspaceId:
                  type: string
                  format: uuid
                  description: Keep it inside one workspace; the whole organisation when omitted
                flowId:
                  type: string
                  format: uuid
                  description: Tie it to one project (flow)
                supersedesId:
                  type: string
                  format: uuid
                  description: The confirmed entry this would replace. It keeps that entry's scope, and replaces it only once a person confirms it
                sourceUrl:
                  type: string
                  maxLength: 2000
                  format: uri
                  description: Where this comes from, if it is a page somebody can open
                sourceLabel:
                  type: string
                  maxLength: 200
                  description: What the source is, in a few words
                externalId:
                  type: string
                  maxLength: 200
                  description: Your own reference. An open entry with the same one is returned instead of a second
              required:
              - kind
              - title
              - body
      responses:
        '200':
          description: An open entry under this externalId
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '201':
          description: '`{ entry, resumed, screening }`'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
      tags:
      - Knowledge
      operationId: postApiV1Knowledge
      x-operation-id-source: derived
  /api/v1/knowledge/{id}:
    get:
      summary: A knowledge entry, with the versions before and after it
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      responses:
        '200':
          description: The entry, its `history` and any `pendingRevision`
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '404':
          description: Not found, or not visible to you
      tags:
      - Knowledge
      operationId: getApiV1KnowledgeById
      x-operation-id-source: derived
    patch:
      summary: Change a proposal
      description: 'Only while it is proposed, and only by a person or the agent that proposed it. A confirmed entry''s words never change: propose a revision.'
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                  - fact
                  - convention
                  - decision
                  - procedure
                  - glossary
                  - contact
                  - known_issue
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                body:
                  type: string
                  minLength: 1
                  maxLength: 8000
                tags:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 40
                  maxItems: 20
      responses:
        '200':
          description: The entry
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
        '409':
          description: No longer a proposal
      tags:
      - Knowledge
      operationId: patchApiV1KnowledgeById
      x-operation-id-source: derived
  /api/v1/knowledge/import:
    post:
      summary: Import Markdown as proposed entries
      description: 'A Deliverd export, or a notes file an agent tool keeps (AGENTS.md, CLAUDE.md): each heading becomes one proposed entry. Entries already there by title or id are skipped and said so.'
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                markdown:
                  type: string
                  minLength: 1
                  maxLength: 1000000
                  description: 'Markdown: a Deliverd export, or a notes file such as AGENTS.md or CLAUDE.md. Each heading becomes one proposed entry'
                workspaceId:
                  type: string
                  format: uuid
                source:
                  type: string
                  maxLength: 200
                  description: Where the file came from, e.g. the repository and path
              required:
              - markdown
      responses:
        '200':
          description: '`{ created, skipped }`'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
      tags:
      - Knowledge
      operationId: postApiV1KnowledgeImport
      x-operation-id-source: derived
  /api/v1/knowledge/export:
    get:
      summary: Export the knowledge
      description: Everything the caller may see, as Markdown that imports back (the default) or JSON. Audited.
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          enum:
          - markdown
          - json
        required: false
        name: format
        in: query
      - schema:
          type: string
          enum:
          - confirmed
          - proposed
          - rejected
          - retired
          - superseded
          - open
          - all
        required: false
        name: status
        in: query
      - schema:
          type: string
          format: uuid
        required: false
        name: workspaceId
        in: query
      responses:
        '200':
          description: The file
          content:
            text/markdown:
              schema:
                type: string
            application/json:
              schema:
                type: object
                additionalProperties: {}
      tags:
      - Knowledge
      operationId: getApiV1KnowledgeExport
      x-operation-id-source: derived
  /api/v1/knowledge/agents-md:
    get:
      summary: An AGENTS.md of the confirmed knowledge and the playbooks in force
      description: For a tool that reads files rather than calling tools. A snapshot that says where the live version is.
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: false
        name: workspaceId
        in: query
      responses:
        '200':
          description: AGENTS.md
          content:
            text/markdown:
              schema:
                type: string
      tags:
      - Knowledge
      operationId: getApiV1KnowledgeAgentsMd
      x-operation-id-source: derived
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key (dlv_…) created in Settings → API tokens, or an OAuth access token (dlvo_…). Every route below can answer `401 auth_error` — the credential was not accepted — or `403 insufficient_scope`, which is a different thing: the credential is fine and was not issued with the scope this route needs. Reissue it with that scope rather than replacing it with another of the same ones. Older clients may still branch on `auth_error` for both.'
x-refined-from:
- deliverd-dev-openapi.json
- deliverd-dev-openapi.yml