Deliverd Playbooks API

The Playbooks API from Deliverd — 6 operation(s) for playbooks.

Operations 8

GET /api/v1/playbooks List playbooks #
POST /api/v1/playbooks Draft a playbook or an approved prompt #
GET /api/v1/playbooks/{id} A playbook version, its family and the knowledge it relies on #
PATCH /api/v1/playbooks/{id} Change a draft #
POST /api/v1/playbooks/{id}/versions Draft the next version #
POST /api/v1/playbooks/{id}/approval Put a draft to approvers #
POST /api/v1/playbooks/{id}/start Run a playbook #
POST /api/v1/playbooks/{id}/use Use an approved prompt #

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-playbooks-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-playbooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Deliverd Dev Playbooks API
  version: 1.0.0
  x-refined-note:
  - x-source differs across the merged source definitions and was not carried
  description: 'Operations tagged Playbooks 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: Playbooks
paths:
  /api/v1/playbooks:
    get:
      summary: List playbooks
      description: 'One row per playbook: its newest version, and `inForce`, the version that runs. Approved prompts are playbooks of `kind` prompt; `?kind=` keeps one or the other.'
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          enum:
          - procedure
          - prompt
          description: procedure for playbooks of steps, prompt for approved prompts; both when omitted
        required: false
        description: procedure for playbooks of steps, prompt for approved prompts; both when omitted
        name: kind
        in: query
      responses:
        '200':
          description: '`{ playbooks }`'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
      tags:
      - Playbooks
      operationId: getApiV1Playbooks
      x-operation-id-source: derived
    post:
      summary: Draft a playbook or an approved prompt
      description: 'Steps, each with the rule that applies before it acts: `none`, `gate` (with the `action` to check), `approval` or `review`. Or `prompt` instead of steps, for an approved prompt: its words with `{input}` placeholders, an owner and a review date. Nobody runs a draft: a governing person publishes it in the app, or an approval of it is approved.'
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: 'The job, as people name it: Onboard a supplier'
                purpose:
                  type: string
                  minLength: 1
                  maxLength: 4000
                  description: The outcome when it is done. Becomes the objective of every run; for a prompt, the one line people see
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                        maxLength: 48
                        description: A short key for the step, lowercase; made from the title when omitted
                      title:
                        type: string
                        minLength: 1
                        maxLength: 200
                      instruction:
                        type: string
                        minLength: 1
                        maxLength: 4000
                        description: What to do at this step, in a sentence or two
                      rule:
                        type: string
                        enum:
                        - none
                        - gate
                        - approval
                        - review
                        description: 'What applies before the step''s action: none, gate (check_gate for `action`), approval (request_approval) or review (request_review). none when omitted'
                      action:
                        type: string
                        maxLength: 100
                        description: 'For a gate step: the action to check, such as payments.send'
                      knowledgeIds:
                        type: array
                        items:
                          type: string
                          format: uuid
                        maxItems: 20
                        description: Knowledge entries this step relies on
                    required:
                    - title
                    - instruction
                  minItems: 1
                  maxItems: 30
                  description: The steps. Required for a playbook; left out for a prompt, which has one step of its own
                prompt:
                  type: object
                  properties:
                    text:
                      type: string
                      minLength: 1
                      maxLength: 8000
                      description: The approved words. Put each input in as {input name}, e.g. Compare {previous contract} with {renewal contract}
                    limitations:
                      type: string
                      maxLength: 2000
                      description: What it is not for, and how to check what it produces
                    department:
                      type: string
                      maxLength: 120
                      description: The team or department it is for, as people would filter by it
                    taskType:
                      type: string
                      maxLength: 40
                      description: What kind of task, such as Analyze, Create or Edit
                    language:
                      type: string
                      maxLength: 20
                      description: The language it is written in, such as en-GB
                    ownerEmail:
                      type: string
                      maxLength: 320
                      format: email
                      description: The member who owns it and keeps it current; whoever drafts it when omitted
                    reviewDueOn:
                      type: string
                      format: date
                      description: When it is next reviewed, YYYY-MM-DD; six months on when omitted
                    checkOutput:
                      type: boolean
                      description: Run as a playbook, a person reviews the output before it is used
                  required:
                  - text
                  description: 'Send this instead of steps to draft an approved prompt: words people and agents use, versioned and approved like any playbook'
                inputs:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                        maxLength: 60
                      description:
                        type: string
                        maxLength: 500
                      required:
                        type: boolean
                    required:
                    - name
                  maxItems: 20
                  description: What a run needs to be given, such as the supplier's name
                knowledgeIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                  maxItems: 50
                  description: Knowledge every step relies on
                workspaceId:
                  type: string
                  format: uuid
                note:
                  type: string
                  maxLength: 2000
              required:
              - title
              - purpose
      responses:
        '201':
          description: The draft
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
      tags:
      - Playbooks
      operationId: postApiV1Playbooks
      x-operation-id-source: derived
  /api/v1/playbooks/{id}:
    get:
      summary: A playbook version, its family and the knowledge it relies on
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      responses:
        '200':
          description: The version, `versions`, `inForceId` and `knowledge`
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '404':
          description: Not found, or not visible to you
      tags:
      - Playbooks
      operationId: getApiV1PlaybooksById
      x-operation-id-source: derived
    patch:
      summary: Change a draft
      description: Only before it has been put to anybody. After that, draft the next version.
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: 'The job, as people name it: Onboard a supplier'
                purpose:
                  type: string
                  minLength: 1
                  maxLength: 4000
                  description: The outcome when it is done. Becomes the objective of every run; for a prompt, the one line people see
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                        maxLength: 48
                        description: A short key for the step, lowercase; made from the title when omitted
                      title:
                        type: string
                        minLength: 1
                        maxLength: 200
                      instruction:
                        type: string
                        minLength: 1
                        maxLength: 4000
                        description: What to do at this step, in a sentence or two
                      rule:
                        type: string
                        enum:
                        - none
                        - gate
                        - approval
                        - review
                        description: 'What applies before the step''s action: none, gate (check_gate for `action`), approval (request_approval) or review (request_review). none when omitted'
                      action:
                        type: string
                        maxLength: 100
                        description: 'For a gate step: the action to check, such as payments.send'
                      knowledgeIds:
                        type: array
                        items:
                          type: string
                          format: uuid
                        maxItems: 20
                        description: Knowledge entries this step relies on
                    required:
                    - title
                    - instruction
                  minItems: 1
                  maxItems: 30
                  description: The steps. Required for a playbook; left out for a prompt, which has one step of its own
                prompt:
                  type: object
                  properties:
                    text:
                      type: string
                      minLength: 1
                      maxLength: 8000
                      description: The approved words. Put each input in as {input name}, e.g. Compare {previous contract} with {renewal contract}
                    limitations:
                      type: string
                      maxLength: 2000
                      description: What it is not for, and how to check what it produces
                    department:
                      type: string
                      maxLength: 120
                      description: The team or department it is for, as people would filter by it
                    taskType:
                      type: string
                      maxLength: 40
                      description: What kind of task, such as Analyze, Create or Edit
                    language:
                      type: string
                      maxLength: 20
                      description: The language it is written in, such as en-GB
                    ownerEmail:
                      type: string
                      maxLength: 320
                      format: email
                      description: The member who owns it and keeps it current; whoever drafts it when omitted
                    reviewDueOn:
                      type: string
                      format: date
                      description: When it is next reviewed, YYYY-MM-DD; six months on when omitted
                    checkOutput:
                      type: boolean
                      description: Run as a playbook, a person reviews the output before it is used
                  required:
                  - text
                  description: 'Send this instead of steps to draft an approved prompt: words people and agents use, versioned and approved like any playbook'
                inputs:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                        maxLength: 60
                      description:
                        type: string
                        maxLength: 500
                      required:
                        type: boolean
                    required:
                    - name
                  maxItems: 20
                  description: What a run needs to be given, such as the supplier's name
                knowledgeIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                  maxItems: 50
                  description: Knowledge every step relies on
                workspaceId:
                  type: string
                  format: uuid
                note:
                  type: string
                  maxLength: 2000
              required:
              - title
              - purpose
      responses:
        '200':
          description: The draft
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
        '409':
          description: Already submitted
      tags:
      - Playbooks
      operationId: patchApiV1PlaybooksById
      x-operation-id-source: derived
  /api/v1/playbooks/{id}/versions:
    post:
      summary: Draft the next version
      description: The version in force keeps running until this one is put in force.
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: 'The job, as people name it: Onboard a supplier'
                purpose:
                  type: string
                  minLength: 1
                  maxLength: 4000
                  description: The outcome when it is done. Becomes the objective of every run; for a prompt, the one line people see
                steps:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                        maxLength: 48
                        description: A short key for the step, lowercase; made from the title when omitted
                      title:
                        type: string
                        minLength: 1
                        maxLength: 200
                      instruction:
                        type: string
                        minLength: 1
                        maxLength: 4000
                        description: What to do at this step, in a sentence or two
                      rule:
                        type: string
                        enum:
                        - none
                        - gate
                        - approval
                        - review
                        description: 'What applies before the step''s action: none, gate (check_gate for `action`), approval (request_approval) or review (request_review). none when omitted'
                      action:
                        type: string
                        maxLength: 100
                        description: 'For a gate step: the action to check, such as payments.send'
                      knowledgeIds:
                        type: array
                        items:
                          type: string
                          format: uuid
                        maxItems: 20
                        description: Knowledge entries this step relies on
                    required:
                    - title
                    - instruction
                  minItems: 1
                  maxItems: 30
                  description: The steps. Required for a playbook; left out for a prompt, which has one step of its own
                prompt:
                  type: object
                  properties:
                    text:
                      type: string
                      minLength: 1
                      maxLength: 8000
                      description: The approved words. Put each input in as {input name}, e.g. Compare {previous contract} with {renewal contract}
                    limitations:
                      type: string
                      maxLength: 2000
                      description: What it is not for, and how to check what it produces
                    department:
                      type: string
                      maxLength: 120
                      description: The team or department it is for, as people would filter by it
                    taskType:
                      type: string
                      maxLength: 40
                      description: What kind of task, such as Analyze, Create or Edit
                    language:
                      type: string
                      maxLength: 20
                      description: The language it is written in, such as en-GB
                    ownerEmail:
                      type: string
                      maxLength: 320
                      format: email
                      description: The member who owns it and keeps it current; whoever drafts it when omitted
                    reviewDueOn:
                      type: string
                      format: date
                      description: When it is next reviewed, YYYY-MM-DD; six months on when omitted
                    checkOutput:
                      type: boolean
                      description: Run as a playbook, a person reviews the output before it is used
                  required:
                  - text
                  description: 'Send this instead of steps to draft an approved prompt: words people and agents use, versioned and approved like any playbook'
                inputs:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                        maxLength: 60
                      description:
                        type: string
                        maxLength: 500
                      required:
                        type: boolean
                    required:
                    - name
                  maxItems: 20
                  description: What a run needs to be given, such as the supplier's name
                knowledgeIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                  maxItems: 50
                  description: Knowledge every step relies on
                workspaceId:
                  type: string
                  format: uuid
                note:
                  type: string
                  maxLength: 2000
              required:
              - title
              - purpose
      responses:
        '201':
          description: The new draft
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
      tags:
      - Playbooks
      operationId: postApiV1PlaybooksByIdVersions
      x-operation-id-source: derived
  /api/v1/playbooks/{id}/approval:
    post:
      summary: Put a draft to approvers
      description: A Deliverd approval of the playbook; approved, it goes in force. Needs `approvals:write` and `tasks:write`. Its content is fixed from here.
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                approvers:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 320
                  maxItems: 20
                  description: Emails, names or groups; the organisation's administrators when omitted
                note:
                  type: string
                  maxLength: 2000
      responses:
        '200':
          description: The version, awaiting approval
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
        '409':
          description: Already submitted
      tags:
      - Playbooks
      operationId: postApiV1PlaybooksByIdApproval
      x-operation-id-source: derived
  /api/v1/playbooks/{id}/start:
    post:
      summary: Run a playbook
      description: Starts the version in force as an objective, with a side task per step holding its instruction and the call its rule needs. Naming an older version runs the one in force (`ranOlderVersion`). Missing required inputs are refused with `details.missingInputs`. With `externalId`, an open run is returned instead (status 200).
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: A name for this run, such as Onboard Northwind; the playbook's title when omitted
                inputs:
                  type: object
                  additionalProperties:
                    type: string
                    maxLength: 1000
                  description: The playbook's inputs, by name
                workspaceId:
                  type: string
                  format: uuid
                flowId:
                  type: string
                  format: uuid
                  description: The project this run's approvals and reviews belong to
                externalId:
                  type: string
                  maxLength: 200
                  description: Your own reference; an open run you started under it is returned instead of a second
                sessionUrl:
                  type: string
                  maxLength: 2000
                  format: uri
      responses:
        '200':
          description: An open run under this externalId
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '201':
          description: '`{ objective, resumed, playbook, steps, ranOlderVersion }`'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '402':
          description: The plan does not include Objectives (feature_unavailable). Reads are not refused.
        '409':
          description: No version is in force
      tags:
      - Playbooks
      operationId: postApiV1PlaybooksByIdStart
      x-operation-id-source: derived
  /api/v1/playbooks/{id}/use:
    post:
      summary: Use an approved prompt
      description: The version in force of the prompt, with the inputs put in, and its limitations. Each use is recorded against the version. Naming an older version hands out the one in force (`ranOlderVersion`). Required inputs not given are listed in `missingInputs` and their placeholders left in the words. Needs `tasks:read`.
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                inputs:
                  type: object
                  additionalProperties:
                    type: string
                    maxLength: 4000
                  description: The prompt's inputs, by name; a placeholder not given stays in the words
      responses:
        '200':
          description: '`{ prompt, text, missingInputs, limitations, ranOlderVersion }`'
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
        '409':
          description: No version is in force
      tags:
      - Playbooks
      operationId: postApiV1PlaybooksByIdUse
      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