> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erdo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ResolveLeadCaptureAPI previews or records an audited disposition of a refused
capture.


> The original submission is loaded by the capture owner, never accepted in this request.




## OpenAPI

````yaml /api/openapi.json post /v1/datasets/{datasetSlug}/lead-captures/{captureID}/resolve
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, experiments, and bounded outreach.
    Authenticate with a Bearer API key (erdo_api_...) or scoped token
    (erdo_token_...).
  version: '2026-10-22'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/datasets/{datasetSlug}/lead-captures/{captureID}/resolve:
    post:
      summary: >
        ResolveLeadCaptureAPI previews or records an audited disposition of a
        refused

        capture.
      description: >
        The original submission is loaded by the capture owner, never accepted
        in this request.
      operationId: POST:mcp.ResolveLeadCaptureAPI
      parameters:
        - allowEmptyValue: true
          explode: false
          in: path
          name: datasetSlug
          required: true
          schema:
            type: string
          style: simple
        - allowEmptyValue: true
          explode: false
          in: path
          name: captureID
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              properties:
                action:
                  type: string
                apply:
                  type: boolean
                expected_snapshot:
                  type: string
                operation_key:
                  type: string
                reason:
                  type: string
                target_lead_id:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  already_applied:
                    type: boolean
                  applied:
                    type: boolean
                  capture:
                    $ref: '#/components/schemas/storage.CanonicalCaptureCase'
                  snapshot:
                    type: string
                  target_row:
                    additionalProperties:
                      type: string
                    type: object
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    storage.CanonicalCaptureCase:
      properties:
        candidate_ids:
          items:
            format: uuid
            type: string
          type: array
        created_at:
          format: date-time
          type: string
        dataset_id:
          format: uuid
          type: string
        disposition:
          $ref: '#/components/schemas/storage.CanonicalCaptureDisposition'
        evidence:
          $ref: '#/components/schemas/storage.CanonicalCaptureEvidence'
        id:
          format: uuid
          type: string
        operation_key:
          type: string
        organization_id:
          format: uuid
          type: string
        producer:
          type: string
        producer_revision:
          type: string
        resolution:
          type: string
        source_payload_digest:
          type: string
      type: object
    storage.CanonicalCaptureDisposition:
      properties:
        action:
          type: string
        actor_id:
          format: uuid
          type: string
        created_at:
          format: date-time
          type: string
        operation_key:
          type: string
        reason:
          type: string
        result_receipt_id:
          format: uuid
          type: string
        snapshot:
          type: string
        target_lead_id:
          format: uuid
          type: string
      type: object
    storage.CanonicalCaptureEvidence:
      properties:
        captured_at:
          format: date-time
          type: string
        execution_id:
          format: uuid
          type: string
        first_touch_columns:
          items:
            type: string
          type: array
        is_test:
          type: boolean
        normalized_capture:
          type: object
        pipeline_id:
          format: uuid
          type: string
        producer_columns:
          items:
            $ref: '#/components/schemas/storage.DeclaredColumn'
          type: array
        record_form_answers:
          title: >
            RecordFormAnswers preserves the original producer decision; unknown
            history is

            false.
          type: boolean
        trusted_test:
          type: boolean
      type: object
    storage.DeclaredColumn:
      description: >
        stored contract the write path enforces and consumers read instead of
        probing. Type uses the same vocabulary as ColumnTypeOverrides
        (text|integer|float|date| boolean). Ordinary enforcement validates
        column names and required presence; declared semantic roles additionally
        validate their closed fact vocabulary. General coercion against Type
        remains out of scope.
      properties:
        description:
          type: string
        name:
          type: string
        required:
          type: boolean
        semantic_role:
          description: >
            It is deliberately a closed platform vocabulary:
            canonical\_lead\_key, qualification\_captured\_at, purchase\_intent,
            budget\_min\_usd\_cents, budget\_max\_usd\_cents,
            qualification\_contract\_version, or buyer\_role. Consumers match
            the role, never a localized label or guessed column name.
          title: >
            SemanticRole gives a stable business meaning to this physical
            column.
          type: string
        type:
          type: string
      title: >
        DeclaredColumn is one column in a table-class dataset's declared schema
        — the
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.