# JTH LabVerify AI — FDA CLIA Record Lookup Research Beta (`jthuntenterprisesllc/jth-labverify-clia`) Actor

RESEARCH BETA — NOT INDEPENDENTLY CLINICALLY OR REGULATORILY VALIDATED. Retrieves source-attributed FDA CLIA categorization records for research. No laboratory authorization determination or clinical advice. Verify official FDA/CMS records. No FDA/CMS affiliation or endorsement.

- **URL**: https://apify.com/jthuntenterprisesllc/jth-labverify-clia.md
- **Developed by:** [J T Hunt Enterprises LLC](https://apify.com/jthuntenterprisesllc) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 50.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## JTH LabVerify AI — FDA CLIA Record Lookup Research Beta

RESEARCH BETA — NOT INDEPENDENTLY CLINICALLY OR REGULATORILY VALIDATED

JTH LabVerify AI retrieves publicly available FDA CLIA categorization information for research and informational purposes. It does not independently determine test complexity, establish laboratory authorization, provide clinical advice, or replace official FDA/CMS guidance, manufacturer instructions, or qualified regulatory judgment.

J T Hunt Enterprises LLC is not affiliated with or endorsed by the FDA or CMS.

Users must verify current official records before making laboratory, clinical, or compliance decisions.

### Scope

Retrieve source-attributed FDA CLIA categorization records for laboratory test classification research and laboratory regulatory data workflows. Only `lookup` is enabled. Crosswalk, change-sentinel, clinical decisions, and laboratory authorization determinations are unavailable. Do not submit patient information, PHI, credentials, or private records.

### Source and freshness

Source: https://www.accessdata.fda.gov/premarket/ftparea/clia_detail.zip

FDA field documentation: https://www.fda.gov/medical-devices/medical-device-databases/clinical-laboratory-improvement-amendments-download-data

Official record search: https://www.accessdata.fda.gov/Scripts/cdrh/cfdocs/cfClia/search.cfm

The Actor downloads the official archive on each run but accepts only the pinned, technically checked archive. It is not an unrestricted live-update service. The accepted archive was last modified October 26, 2026 at 09:10:03 UTC and was checked again October 30, 2026 at 08:25:03 UTC. It contains 81,155 records. SHA-256: `b3d15060739adb72487a3dc772c6fae3fcd63ce14222535cc199983044d0bc54`.

Five reference records matched all ten source fields and 39 source tests passed. These targeted checks do not constitute comprehensive validation of the FDA database or independent clinical/regulatory validation. Download failure, changed hash, invalid structure, unknown categories, or failed reference checks stop the run without emitting results. A changed source requires review and retesting before acceptance.

### Input

```json
{
  "operation": "lookup",
  "queries": [{
    "documentNumber": "CR200192",
    "testSystemName": "Abbott Diagnostics Scarborough Inc., BinaxNOW Strep A Card",
    "analyteName": "Streptococcus, group A",
    "qualifier": "Direct from Throat Swabs"
  }],
  "maxCandidates": 10
}
```

Supply 1–20 queries. Each identifier must be a string no longer than 512 characters. At least a document number, test-system name, or analyte is required. `maxCandidates` is an integer from 1 to 50, default 10. Unknown fields and other operations are rejected before downloading. Matching is case-insensitive with whitespace normalization; punctuation is preserved. Broad queries return candidates, not a classification decision.

### Output interpretation

| Status | Meaning |
| --- | --- |
| `exact_record_found` | One source row matches document, system, analyte and applicable qualifier. `reported_complexity` repeats FDA's field; it is not an independent determination. |
| `ambiguous_or_incomplete` | Multiple rows or incomplete identifiers; no preferred classification or `reported_complexity`. |
| `qualifier_review_required` | A matching row has a qualifier that was not supplied; no `reported_complexity`. |
| `no_exact_match` | No row matches the supplied filters. This does not mean a product lacks clearance or a laboratory is unauthorized. |

Each result includes query, candidates with FDA fields and source attribution, `total_exact_filter_hits`, `truncated`, source metadata and a limitation notice. `date_effective` is FDA's categorization date, not the fetch date. Check `http_last_modified`, `checked_at_utc`, and the archive hash for provenance. If `truncated` is true, increase `maxCandidates` up to 50 or narrow the query; never treat the displayed subset as complete or ranked.

K960712 / BinaxNOW Strep A Card / Streptococcus, group A / direct from throat swab has both MODERATE and WAIVED rows in the accepted archive. Both are preserved, with ambiguous status and no selected classification. Seek official clarification rather than assuming one supersedes the other.

The output schema links to the run's dataset. Confirm the run succeeded before using its output. The following non-sensitive example is from the private cloud regression, not a new clinical interpretation.

```json
{
  "status": "ambiguous_or_incomplete",
  "query": {
    "document_number": "K960712",
    "test_system_name": "BinaxNOW Strep A Card",
    "analyte_name": "Streptococcus, group A",
    "qualifier": "direct from throat swab"
  },
  "total_exact_filter_hits": 2,
  "candidates": [
    {
      "document_number": "K960712",
      "test_system_id": "21324",
      "test_system_name": "BinaxNOW Strep A Card",
      "qualifier1": "",
      "qualifier2": "direct from throat swab",
      "analyte_id": "104",
      "analyte_name": "Streptococcus, group A",
      "specialty_id": "8",
      "complexity": "MODERATE",
      "date_effective": "2013/01/16 00:00:00.000",
      "specialty_name": "Bacteriology",
      "source_database": "https://www.accessdata.fda.gov/Scripts/cdrh/cfdocs/cfClia/search.cfm"
    },
    {
      "document_number": "K960712",
      "test_system_id": "21324",
      "test_system_name": "BinaxNOW Strep A Card",
      "qualifier1": "",
      "qualifier2": "direct from throat swab",
      "analyte_id": "104",
      "analyte_name": "Streptococcus, group A",
      "specialty_id": "8",
      "complexity": "WAIVED",
      "date_effective": "2013/01/16 00:00:00.000",
      "specialty_name": "Bacteriology",
      "source_database": "https://www.accessdata.fda.gov/Scripts/cdrh/cfdocs/cfClia/search.cfm"
    }
  ],
  "truncated": false,
  "source": {
    "source": "https://www.accessdata.fda.gov/premarket/ftparea/clia_detail.zip",
    "archive_sha256": "b3d15060739adb72487a3dc772c6fae3fcd63ce14222535cc199983044d0bc54",
    "http_last_modified": "Mon, 26 Oct 2026 09:10:03 GMT",
    "record_count": 81155,
    "source_type": "official_fda_download",
    "structural_validation": {
      "structure_check_passed": true,
      "record_count": 81155,
      "complexity_counts": {
        "moderate": 47442,
        "waived": 21893,
        "high": 11820
      },
      "archive_sha256": "b3d15060739adb72487a3dc772c6fae3fcd63ce14222535cc199983044d0bc54",
      "limitation": "Structural integrity only; complete regulatory record accuracy not verified."
    },
    "checked_at_utc": "2026-10-30T06:22:36.562270+00:00",
    "reviewed_archive_match": true,
    "five_record_checks_passed": true
  },
  "notice": "A record match is not a determination of laboratory authorization, current marketing status, specimen configuration or compliance. Verify applicable manufacturer instructions and FDA/CMS sources."
}
```

### Pricing and limits

Intended beta model: Apify pay per usage with no additional JTH developer fee. Apify platform compute/storage/data usage may consume the user's included allowance or be billed under that user's plan. No JTH pay-per-event charge, subscription, external AI call, paid proxy, or Standby capability is provided. Do not describe this as unlimited or universally cost-free.

### Limitations and review

No professional review approval, certification, FDA/CMS endorsement, clinical validation, or compliance guarantee is claimed. Records may be historical or ambiguous; absence of a match is inconclusive. Verify current official records, exact configuration, manufacturer instructions, and applicable FDA/CMS requirements before decisions. Voluntary external courtesy review and FDA clarification remain outstanding; findings will be assessed through controlled updates and retesting.

Documentation prepared October 30, 2026 by J T Hunt Enterprises LLC. Publication status must be verified separately.

# Actor input Schema

## `queries` (type: `array`):

Enter up to 20 precise searches; include full test system name, analyte, document number and specimen qualifier when known.

## `maxCandidates` (type: `integer`):

Ambiguous matches remain unverified

## `operation` (type: `string`):

Only public FDA record lookup is enabled.

## Actor input object example

```json
{
  "queries": [
    {
      "documentNumber": "CR200192",
      "testSystemName": "Abbott Diagnostics Scarborough Inc., BinaxNOW Strep A Card",
      "analyteName": "Streptococcus, group A",
      "qualifier": "Direct from Throat Swabs"
    }
  ],
  "maxCandidates": 10,
  "operation": "lookup"
}
```

# Actor output Schema

## `results` (type: `string`):

Lookup results with candidates, provenance and ambiguity warnings. Check run success before use.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        {
            "documentNumber": "CR200192",
            "testSystemName": "Abbott Diagnostics Scarborough Inc., BinaxNOW Strep A Card",
            "analyteName": "Streptococcus, group A",
            "qualifier": "Direct from Throat Swabs"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jthuntenterprisesllc/jth-labverify-clia").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": [{
            "documentNumber": "CR200192",
            "testSystemName": "Abbott Diagnostics Scarborough Inc., BinaxNOW Strep A Card",
            "analyteName": "Streptococcus, group A",
            "qualifier": "Direct from Throat Swabs",
        }] }

# Run the Actor and wait for it to finish
run = client.actor("jthuntenterprisesllc/jth-labverify-clia").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    {
      "documentNumber": "CR200192",
      "testSystemName": "Abbott Diagnostics Scarborough Inc., BinaxNOW Strep A Card",
      "analyteName": "Streptococcus, group A",
      "qualifier": "Direct from Throat Swabs"
    }
  ]
}' |
apify call jthuntenterprisesllc/jth-labverify-clia --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jthuntenterprisesllc/jth-labverify-clia"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hIHafnYk1uoWRKi3M/builds/sciINyZxIkfkfX54Z/openapi.json
