Live Direct Marketing Tracking API

The Tracking API from Live Direct Marketing — 14 operation(s) for tracking.

Business capability
Digital Marketing Management BC-400.60

Operations 17

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/t/o/{trackingId}.gif Serve the open-tracking pixel and log an open · Serve a 1x1 tracking pixel GIF and log an OPEN event. #
Ask an LLM
“How are email opens recorded when a recipient loads the image?”
“What happens when the 1x1 tracking pixel in a campaign email is requested?”
Tell an agent
Load the open pixel for tracking id {trackingId} to log an open.
Record an email open for {trackingId} via the tracking GIF.
GET /api/t/c/{trackingId}/{slug} Follow a tracked campaign click and log it · Redirect a tracked click (/t/c/:trackingId/:slug) to target and log a CLICK. #
Ask an LLM
“How does a clicked link in a campaign email get logged before redirecting?”
“Do bots get sent to a decoy URL when they click a campaign link?”
Tell an agent
Open the campaign click link {slug} for tracking id {trackingId}.
Follow tracked click {trackingId}/{slug} and record the CLICK.
GET /api/r/{slug} Follow a short redirect link without logging · Short redirect by slug (/r/:slug) — click path for directly-created links… #
Ask an LLM
“Where does a short /r/ link I created directly send people?”
“Why don't clicks on my directly-created short links show up in analytics?”
Tell an agent
Resolve the short redirect link {slug}.
Follow the /r/{slug} short link with cloaking applied.
GET /api/tracking/links/{slug} Look up a tracking link · Get tracking link info by slug #
Ask an LLM
“Where does a given tracking link point and is it cloaked?”
“How do I see the details of a short link by its slug?”
Tell an agent
Show the tracking link {slug}.
Get the target URL and cloak mode of link {slug}.
POST /api/tracking/simulate-click Test a link's cloaking decision without logging · Dry-run the cloaking decision for a link given userAgent/ip/v — returns… #
Ask an LLM
“Would a given user agent be sent to the target, the decoy or a captcha?”
“Can I dry-run a link's bot cloaking without moving the click counters?”
Tell an agent
Simulate a click on my link with a crawler user agent and show the verdict.
Dry-run the cloaking decision for this link from a given IP.
GET /api/tracking/events List raw open and click tracking events · List raw tracking events (type filter: OPEN | CLICK | BOT_CLICK). #
Ask an LLM
“Which opens and clicks did a specific contact generate?”
“Can I filter raw tracking events to bot clicks only within a date range?”
Tell an agent
List {type} tracking events for contact {contactId}.
Show tracking events for dialog {dialogId} between {from} and {to}.
GET /api/tracking/stats Get tracking totals for a sending task · Get aggregated tracking stats for a task #
Ask an LLM
“How many opens and clicks did one sending task get?”
“Where are the aggregated tracking counts for a task?”
Tell an agent
Get the tracking stats for task {taskId}.
Total up opens and clicks for task {taskId}.
GET /api/tracking/pixel-settings Get open-pixel tracking settings · Get tenant pixel tracking settings #
Ask an LLM
“Is open-pixel tracking turned on for my workspace?”
“Which domain serves our tracking pixel?”
Tell an agent
Show our pixel tracking settings.
Fetch the workspace open-pixel configuration.
PATCH /api/tracking/pixel-settings Update open-pixel tracking settings · Update tenant pixel tracking settings #
Ask an LLM
“How do I turn off open tracking pixels?”
“Can I change the source domain for our open pixel?”
Tell an agent
Disable open-pixel tracking for the workspace.
Update our pixel tracking settings to use our own domain.
GET /api/tracking/analytics/stats Get open and click rates · Aggregated tracking analytics (open rate, click rate, unique opens/clicks). #
Ask an LLM
“What open rate and click rate did a campaign task achieve?”
“How many unique opens and unique clicks came in over a date range?”
Tell an agent
Show open and click rates for task {taskId} from {from} to {to}.
Get unique opens and clicks for dialog {dialogId}.
GET /api/tracking/analytics/timeline Chart opens and clicks over time · Get opens/clicks timeline #
Ask an LLM
“How did opens and clicks trend day by day for a task?”
“Can I get an opens and clicks timeline for the last 30 days?”
Tell an agent
Plot the opens and clicks timeline for task {taskId} over {days} days.
Show daily engagement for task {taskId}.
GET /api/tracking/analytics/email-clients Break down opens by email client · Get email client distribution from tracking events #
Ask an LLM
“Which email clients do my recipients open messages in?”
“What share of opens come from each mail app?”
Tell an agent
Show the email client distribution from tracking events.
Break down opens by mail client.
GET /api/tracking/analytics/devices Break down engagement by device type · Get device type distribution from tracking events #
Ask an LLM
“Do my recipients mostly read on mobile or desktop?”
“What is the device type split across tracking events?”
Tell an agent
Show the device type distribution of tracking events.
Break down engagement by mobile, desktop and tablet.

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-tracking-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-tracking-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LDM v3 Tracking 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: Tracking
paths:
  /api/t/o/{trackingId}.gif:
    get:
      operationId: TrackingController_pixelOpen
      parameters:
      - name: trackingId
        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: Serve a 1x1 tracking pixel GIF and log an OPEN event.
      tags:
      - Tracking
  /api/t/c/{trackingId}/{slug}:
    get:
      operationId: TrackingController_clickRedirect
      parameters:
      - name: trackingId
        required: true
        in: path
        schema:
          type: string
      - name: slug
        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: Redirect a tracked click (/t/c/:trackingId/:slug) to target and log a CLICK.
      tags:
      - Tracking
  /api/r/{slug}:
    get:
      operationId: TrackingController_legacyRedirect
      parameters:
      - name: slug
        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: Short redirect by slug (/r/:slug) — click path for directly-created links…
      tags:
      - Tracking
  /api/tracking/links:
    post:
      operationId: TrackingController_createLink
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: Create a tracking link.
      tags:
      - Tracking
      x-required-scope:
      - mailing:write
  /api/tracking/links/{slug}:
    get:
      operationId: TrackingController_getLinkInfo
      parameters:
      - name: slug
        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 tracking link info by slug
      tags:
      - Tracking
    patch:
      operationId: TrackingController_updateLink
      parameters:
      - name: slug
        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: 'Update a tracking link: cloakMode (off|bot_split|captcha), botDecoyUrl and/or…'
      tags:
      - Tracking
    delete:
      operationId: TrackingController_deleteLink
      parameters:
      - name: slug
        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 tracking link by slug
      tags:
      - Tracking
  /api/tracking/simulate-click:
    post:
      operationId: TrackingController_simulateClick
      parameters:
      - name: X-Tenant-Id
        in: header
        required: false
        schema:
          type: string
          format: uuid
        description: Tenant UUID — required for all tenant-scoped endpoints
      responses:
        '201':
          description: ''
      security:
      - jwt: []
      summary: Dry-run the cloaking decision for a link given userAgent/ip/v — returns…
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/events:
    get:
      operationId: TrackingController_getEvents
      parameters:
      - name: mailingItemId
        required: true
        in: query
        schema:
          type: string
      - name: dialogId
        required: true
        in: query
        schema:
          type: string
      - name: contactId
        required: true
        in: query
        schema:
          type: string
      - name: type
        required: true
        in: query
        schema:
          type: string
      - name: from
        required: true
        in: query
        schema:
          type: string
      - name: to
        required: true
        in: query
        schema:
          type: string
      - name: page
        required: true
        in: query
        schema:
          type: string
      - name: limit
        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 raw tracking events (type filter: OPEN | CLICK | BOT_CLICK).'
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/stats:
    get:
      operationId: TrackingController_getStats
      parameters:
      - name: taskId
        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: Get aggregated tracking stats for a task
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/pixel-settings:
    get:
      operationId: TrackingController_getPixelSettings
      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: Get tenant pixel tracking settings
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
    patch:
      operationId: TrackingController_updatePixelSettings
      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: Update tenant pixel tracking settings
      tags:
      - Tracking
      x-required-scope:
      - mailing:write
  /api/tracking/analytics/stats:
    get:
      operationId: TrackingController_getAnalyticsStats
      parameters:
      - name: taskId
        required: true
        in: query
        schema:
          type: string
      - name: dialogId
        required: true
        in: query
        schema:
          type: string
      - name: from
        required: true
        in: query
        schema:
          type: string
      - name: to
        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: Aggregated tracking analytics (open rate, click rate, unique opens/clicks).
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/analytics/timeline:
    get:
      operationId: TrackingController_getTimeline
      parameters:
      - name: taskId
        required: true
        in: query
        schema:
          type: string
      - name: days
        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: Get opens/clicks timeline
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/analytics/top-links:
    get:
      operationId: TrackingController_getTopLinks
      parameters:
      - name: taskId
        required: true
        in: query
        schema:
          type: string
      - name: limit
        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: Top clicked links with per-link click counts (from campaign-sent CLICK events)
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/analytics/email-clients:
    get:
      operationId: TrackingController_getEmailClients
      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: Get email client distribution from tracking events
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
  /api/tracking/analytics/devices:
    get:
      operationId: TrackingController_getDevices
      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: Get device type distribution from tracking events
      tags:
      - Tracking
      x-required-scope:
      - mailing:read
components:
  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.