Mindee Extraction API

Extract structured fields from invoices, receipts, IDs, passports, resumes, bank statements, and any other document type via Mindee's configurable extraction models. Enqueue a file at POST /v2/inferences/enqueue (or POST /v2/products/extraction/enqueue), reference your model_id, and retrieve the structured JSON result from GET /v2/inferences/{inference_id}. Supports RAG, raw text, polygons, and confidence scores depending on plan.

Mindee Extraction API is one of 6 APIs that Mindee publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 2 JSON Schema definitions.

Tagged areas include Document Parsing, OCR, Extraction, Invoices, and Receipts. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, a JSON-LD context, sample payloads, 1 Naftiko capability spec, and 2 JSON Schemas.

OpenAPI Specification

mindee-extraction-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Mindee Extraction API
  version: 2.0.0
  description: Extract structured fields from invoices, receipts, IDs, and other documents using Mindee's configurable extraction
    models.
  contact:
    name: Mindee
    url: https://mindee.com
  license:
    name: Proprietary
servers:
- url: https://api-v2.mindee.net
tags:
- name: Extraction
  description: Extract structured fields from invoices, receipts, IDs, and other documents using Mindee's configurable extraction
    models.
paths:
  /v2/products/extraction/enqueue:
    post:
      tags:
      - Extraction
      summary: Send A File For An Extraction Product Inference
      description: "Send a file to the asynchronous processing queue for an extraction inference.\n\nResults can be retrieved\
        \ in two ways:\n* Loop on the `polling_url` endpoint in the response until the status\n  is `Processed` or `Failed`\
        \ (polling).\n* Use a webhook to be notified when the inference is finished.\n  Webhooks can be configured on the\
        \ platform on a per-model basis.\n\nInferences taking longer than 590 seconds will time out."
      operationId: Enqueue_Extraction_Product_Inference_v2_products_extraction_enqueue_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                model_id:
                  type: string
                  format: uuid4
                  title: Model Id
                  description: Model ID to use for the inference.
                file:
                  anyOf:
                  - type: string
                    format: binary
                  - type: 'null'
                  title: File
                  description: Upload a file as bytes. Required if `url` is not provided.
                url:
                  anyOf:
                  - type: string
                    maxLength: 2048
                    minLength: 1
                    format: uri
                  - type: 'null'
                  title: Url
                  description: Download the file from a URL, must be secure (HTTPS) and publicly available. Required if `file`
                    is not provided.
                file_base64:
                  anyOf:
                  - type: string
                    minLength: 15
                  - type: 'null'
                  title: File Base64
                  description: Upload a file as a base 64 string. Used as an alternative to `file`. *Not recommended*, for
                    specific use only.
                  examples:
                  - Base64String==
                webhook_ids:
                  items:
                    type: string
                    format: uuid4
                  type: array
                  title: Webhook Ids
                  description: Webhook IDs to call after all processing is finished. If empty, no webhooks will be used. Can
                    be a list or comma-separated string.
                filename:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Filename
                  description: Optional filename to associate with the uploaded or fetched file.
                alias:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Alias
                  description: 'Optional: a free-form string to tag the request with your own identifier. For example, an
                    internal document ID, reference number, or database key. If set, it will be included in the job and result
                    responses.'
                  examples:
                  - my_file_alias
                raw_text:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Raw Text
                  description: Extract the entire text from the document as strings, and fill the `raw_text` attribute.
                polygon:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Polygon
                  description: Calculate bounding box polygons for values, and fill the `locations` attribute of fields
                confidence:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Confidence
                  description: Calculate confidence scores for values, and fill the `confidence` attribute of fields. Useful
                    for automation.
                rag:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Rag
                  description: Use Retrieval-Augmented Generation during inference.
                text_context:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Text Context
                  description: Pass additional context for use by the model, for this inference.
                  examples:
                  - This document is a receipt from a grocery store.
                data_schema:
                  anyOf:
                  - type: string
                    contentMediaType: application/json
                    contentSchema:
                      properties:
                        replace:
                          anyOf:
                          - properties:
                              fields:
                                items:
                                  properties:
                                    title:
                                      type: string
                                      title: Title
                                      description: Display name for the field, also impacts inference results.
                                    name:
                                      type: string
                                      title: Field Name
                                      description: Name of the field in the data schema.
                                      examples:
                                      - my_simple_field
                                    is_array:
                                      type: boolean
                                      title: Is Array
                                      description: Whether this field can contain multiple values
                                    unique_values:
                                      type: boolean
                                      title: Unique Values
                                      description: Whether to remove duplicate values in the array. Only applicable if `is_array`
                                        is True.
                                      default: false
                                    description:
                                      type: string
                                      title: Description
                                      description: Detailed description of what the field represents.
                                    guidelines:
                                      anyOf:
                                      - type: string
                                      - type: 'null'
                                      title: Guidelines
                                      description: Optional extraction guidelines.
                                    classification_values:
                                      items:
                                        type: string
                                      type: array
                                      title: Classification Values
                                      description: Allowed values when type is `classification`. Leave empty for other types.
                                    type:
                                      type: string
                                      enum:
                                      - string
                                      - number
                                      - date
                                      - boolean
                                      - classification
                                      - nested_object
                                      - object_detection
                                      - barcode
                                      title: FieldType
                                      description: Enumeration of valid field types for data schema fields.
                                    nested_fields:
                                      items:
                                        properties:
                                          title:
                                            type: string
                                            title: Title
                                            description: Display name for the field, also impacts inference results.
                                          name:
                                            type: string
                                            title: Field Name
                                            description: Name of the field in the data schema.
                                            examples:
                                            - my_simple_field
                                          is_array:
                                            type: boolean
                                            title: Is Array
                                            description: Whether this field can contain multiple values
                                          unique_values:
                                            type: boolean
                                            title: Unique Values
                                            description: Whether to remove duplicate values in the array. Only applicable
                                              if `is_array` is True.
                                            default: false
                                          description:
                                            type: string
                                            title: Description
                                            description: Detailed description of what the field represents.
                                          guidelines:
                                            anyOf:
                                            - type: string
                                            - type: 'null'
                                            title: Guidelines
                                            description: Optional extraction guidelines.
                                          classification_values:
                                            items:
                                              type: string
                                            type: array
                                            title: Classification Values
                                            description: Allowed values when type is `classification`. Leave empty for other
                                              types.
                                          type:
                                            type: string
                                            enum:
                                            - string
                                            - number
                                            - date
                                            - boolean
                                            - classification
                                            title: SubFieldType
                                            description: Enumeration of valid field types for subfields (excludes nested_object
                                              and object_detection).
                                        type: object
                                        required:
                                        - title
                                        - name
                                        - is_array
                                        - description
                                        - type
                                        title: SubFieldSchema
                                        description: Subfield model for nested objects in data models.
                                      type: array
                                      title: Nested Fields
                                      description: Subfields when type is `nested_object`. Leave empty for other types
                                  type: object
                                  required:
                                  - title
                                  - name
                                  - is_array
                                  - description
                                  - type
                                  title: FieldSchema
                                  description: A field in the data schema.
                                type: array
                                title: Fields
                                description: All fields in the Data Schema.
                            type: object
                            required:
                            - fields
                            title: ExtractionDataSchema
                            description: The JSON structure of an extraction model's data schema.
                          - type: 'null'
                          description: If set, completely replaces the data schema of the model.
                      type: object
                      title: DynamicDataSchema
                      description: Dynamic changes to the Data Schema of the model.
                  - type: 'null'
                  title: Data Schema
                  description: Dynamically change the data schema of the model, for this inference.
              type: object
              required:
              - model_id
              title: ExtractionEnqueueForm
              description: Form to enqueue an inference for extraction models.
          application/json:
            schema:
              properties:
                model_id:
                  type: string
                  format: uuid4
                  title: Model Id
                  description: Model ID to use for the inference.
                url:
                  anyOf:
                  - type: string
                    maxLength: 2048
                    minLength: 1
                    format: uri
                  - type: 'null'
                  title: Url
                  description: Download the file from a URL, must be secure (HTTPS) and publicly available. Required if `file`
                    is not provided.
                file_base64:
                  anyOf:
                  - type: string
                    minLength: 15
                  - type: 'null'
                  title: File Base64
                  description: Upload a file as a base 64 string. Used as an alternative to `file`. *Not recommended*, for
                    specific use only.
                  examples:
                  - Base64String==
                webhook_ids:
                  items:
                    type: string
                    format: uuid4
                  type: array
                  title: Webhook Ids
                  description: Webhook IDs to call after all processing is finished. If empty, no webhooks will be used. Can
                    be a list or comma-separated string.
                filename:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Filename
                  description: Optional filename to associate with the uploaded or fetched file.
                alias:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Alias
                  description: 'Optional: a free-form string to tag the request with your own identifier. For example, an
                    internal document ID, reference number, or database key. If set, it will be included in the job and result
                    responses.'
                  examples:
                  - my_file_alias
                raw_text:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Raw Text
                  description: Extract the entire text from the document as strings, and fill the `raw_text` attribute.
                polygon:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Polygon
                  description: Calculate bounding box polygons for values, and fill the `locations` attribute of fields
                confidence:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Confidence
                  description: Calculate confidence scores for values, and fill the `confidence` attribute of fields. Useful
                    for automation.
                rag:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Rag
                  description: Use Retrieval-Augmented Generation during inference.
                text_context:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Text Context
                  description: Pass additional context for use by the model, for this inference.
                  examples:
                  - This document is a receipt from a grocery store.
                data_schema:
                  anyOf:
                  - type: string
                    contentMediaType: application/json
                    contentSchema:
                      properties:
                        replace:
                          anyOf:
                          - properties:
                              fields:
                                items:
                                  properties:
                                    title:
                                      type: string
                                      title: Title
                                      description: Display name for the field, also impacts inference results.
                                    name:
                                      type: string
                                      title: Field Name
                                      description: Name of the field in the data schema.
                                      examples:
                                      - my_simple_field
                                    is_array:
                                      type: boolean
                                      title: Is Array
                                      description: Whether this field can contain multiple values
                                    unique_values:
                                      type: boolean
                                      title: Unique Values
                                      description: Whether to remove duplicate values in the array. Only applicable if `is_array`
                                        is True.
                                      default: false
                                    description:
                                      type: string
                                      title: Description
                                      description: Detailed description of what the field represents.
                                    guidelines:
                                      anyOf:
                                      - type: string
                                      - type: 'null'
                                      title: Guidelines
                                      description: Optional extraction guidelines.
                                    classification_values:
                                      items:
                                        type: string
                                      type: array
                                      title: Classification Values
                                      description: Allowed values when type is `classification`. Leave empty for other types.
                                    type:
                                      type: string
                                      enum:
                                      - string
                                      - number
                                      - date
                                      - boolean
                                      - classification
                                      - nested_object
                                      - object_detection
                                      - barcode
                                      title: FieldType
                                      description: Enumeration of valid field types for data schema fields.
                                    nested_fields:
                                      items:
                                        properties:
                                          title:
                                            type: string
                                            title: Title
                                            description: Display name for the field, also impacts inference results.
                                          name:
                                            type: string
                                            title: Field Name
                                            description: Name of the field in the data schema.
                                            examples:
                                            - my_simple_field
                                          is_array:
                                            type: boolean
                                            title: Is Array
                                            description: Whether this field can contain multiple values
                                          unique_values:
                                            type: boolean
                                            title: Unique Values
                                            description: Whether to remove duplicate values in the array. Only applicable
                                              if `is_array` is True.
                                            default: false
                                          description:
                                            type: string
                                            title: Description
                                            description: Detailed description of what the field represents.
                                          guidelines:
                                            anyOf:
                                            - type: string
                                            - type: 'null'
                                            title: Guidelines
                                            description: Optional extraction guidelines.
                                          classification_values:
                                            items:
                                              type: string
                                            type: array
                                            title: Classification Values
                                            description: Allowed values when type is `classification`. Leave empty for other
                                              types.
                                          type:
                                            type: string
                                            enum:
                                            - string
                                            - number
                                            - date
                                            - boolean
                                            - classification
                                            title: SubFieldType
                                            description: Enumeration of valid field types for subfields (excludes nested_object
                                              and object_detection).
                                        type: object
                                        required:
                                        - title
                                        - name
                                        - is_array
                                        - description
                                        - type
                                        title: SubFieldSchema
                                        description: Subfield model for nested objects in data models.
                                      type: array
                                      title: Nested Fields
                                      description: Subfields when type is `nested_object`. Leave empty for other types
                                  type: object
                                  required:
                                  - title
                                  - name
                                  - is_array
                                  - description
                                  - type
                                  title: FieldSchema
                                  description: A field in the data schema.
                                type: array
                                title: Fields
                                description: All fields in the Data Schema.
                            type: object
                            required:
                            - fields
                            title: ExtractionDataSchema
                            description: The JSON structure of an extraction model's data schema.
                          - type: 'null'
                          description: If set, completely replaces the data schema of the model.
                      type: object
                      title: DynamicDataSchema
                      description: Dynamic changes to the Data Schema of the model.
                  - type: 'null'
                  title: Data Schema
                  description: Dynamically change the data schema of the model, for this inference.
              type: object
              required:
              - model_id
              title: ExtractionEnqueueForm
              description: Form to enqueue an inference for extraction models.
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResponse'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - APIKeyHeader: []
  /v2/inferences/enqueue:
    post:
      tags:
      - Extraction
      summary: Send A File For An Extraction Product Inference
      description: "Send a file to the asynchronous processing queue for an extraction inference.\n\nResults can be retrieved\
        \ in two ways:\n* Loop on the `polling_url` endpoint in the response until the status\n  is `Processed` or `Failed`\
        \ (polling).\n* Use a webhook to be notified when the inference is finished.\n  Webhooks can be configured on the\
        \ platform on a per-model basis.\n\nInferences taking longer than 590 seconds will time out."
      operationId: Enqueue_Extraction_Product_Inference_v2_inferences_enqueue_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                model_id:
                  type: string
                  format: uuid4
                  title: Model Id
                  description: Model ID to use for the inference.
                file:
                  anyOf:
                  - type: string
                    format: binary
                  - type: 'null'
                  title: File
                  description: Upload a file as bytes. Required if `url` is not provided.
                url:
                  anyOf:
                  - type: string
                    maxLength: 2048
                    minLength: 1
                    format: uri
                  - type: 'null'
                  title: Url
                  description: Download the file from a URL, must be secure (HTTPS) and publicly available. Required if `file`
                    is not provided.
                file_base64:
                  anyOf:
                  - type: string
                    minLength: 15
                  - type: 'null'
                  title: File Base64
                  description: Upload a file as a base 64 string. Used as an alternative to `file`. *Not recommended*, for
                    specific use only.
                  examples:
                  - Base64String==
                webhook_ids:
                  items:
                    type: string
                    format: uuid4
                  type: array
                  title: Webhook Ids
                  description: Webhook IDs to call after all processing is finished. If empty, no webhooks will be used. Can
                    be a list or comma-separated string.
                filename:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Filename
                  description: Optional filename to associate with the uploaded or fetched file.
                alias:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Alias
                  description: 'Optional: a free-form string to tag the request with your own identifier. For example, an
                    internal document ID, reference number, or database key. If set, it will be included in the job and result
                    responses.'
                  examples:
                  - my_file_alias
                raw_text:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Raw Text
                  description: Extract the entire text from the document as strings, and fill the `raw_text` attribute.
                polygon:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Polygon
                  description: Calculate bounding box polygons for values, and fill the `locations` attribute of fields
                confidence:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Confidence
                  description: Calculate confidence scores for values, and fill the `confidence` attribute of fields. Useful
                    for automation.
                rag:
                  anyOf:
                  - type: boolean
                  - type: 'null'
                  title: Rag
                  description: Use Retrieval-Augmented Generation during inference.
                text_context:
                  anyOf:
                  - type: string
                  - type: 'null'
                  title: Text Context
                  description: Pass additional context for use by the model, for this inference.
                  examples:
                  - This document is a receipt from a grocery store.
                data_schema:
                  anyOf:
                  - type: string
                    contentMediaType: application/json
                    contentSchema:
                      properties:
                        replace:
                          anyOf:
                          - properties:
                              fields:
                                items:
                                  properties:
                                    title:
                                      type: string
                                      title: Title
                                      description: Display name for the field, also impacts inference results.
      

# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mindee/refs/heads/main/openapi/mindee-extraction-api-openapi.yml