Live Direct Marketing Project Templates API

The Project Templates API from Live Direct Marketing — 10 operation(s) for project templates.

Operations 16

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/project-templates/runs/{runId} Get a project run with steps and totals · Get a project run with steps and totals #
Ask an LLM
“How is one of my project runs going, step by step?”
“What are the totals for a project run created from a template?”
Tell an agent
Show project run {runId} with its steps and totals.
Fetch run {runId}.
PATCH /api/project-templates/runs/{runId} Update a project run's name, status or notes · Update a project run (name, status, isTest, notes) #
Ask an LLM
“Can I mark a project run as a test or change its status?”
“How do I add notes to a project run?”
Tell an agent
Update project run {runId}.
Rename run {runId} and update its notes.
DELETE /api/project-templates/runs/{runId} Delete a project run · Delete a project run #
Ask an LLM
“Can I delete a project run I started by mistake?”
“How do I remove a run from a template's history?”
Tell an agent destructive · confirm first
Delete project run {runId}.
Remove run {runId} permanently.
PATCH /api/project-templates/runs/{runId}/steps/{stepId} Record facts and issues on a run step · Update a run step (fact, status, issues/questions/ideas) #
Ask an LLM
“How do I log the actual result for a step in a project run?”
“Can I attach issues, questions or ideas to one step of a run?”
Tell an agent
Update step {stepId} of run {runId}.
Record the fact and status for run {runId} step {stepId}.
GET /api/project-templates List project templates · List project templates #
Ask an LLM
“What project templates do I have?”
“Can I include archived templates when listing them?”
Tell an agent
List my project templates.
List project templates with includeArchived set to {includeArchived}.
POST /api/project-templates Create a project template · Create a project template #
Ask an LLM
“How do I create a reusable project template?”
“Can I define a new playbook template for repeat projects?”
Tell an agent
Create a new project template.
Set up a reusable project playbook template.
GET /api/project-templates/{id} Get a project template with steps and runs · Get a template with steps and runs #
Ask an LLM
“What steps and past runs belong to a template?”
“Where can I see a single project template in full?”
Tell an agent
Show project template {id} with its steps and runs.
Open template {id}.
PATCH /api/project-templates/{id} Update or archive a project template · Update a template (name, description, isArchived) #
Ask an LLM
“Can I archive a template instead of deleting it?”
“How do I rename a project template or change its description?”
Tell an agent
Archive project template {id}.
Update the name and description of template {id}.
DELETE /api/project-templates/{id} Delete a project template · Delete a template (409 if it has runs — archive instead) #
Ask an LLM
“Why can't I delete a template that already has runs?”
“How do I delete an unused project template?”
Tell an agent destructive · confirm first
Delete project template {id}.
Permanently remove template {id} if it has no runs.
POST /api/project-templates/{id}/steps Add a step to a project template · Add a step to a template #
Ask an LLM
“How do I add a new step to a project template?”
“Can I extend a template with another stage?”
Tell an agent
Add a step to template {id}.
Append a new stage to project template {id}.
PATCH /api/project-templates/{id}/steps/{stepId} Update a step in a project template · Update a template step #
Ask an LLM
“How do I change the plan for one step in a template?”
“Can I edit a template step's details?”
Tell an agent
Update step {stepId} of template {id}.
Edit template {id} step {stepId}.
DELETE /api/project-templates/{id}/steps/{stepId} Delete a step from a project template · Delete a template step #
Ask an LLM
“Can I take a step out of a project template?”
“How do I remove an outdated stage from a template?”
Tell an agent destructive · confirm first
Delete step {stepId} from template {id}.
Remove template step {stepId} in template {id}.
POST /api/project-templates/{id}/steps/reorder Reorder a project template's steps · Reorder template steps (full ordered id list) #
Ask an LLM
“Can I change the order of steps in a project template?”
“How do I move a template step earlier in the sequence?”
Tell an agent
Reorder the steps of template {id}.
Apply a new step order to project template {id}.
GET /api/project-templates/{id}/brief-questions List all brief questions in a template · All brief questions of a template as one list #
Ask an LLM
“What brief questions does a project template ask, all in one list?”
“Can I see every client brief question across a template's steps?”
Tell an agent
List all brief questions of template {id}.
Collect the brief questions from project template {id}.
GET /api/project-templates/{id}/summary Compare planned vs actual per template step · Plan vs avg fact per step over DONE runs (scope: all|test|real) #
Ask an LLM
“How do my finished runs compare to the plan for each template step?”
“Can I see plan-versus-actual only for real runs, excluding tests?”
Tell an agent
Show the plan vs actual summary for template {id}.
Summarize template {id} over done runs with scope {scope}.
POST /api/project-templates/{id}/runs Start a project run from a template · Create a run from a template (steps are snapshotted) #
Ask an LLM
“How do I launch a new project from a template?”
“Will later edits to a template change runs already created from it?”
Tell an agent
Create a run from template {id}.
Start a new project run based on template {id}.

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-project-templates-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-project-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LDM v3 Project Templates 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: Project Templates
paths:
  /api/project-templates/runs/{runId}:
    get:
      operationId: ProjectTemplatesController_findRun
      parameters:
      - name: runId
        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
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Get a project run with steps and totals
      tags:
      - Project Templates
    patch:
      operationId: ProjectTemplatesController_updateRun
      parameters:
      - name: runId
        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/UpdateRunDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Update a project run (name, status, isTest, notes)
      tags:
      - Project Templates
    delete:
      operationId: ProjectTemplatesController_removeRun
      parameters:
      - name: runId
        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
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Delete a project run
      tags:
      - Project Templates
  /api/project-templates/runs/{runId}/steps/{stepId}:
    patch:
      operationId: ProjectTemplatesController_updateRunStep
      parameters:
      - name: runId
        required: true
        in: path
        schema:
          type: string
      - name: stepId
        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/UpdateRunStepDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Update a run step (fact, status, issues/questions/ideas)
      tags:
      - Project Templates
  /api/project-templates:
    get:
      operationId: ProjectTemplatesController_findAll
      parameters:
      - name: includeArchived
        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: List project templates
      tags:
      - Project Templates
    post:
      operationId: ProjectTemplatesController_create
      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/CreateTemplateDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: Create a project template
      tags:
      - Project Templates
  /api/project-templates/{id}:
    get:
      operationId: ProjectTemplatesController_findOne
      parameters:
      - name: id
        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
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Get a template with steps and runs
      tags:
      - Project Templates
    patch:
      operationId: ProjectTemplatesController_update
      parameters:
      - name: id
        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/UpdateTemplateDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Update a template (name, description, isArchived)
      tags:
      - Project Templates
    delete:
      operationId: ProjectTemplatesController_remove
      parameters:
      - name: id
        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
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Delete a template (409 if it has runs — archive instead)
      tags:
      - Project Templates
  /api/project-templates/{id}/steps:
    post:
      operationId: ProjectTemplatesController_addStep
      parameters:
      - name: id
        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/StepDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: Add a step to a template
      tags:
      - Project Templates
  /api/project-templates/{id}/steps/{stepId}:
    patch:
      operationId: ProjectTemplatesController_updateStep
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: stepId
        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/UpdateStepDto'
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Update a template step
      tags:
      - Project Templates
    delete:
      operationId: ProjectTemplatesController_removeStep
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: stepId
        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
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: Delete a template step
      tags:
      - Project Templates
  /api/project-templates/{id}/steps/reorder:
    post:
      operationId: ProjectTemplatesController_reorder
      parameters:
      - name: id
        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/ReorderDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: Reorder template steps (full ordered id list)
      tags:
      - Project Templates
  /api/project-templates/{id}/brief-questions:
    get:
      operationId: ProjectTemplatesController_briefQuestions
      parameters:
      - name: id
        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
      responses:
        '200':
          description: ''
      security:
      - jwt: []
      summary: All brief questions of a template as one list
      tags:
      - Project Templates
  /api/project-templates/{id}/summary:
    get:
      operationId: ProjectTemplatesController_summary
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: scope
        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: 'Plan vs avg fact per step over DONE runs (scope: all|test|real)'
      tags:
      - Project Templates
  /api/project-templates/{id}/runs:
    post:
      operationId: ProjectTemplatesController_createRun
      parameters:
      - name: id
        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/CreateRunDto'
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: Create a run from a template (steps are snapshotted)
      tags:
      - Project Templates
components:
  schemas:
    ReorderDto:
      type: object
      properties: {}
    StepDto:
      type: object
      properties: {}
    CreateTemplateDto:
      type: object
      properties: {}
    UpdateTemplateDto:
      type: object
      properties: {}
    UpdateStepDto:
      type: object
      properties: {}
    UpdateRunStepDto:
      type: object
      properties: {}
    CreateRunDto:
      type: object
      properties: {}
    UpdateRunDto:
      type: object
      properties: {}
  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.