Skip to content

InCheck AI

InCheck is a single REST API for grounded, proprietary AI answers — backed by our own document-grounding engine and a built-in EMS knowledge layer.

It is not RAG. Our engine is purpose-built IP that materially outperforms off-the-shelf retrieval pipelines on accuracy and faithfulness — the answers your users get reflect what's actually in your documents, in your wording, with the right level of detail.

Two operating modes, one endpoint:

  • EMS mode — ask an EMS protocol question and get an answer scoped to ALS / BLS and a US state. No setup required beyond an API key.
  • Unified mode — onboard one or more documents into a Pod (one Pod per org_id), then chat against that Pod. Answers are grounded in your content with high fidelity.

A Pod is your private knowledge collection. You can add or replace files in a Pod at any time, hold many files in the same Pod, and maintain multiple Pods per organization (acme_dispatch, acme_protocols_ny, acme_handbook, …).

  • Get started in 10 minutes

    Generate an API key, ask an EMS question, then onboard your first Pod and query it.

  • HTTP API reference

    Every public endpoint — /chat and /documents/* — with parameters, payloads, and error shapes.

  • Python SDK

    pip install incheck. Sync and async clients, typed responses, streaming chat.

  • SDK reference

    Auto-generated types and docstrings.

How the two modes differ

EMS mode Unified mode
Use when You want a general EMS answer (drug dose, scope-specific protocol, scene safety, etc.). You want the answer grounded in your own documents.
Setup None. Just an API key. Onboard one or more docs into a Pod first.
org_id Omit. Required. Hierarchical; must start with your namespace.
scope + state Required. Required. Still flavors the EMS context around your retrieved content.
What you get Answer from general EMS knowledge. Answer grounded in your Pod, retrieved automatically.

How a Pod works

You upload PDFs, DOCX, PPTX, or XLSX files to a Pod via the Documents API. Once the processing job completes you can chat against that Pod by passing its org_id to /chat. That's the contract.

What happens between "upload" and "query" — extraction, structuring, grounding, retrieval-time decisioning — is our engine, and it is proprietary. If you've used generic retrieval pipelines before, the differences in accuracy and faithfulness will be obvious. If you need deeper guarantees, custom evaluations, or a tuned pipeline for your domain, talk to us.

Namespace scoping

Your API key is bound to one InCheck organization. We derive a namespace (lowercase letters and digits) from your subdomain, and every org_id you push to or chat against must start with <namespace>_. Cross-namespace requests are rejected at the gateway. That guarantees one customer can never see another's Pod.

Start with the quick start →