nv-ingest-client
Python client for the nv-ingest service
What it is and what it does
NV-Ingest-Client is a Python library that acts as a client interface to NVIDIA's nv-ingest microservice, enabling programmatic submission and management of document processing jobs. It abstracts the complexity of communicating with the microservice by providing a high-level API for defining jobs, configuring extraction and splitting tasks, and submitting them for processing. The library includes task factories for common operations like text extraction from PDFs and document splitting by word, sentence, or passage boundaries, along with a command-line interface for direct terminal use.
The package is designed for workflows that require batch processing of large document collections—extracting text and images from PDFs, splitting documents into chunks for embedding or retrieval systems, and preparing data for downstream AI/ML pipelines. It depends on standard HTTP and data-handling libraries (httpx, requests, pydantic) to communicate with the microservice and manage job specifications, making it suitable for integration into data preparation and retrieval-augmented generation (RAG) systems.
Use it for:
- Extract text and images from PDF documents in bulk and submit them to a processing pipeline via the nv-ingest service.
- Split large documents into smaller chunks with configurable overlap for use in vector databases or semantic search systems.
- Automate document ingestion workflows by defining job specifications with multiple extraction and splitting tasks.
- Build data preparation pipelines that transform raw documents into structured, embeddings-ready text chunks.
- Monitor and manage the status of long-running document processing jobs submitted to a remote nv-ingest microservice.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python client library for submitting and managing document ingestion and processing jobs to the NVIDIA nv-ingest microservice, with support for extraction, splitting, and other data preparation tasks.
Yes, if you are building a document ingestion or data preparation pipeline that integrates with NVIDIA's nv-ingest microservice. The package has low install friction, active maintenance, permissive licensing, and no known vulnerabilities. Install only if you have a running nv-ingest microservice instance available and need Python-level control over job submission and task configuration; it is not a standalone tool.
Install
nv-ingest-client on PyPI
pip
pip install nv-ingest-clientuv
uv add nv-ingest-clientpoetry
poetry add nv-ingest-clientInstalling nv-ingest-client
Before you install
Low install friction with a pure Python wheel distribution. Active maintenance with recent releases; last commit 2026-08-14. Requires Python 3.11 or later. Depends on 12 runtime packages including pydantic, httpx, and lancedb, all widely available.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions beyond attribution and license inclusion.
Quickstart
pip install nv-ingest-client
from nv_ingest_client.client.client import NvIngestClient
from nv_ingest_client.primitives.jobs import JobSpec
from nv_ingest_client.primitives.tasks import ExtractTask
client = NvIngestClient(message_client_hostname="localhost", message_client_port=7670)
extract_task = ExtractTask(document_type="pdf", extract_text=True)
job_spec = JobSpec(payload={"data": "example"}, tasks=[extract_task])
response = client.submit_job(job_spec)
Requires a running nv-ingest microservice instance accessible at the specified hostname and port (defaults to localhost:7670); Python 3.11 or later required.
Verify before relying
- Whether the package works with Python versions newer than 3.11 (classifier only lists 3.11 explicitly)
- Performance characteristics and throughput limits for large-scale document ingestion
- Retry and error-handling behavior when the microservice is unavailable or slow to respond
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 12 — build, charset-normalizer, click, fsspec, httpx, pydantic, pydantic-settings, requests, urllib3, setuptools, tqdm, lancedb |
| Maintenance | actively maintained — 151 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 85,003/month — #13,960 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nv_ingest_client-26.3.0-py3-none-any.whl
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
nvidia-nat-evalProvides evaluation components and CLI commands…
permissive · top 15,000 on PyPI
nvidia-nat-atifProvides ATIF schema models for the NVIDIA NeMo…
permissive · top 15,000 on PyPI
unstructured-ingestUnstructured Ingest is a local ETL pipeline…
permissive · top 15,000 on PyPI
cuda-bindingsProvides low-level Python bindings for CUDA…
unclear · top 1,000 on PyPI
nvidia-nat-mcpIntegrates MCP (Model Context Protocol) servers…
permissive · top 15,000 on PyPI
nvidia-nat-langchainIntegrates LangChain and LangGraph with…
permissive · top 15,000 on PyPI
groundxA Python client library for the GroundX API…
permissive · top 15,000 on PyPI
wmillwmill is a Python client library for the…
permissive · top 5,000 on PyPI
pydiscourseA Python client library for the Discourse API…
permissive · top 15,000 on PyPI
llama-index-indices-managed-llama-cloudProvides deprecated integration for creating…
permissive · top 1,000 on PyPI