Live Direct Marketing Development Pipeline API

The Development Pipeline API from Live Direct Marketing — 13 operation(s) for development pipeline.

Business capability
Software Product Engineering Management BC-4200

Operations 13

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/development-pipeline/board View the development delivery board · Board across 4 delivery stages (queue/agents/merge/deploy) #
Ask an LLM
“Which issues are in queue, with agents, in merge or deploying right now?”
“Where can I see the four-stage delivery board?”
Tell an agent
Show the development pipeline board across all four stages.
Display what is in queue, agents, merge and deploy.
GET /api/development-pipeline/attention See what in the pipeline needs an owner · "Needs an owner" block + delivery strip (issue #1004): red tasks/deploys… #
Ask an LLM
“Which red tasks, failed deploys or agent questions need my attention?”
“Are there findings without an issue or branches waiting for merge approval?”
Tell an agent
Show the needs-an-owner block and delivery strip.
List everything in the pipeline waiting on me.
GET /api/development-pipeline/prod-counter Count issues shipped to production · "IN PROD" showcase (issue #1010): issues that shipped via a successful main… #
Ask an LLM
“How many issues have actually shipped to prod with a green smoke check?”
“What counts toward the IN PROD showcase?”
Tell an agent
Show the IN PROD counter of shipped issues.
List issues that reached production through the main pipeline.
GET /api/development-pipeline/ci-runs-per-merge Measure CI runs per merge · "CI runs per merge" KPI over a window (issue #999, atom A9), read-only: the… #
Ask an LLM
“How many CI runs does each merge take on average?”
“What is the CI-runs-per-merge KPI over the last few hours?”
Tell an agent
Compute CI runs per merge over the last {minutes} minutes.
Show the CI runs per merge KPI for a {minutes}-minute window.
GET /api/development-pipeline/journal Read the tester journal · Tester journal !505 as source of truth (issue #500): block 3 rules, roles… #
Ask an LLM
“What rules, roles and findings are in the tester journal?”
“Did the tester journal integrity gate pass?”
Tell an agent
Show the tester journal snapshot.
Fetch the journal findings and integrity gate status.
POST /api/development-pipeline/journal/findings/{findingId}/create-issue Open an issue from a journal finding · Create an issue from a journal finding that has no issue number (issue #500… #
Ask an LLM
“How do I turn a tester journal finding into a tracked issue?”
“Can I file a finding that has no issue number into a specific project?”
Tell an agent
Create an issue from journal finding {findingId} in project {projectId}.
File finding {findingId} as a from::journal issue.
POST /api/development-pipeline/journal/findings Add a finding to the tester journal · Append one finding line to Block 2 of journal !505 (issue #1152) — an atomic… #
Ask an LLM
“How do I append a new finding line to the tester journal?”
“Can an agent add a journal finding without rewriting the whole description?”
Tell an agent
Append the finding {line} to the tester journal.
Log this line in journal Block 2: {line}.
PATCH /api/development-pipeline/issues/{iid}/pause Pause or unpause a development issue · Pause an issue — do not pick it up for work while the `paused` label is set #
Ask an LLM
“How do I stop agents from picking up an issue for now?”
“Can I remove the paused label from an issue?”
Tell an agent
Set paused to {paused} on issue {iid}.
Pause issue {iid} in project {projectId}.
POST /api/development-pipeline/issues/priority-triage Assign priorities to all unprioritized issues · One-off idempotent triage: set priority on every open issue without a P label #
Ask an LLM
“How do I give every open issue without a P label a priority?”
“Can I preview the priority triage before it changes anything?”
Tell an agent
Run priority triage on open issues in project {projectId}.
Dry-run priority triage with dryRun {dryRun}.
PATCH /api/development-pipeline/issues/{iid}/priority Set an issue's priority · Issue priority — P1-critical / P2-integrity / P3-ux #
Ask an LLM
“How do I mark an issue P1-critical?”
“Which priority levels can a development issue have?”
Tell an agent
Set issue {iid} to priority {priority}.
Mark issue {iid} as P3-ux.
PATCH /api/development-pipeline/issues/{iid}/model Choose the model that works an issue · Executor model — sonnet (default) / opus / fable / codex-sol / codex-terra #
Ask an LLM
“How do I change which executor model handles an issue?”
“Which executor models can I assign to a development issue?”
Tell an agent
Assign executor model {model} to issue {iid}.
Have opus work issue {iid} instead of the default.
PATCH /api/development-pipeline/issues/{iid}/take-next Move an issue to the front of the queue · "Take next" — unpause and move the issue to the front of the queue (P1) #
Ask an LLM
“How do I make an issue the very next thing agents pick up?”
“Can I unpause an issue and bump it to P1 in one step?”
Tell an agent
Take issue {iid} next.
Unpause issue {iid} and put it at the front of the queue.
PATCH /api/development-pipeline/issues/{iid}/close Close an issue on the owner's behalf · Close an issue on behalf of the owner (issue #439) — label `closed::by-owner` +… #
Ask an LLM
“How do I close a development issue as the owner with an audit trail?”
“What label is added when an owner closes an issue?”
Tell an agent destructive · confirm first
Close issue {iid} as owner.
Close issue {iid} in project {projectId} with a closed-by-owner comment.

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/live-direct-marketing-online:live-direct-marketing-online-development-pipeline-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

live-direct-marketing-online-development-pipeline-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LDM v3 Development Pipeline API
  description: 'Multi-tenant B2B outreach automation platform. Auth: JWT Bearer (15-min) or tenant API key (ldm_*) managed in CRM Settings → API Keys. All tenant-scoped endpoints require the X-Tenant-Id header.'
  version: 1.0.0
  contact: {}
servers:
- url: https://api.live-direct-marketing.online
  description: Production
- url: https://api.dev.live-direct-marketing.online
  description: Development
- url: http://127.0.0.1:3000
  description: Local
tags:
- name: Development Pipeline
paths:
  /api/development-pipeline/board:
    get:
      operationId: DevelopmentPipelineController_board
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Board across 4 delivery stages (queue/agents/merge/deploy)
      tags:
      - Development Pipeline
  /api/development-pipeline/attention:
    get:
      operationId: DevelopmentPipelineController_attentionSnapshot
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: '"Needs an owner" block + delivery strip (issue #1004): red tasks/deploys…'
      tags:
      - Development Pipeline
  /api/development-pipeline/prod-counter:
    get:
      operationId: DevelopmentPipelineController_prodCounter
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: '"IN PROD" showcase (issue #1010): issues that shipped via a successful main…'
      tags:
      - Development Pipeline
  /api/development-pipeline/ci-runs-per-merge:
    get:
      operationId: DevelopmentPipelineController_ciRunsPerMerge
      parameters:
      - name: minutes
        required: true
        in: query
        schema:
          type: string
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: '"CI runs per merge" KPI over a window (issue #999, atom A9), read-only: the…'
      tags:
      - Development Pipeline
  /api/development-pipeline/journal:
    get:
      operationId: DevelopmentPipelineController_journalSnapshot
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: 'Tester journal !505 as source of truth (issue #500): block 3 rules, roles…'
      tags:
      - Development Pipeline
  /api/development-pipeline/journal/findings/{findingId}/create-issue:
    post:
      operationId: DevelopmentPipelineController_createIssueFromFinding
      parameters:
      - name: findingId
        required: true
        in: path
        schema:
          type: string
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIssueFromFindingDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: 'Create an issue from a journal finding that has no issue number (issue #500…'
      tags:
      - Development Pipeline
  /api/development-pipeline/journal/findings:
    post:
      operationId: DevelopmentPipelineController_appendJournalFinding
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppendJournalFindingDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: 'Append one finding line to Block 2 of journal !505 (issue #1152) — an atomic…'
      tags:
      - Development Pipeline
  /api/development-pipeline/issues/{iid}/pause:
    patch:
      operationId: DevelopmentPipelineController_setPaused
      parameters:
      - name: iid
        required: true
        in: path
        schema:
          type: number
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPausedDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Pause an issue — do not pick it up for work while the `paused` label is set
      tags:
      - Development Pipeline
  /api/development-pipeline/issues/priority-triage:
    post:
      operationId: DevelopmentPipelineController_priorityTriage
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PriorityTriageDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: 'One-off idempotent triage: set priority on every open issue without a P label'
      tags:
      - Development Pipeline
  /api/development-pipeline/issues/{iid}/priority:
    patch:
      operationId: DevelopmentPipelineController_setPriority
      parameters:
      - name: iid
        required: true
        in: path
        schema:
          type: number
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPriorityDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Issue priority — P1-critical / P2-integrity / P3-ux
      tags:
      - Development Pipeline
  /api/development-pipeline/issues/{iid}/model:
    patch:
      operationId: DevelopmentPipelineController_setModel
      parameters:
      - name: iid
        required: true
        in: path
        schema:
          type: number
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetModelDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Executor model — sonnet (default) / opus / fable / codex-sol / codex-terra
      tags:
      - Development Pipeline
  /api/development-pipeline/issues/{iid}/take-next:
    patch:
      operationId: DevelopmentPipelineController_takeNext
      parameters:
      - name: iid
        required: true
        in: path
        schema:
          type: number
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectScopedDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: '"Take next" — unpause and move the issue to the front of the queue (P1)'
      tags:
      - Development Pipeline
  /api/development-pipeline/issues/{iid}/close:
    patch:
      operationId: DevelopmentPipelineController_closeIssue
      parameters:
      - name: iid
        required: true
        in: path
        schema:
          type: number
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectScopedDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: 'Close an issue on behalf of the owner (issue #439) — label `closed::by-owner` +…'
      tags:
      - Development Pipeline
components:
  schemas:
    CreateIssueFromFindingDto:
      type: object
      properties:
        projectId:
          type: string
          pattern: /^\d+$/
      required:
      - projectId
    SetPausedDto:
      type: object
      properties:
        paused:
          type: boolean
        projectId:
          type: string
          pattern: /^\d+$/
      required:
      - paused
    PriorityTriageDto:
      type: object
      properties:
        dryRun:
          type: boolean
          description: Preview the plan only, no write to GitLab
        projectId:
          type: string
          description: GitLab project ID (defaults to primary)
    SetModelDto:
      type: object
      properties:
        model:
          type: object
        projectId:
          type: string
          pattern: /^\d+$/
      required:
      - model
    SetPriorityDto:
      type: object
      properties:
        priority:
          type: object
        projectId:
          type: string
          pattern: /^\d+$/
      required:
      - priority
    ProjectScopedDto:
      type: object
      properties:
        projectId:
          type: string
          pattern: /^\d+$/
    AppendJournalFindingDto:
      type: object
      properties:
        line:
          type: string
          minLength: 1
          maxLength: 500
      required:
      - line
  securitySchemes:
    jwt:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: JWT access token from /auth/login (Bearer <token>)
    tenant-api-key:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: Tenant API key (Bearer ldm_*) for MCP/A2A clients. Issued via CRM Settings → API Keys.
    rpa-service:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: Dedicated RPA service key. No tenant API-key or query-key authentication.