snowloader

by Roni Das · thetotaltechnology@gmail.com

pypi python license

Comprehensive ServiceNow data loader for AI/LLM pipelines.

snowloader pulls data from ServiceNow - Incidents, Knowledge Base, CMDB, Changes, Problems, and Service Catalog - and converts it into document formats that LangChain, LlamaIndex, and other LLM frameworks consume directly. Built for production use with proper pagination, delta sync, retry logic, and memory-efficient streaming.

from snowloader import SnowConnection, IncidentLoader

conn = SnowConnection(
    instance_url="https://mycompany.service-now.com",
    username="admin",
    password="password",
)

loader = IncidentLoader(connection=conn, query="active=true")
for doc in loader.lazy_load():
    print(doc.page_content[:200])

Key features:

  • 7 loaders for core ServiceNow tables (including a dedicated attachment loader)

  • Async support via aiohttp for concurrent paginated fetches

  • CMDB relationship traversal with concurrent graph walking

  • Delta sync - only fetch records updated since your last sync

  • 4 authentication modes - Basic, OAuth Password, OAuth Client Credentials, Bearer Token

  • LangChain & LlamaIndex adapters (sync + async) with zero business logic

  • Production-grade - retry with backoff, rate limiting, thread safety, proxy support

  • Fully typed - PEP 561 compliant with py.typed marker

Created by Roni Das · GitHub · PyPI · thetotaltechnology@gmail.com