canonical: https://jentic.com/apis/labgnostic.com/labgnostic

# Labgnostic EQA Public API

The Labgnostic EQA Public API sets up external quality assessment programmes for clinical laboratories on the Labgnostic platform. A provider creates or updates a programme by its programmeCode, defines the analytes it tests with their codes, coding systems, and accepted units, and schedules assessment events whose challenges list the specimens and analytes labs must test. Events can be upserted one at a time or in batches, listed by start date with paging, and deleted, and a global units-of-measure list supplies the valid units for analyte setup.

## For AI agents

Create and update Labgnostic EQA programmes, configure the analytes they test, and schedule or remove assessment events with their challenges and specimens.

## Scope

Does not handle patient records, lab result submission by participating labs, or specimen shipping. Use for configuring EQA programmes, their analytes, and assessment events only.

## Capabilities

- Create or update an EQA programme by programmeCode with a name and description
- Replace a programme's analytes with name, code, codingSystem, and accepted units, or use the multicode form with Quantitative or Qualitative type and several analyteCodes
- Upsert an assessment event with startDate, endDate, and challenges that list specimens by typeCode and the analyte codes each specimen is tested for
- Upsert many assessment events for a programme in a single request
- List a programme's assessment events filtered by minStartDateTime and maxStartDateTime with pageIndex and pageSize paging
- Read the global units-of-measure list to pick valid units for programme analytes

## Use cases

### Programme and Analyte Setup

An EQA provider launching a new scheme creates the programme by its programmeCode, checks the global units-of-measure list, and then sets the programme's analytes with their codes, coding systems, and the units labs may report in. The multicode variant lets one analyte carry several codes with a Quantitative or Qualitative type, which suits schemes that accept results under more than one coding system.

Example prompt: Call PUT `/programmes/{programmeCode}` with programmeCode 'CHEM-01' and name 'General Chemistry', GET `/globals/units-of-measure`, then PUT `/programmes/{programmeCode}/analytes` with analytes for glucose and creatinine and their units

### Scheduling Assessment Events

Each round of an EQA scheme is an assessment event. The agent upserts an event by assessmentEventCode with startDate and endDate and a set of challenges, where each challenge has a unique code and lists specimens by typeCode with the programme analytes they are tested for. A whole year of rounds can be sent in one batch upsert.

Example prompt: Call PUT `/programmes/{programmeCode}/assessment-events/{assessmentEventCode}` for 'CHEM-01-2026-Q1' with startDate '2026-01-12', endDate '2026-01-30', and one challenge with code 'A' and a serum specimen testing glucose

### Round Calendar Review

Before sending specimens, a coordinator agent lists the programme's assessment events within a start-date window, pages through the results, and reads any single event to confirm its challenges and dates. Events created in error can be deleted by programme and event code.

Example prompt: Call GET `/programmes/{programmeCode}/assessment-events` with minStartDateTime '2026-01-01T00:00:00Z' and maxStartDateTime '2026-03-31T23:59:59Z', then GET the first event by its assessmentEventCode

### AI Agent EQA Administration via Jentic

An AI agent maintains Labgnostic programmes through Jentic without handling the JWT itself. It searches by intent, receives the matching programme, analyte, or assessment-event operation with its input schema, and executes with the bearer token injected at run time, so updating a scheme's rounds becomes one step in a larger lab-operations workflow.

Example prompt: Search Jentic for 'schedule an EQA assessment event', load the UpsertAssessmentEventEndpoint schema, and execute it with the programmeCode, assessmentEventCode, dates, and challenges

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | `/programmes/{programmeCode}` | Create or update a programme |
| GET | `/programmes/{programmeCode}` | Get a programme |
| PUT | `/programmes/{programmeCode}/analytes` | Update programme analytes |
| PUT | `/programmes/{programmeCode}/assessment-events/{assessmentEventCode}` | Create or update an assessment event |
| PUT | `/programmes/{programmeCode}/assessment-events` | Upsert many assessment events |
| GET | `/programmes/{programmeCode}/assessment-events` | List assessment events |
| GET | `/globals/units-of-measure` | List units of measure |

## Key resources

- **Programmes** — Create, update, and read EQA programmes by programmeCode
- **Programme analytes** — Set the analytes a programme tests, in single-code or multicode form
- **Assessment events** — Upsert, batch upsert, list, read, and delete assessment events with their challenges and specimens
- **Globals** — Read the global units of measure

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 68 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 90 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 53 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 55 / 100
- **View full report:** https://jentic.com/apis/labgnostic.com/labgnostic/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Labgnostic EQA Public API by hand means obtaining and attaching a JWT bearer token and building the nested challenge, specimen, and analyte payloads for each upsert. Through Jentic you install once, import Labgnostic from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Labgnostic puts the programme code in the URL path (`/programmes/{programmeCode}/...`), so a rule can pin your agent to one programme and the operations you pick. You choose that set, so destructive ones like assessment event deletion or analyte replacement are not included unless you add them.
- **Credential handling:** Your Labgnostic token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'schedule an EQA assessment event' or 'set programme analytes', and Jentic returns the matching Labgnostic operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **CDISC Library API** — Clinical data standards and controlled terminology
- **Redox Platform API** — Healthcare data exchange between systems
- **Epic on FHIR API** — EHR access through FHIR resources

## FAQ

### What authentication does the Labgnostic EQA Public API use?

Per its OpenAPI spec, the Labgnostic EQA Public API uses the JWTBearerAuth scheme: a JWT sent as a bearer token in the Authorization header. The spec does not describe how the token is issued, so obtain it from Labgnostic for your provider account. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at execution time.

### Can I define analytes with more than one code using the Labgnostic EQA Public API?

Yes. PUT `/programmes/{programmeCode}/analytes/multicode` takes analytes with a name, a type of Quantitative or Qualitative, and an analyteCodes list where each entry has its own code, codingSystem, and unit. The simpler PUT `/programmes/{programmeCode}/analytes` form takes one code, codingSystem, and a units list per analyte.

### What are the rate limits for the Labgnostic EQA Public API?

The OpenAPI spec does not specify rate limits. Check the published definition at https://app.swaggerhub.com/apis/MSPATIL/labgnostic-eqa-public-api/v1 or contact Labgnostic for the limits on your account.

### How do I schedule an assessment event through Jentic with the Labgnostic EQA Public API?

Search Jentic for 'schedule an EQA assessment event' and it returns the UpsertAssessmentEventEndpoint operation with its input schema. Execute PUT `/programmes/{programmeCode}/assessment-events/{assessmentEventCode}` with challenges (required), plus startDate and endDate. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a Labgnostic MCP server?

You don't need an MCP server to give your agent the Labgnostic EQA Public API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it. Operations are discovered by intent on demand, so no extra tool definitions are loaded into the agent's context.

### Can I limit what my agent is allowed to do with the Labgnostic EQA Public API?

Yes. Write a rule that allows only the GET and PUT assessment-event operations under one programmeCode, and the agent can schedule and review rounds for that scheme while other programmes, their analytes, and event deletion stay out of reach. Every call runs through your own instance and is logged.
