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

# Get deep-transform job status

> Check status and, once succeeded, the list of downloadable artifacts.



## OpenAPI

````yaml /api-v2.json get /documents/deep-transform/{job_id}
openapi: 3.1.0
info:
  title: Meibel AI API
  summary: Meibel Gateway Service
  description: >-
    Our API allows you to interact with our services. Read the
    [docs](https://docs.meibel.ai) to learn how to use it.
  version: 0.6.4
servers:
  - url: https://api.meibel.ai/v2
    description: Meibel API (v2)
  - url: https://api.dev.meibel.ai/v2
    description: Meibel Dev API (v2)
  - url: http://localhost:8000/v2
    description: Local Development
security: []
tags:
  - name: Datasources
    description: v2 datasource management
  - name: Data Elements
    description: v2 data element CRUD and search
  - name: File Upload
    description: Upload files to a datasource and track upload progress
  - name: Ingest
    description: Trigger and monitor datasource ingestion
  - name: Datasource Downloads
    description: Export all datasource content as a zip archive
  - name: Table Descriptions
    description: v2 table and column descriptions
  - name: Metadata Model Catalog
    description: v2 metadata model catalog
  - name: Confidence Scoring
    description: v2 confidence scoring jobs and summaries
  - name: Documents
    description: Parse and transform documents into structured data
  - name: Agents
    description: Agent definition management
  - name: Sessions
    description: Agent session (execution) management and chat
  - name: Execution Policies
    description: Data access and tool usage constraints scoped to agent sessions
  - name: Artifact Schemas
    description: Agent artifact schema management
paths:
  /documents/deep-transform/{job_id}:
    get:
      tags:
        - Documents
      summary: Get deep-transform job status
      description: Check status and, once succeeded, the list of downloadable artifacts.
      operationId: getDeepTransformStatus
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
            title: Job Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeepTransformJob'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
      x-codeSamples:
        - lang: Python
          label: Python
          source: |-
            import os
            from meibel import MeibelClient

            client = MeibelClient(api_key=os.environ["MEIBEL_API_KEY"])

            job = client.documents.get_deep_transform_status(
                job_id="dtj_8f3c2a1e9b7d4f6a",
            )

            print(f"status: {job.status}")

            if job.status == "succeeded":
                print(f"artifacts: {job.artifacts}")
                if job.metrics:
                    print(f"wall_ms: {job.metrics.wall_ms}")
            elif job.status == "failed":
                print(f"error: {job.error}")
        - lang: TypeScript
          label: TypeScript
          source: >-
            const client = new MeibelClient({ apiKey: process.env.MEIBEL_API_KEY
            });


            const job = await
            client.documents.getDeepTransformStatus("dtjob_8f3c2a1b");


            console.log(`Status: ${job.status}`);


            if (job.status === "succeeded") {
              console.log(`Artifacts: ${job.artifacts.join(", ")}`);
              console.log(`Wall time (ms): ${job.metrics?.wallMs}`);
            } else if (job.status === "failed") {
              console.log(`Error: ${job.error}`);
            }
        - lang: Go
          label: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\tv2 \"github.com/meibel-ai/meibel-go/v2\"\n)\n\nfunc main() {\n\tclient := v2.NewClient(v2.WithAPIKey(os.Getenv(\"MEIBEL_API_KEY\")))\n\n\tjob, err := client.Documents.GetDeepTransformStatus(context.Background(), \"job_9f3a2c7b1e4d\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"Status: %s\\n\", job.Status)\n\tif job.Status == \"succeeded\" {\n\t\tfmt.Printf(\"Artifacts: %v\\n\", job.Artifacts)\n\t}\n}"
components:
  schemas:
    DeepTransformJob:
      properties:
        job_id:
          type: string
          title: Job Id
          description: Deep-transform job id
        status:
          type: string
          title: Status
          description: queued | running | succeeded | failed
        artifacts:
          items:
            type: string
          type: array
          title: Artifacts
          description: Names of the artifacts available for download once the job succeeds
        metrics:
          anyOf:
            - $ref: '#/components/schemas/DeepTransformMetrics'
            - type: 'null'
          description: Run metrics (timing, counts)
        aeq:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Aeq
          description: Extraction quality (AEQ) summary
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: Failure reason when status is failed
      type: object
      required:
        - job_id
        - status
      title: DeepTransformJob
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    DeepTransformMetrics:
      properties:
        wall_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Wall Ms
          description: Total wall-clock time of the run
        floor_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Floor Ms
          description: Minimum achievable time given dependencies
        llm_concurrency_peak:
          anyOf:
            - type: integer
            - type: 'null'
          title: Llm Concurrency Peak
          description: Peak concurrent LLM calls
        identity_resolution_rate:
          anyOf:
            - type: number
            - type: 'null'
          title: Identity Resolution Rate
          description: Fraction of entities resolved to an identity
        orphan_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Orphan Count
          description: Entities with no incoming references
        dangling_edge_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Dangling Edge Count
          description: Edges pointing at a missing entity
        fragmented_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Fragmented Count
          description: Entities split across fragments
        scalar_conflicts_unresolved:
          anyOf:
            - type: integer
            - type: 'null'
          title: Scalar Conflicts Unresolved
          description: Scalar conflicts shipped un-arbitrated (DEGRADED resolution)
        uncovered_entity_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Uncovered Entity Count
          description: Entities not covered by the extraction
        failed_unit_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Failed Unit Count
          description: Work units that failed during the run
      type: object
      title: DeepTransformMetrics
      description: >-
        Public run metrics. Mirrors heron's RunMetrics minus internal cost
        fields (`cost_*_usd`),

        which are dropped: Pydantic ignores unknown keys, so any cost field
        heron sends is discarded.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: Meibel-API-Key

````