openapi: 3.2.0 info: title: LDM v3 Custom Extract 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: Custom Extract paths: /api/custom-extract: post: operationId: CustomExtractController_run 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/CustomExtractRequestDto' responses: '200': description: '' security: - jwt: [] summary: '#972 custom extraction over ALREADY supplied material: a word/word list…' tags: - Custom Extract /api/custom-extract/{jobId}: get: operationId: CustomExtractController_getStatus parameters: - name: jobId 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: '#972 status/result of a PROMPT custom-extraction job enqueued by the POST above.' tags: - Custom Extract components: schemas: CustomExtractRequestDto: type: object properties: material: type: string rule: $ref: '#/components/schemas/ExtractRuleDto' context: type: string maxLength: 100 contextId: type: string maxLength: 200 required: - rule ExtractRuleDto: type: object properties: type: type: object keywords: type: array items: type: string matchMode: type: object caseSensitive: type: boolean pattern: type: string maxLength: 300 query: type: string maxLength: 2000 promptOverride: type: string maxLength: 8000 required: - type securitySchemes: jwt: scheme: bearer bearerFormat: JWT type: http description: JWT access token from /auth/login (Bearer ) 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.