Sepsis screen - SIRS plus mentation criteria and flag, free
A temperature of 39.2 °C, pulse 110, 24 breaths a minute, white cells at 16 and a Glasgow score of 13 meet all 5 criteria and raise the sepsis flag, which needs only 2. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Creativity
- 39.2
- Heart rate
- 110
- Respiratory rate
- 24
- White cell count
- 16
- Mentation
- 13
- Criteria met
- temperature, heart_rate, respiratory_rate, white_cell_count, mentation
- Criteria count
- 5
Sepsis screening from bedside numbers is a common teaching and triage task: given temperature, heart rate, respiratory rate, white cell count, and a numeric mentation score, does the pattern meet systemic inflammatory response criteria plus altered awareness? This capability applies a deterministic SIRS-plus-mentation screen used in education and software, not a bedside diagnosis. It scores each of the five inputs against published adult teaching thresholds, lists every criterion that fires, and raises a sepsis flag when at least two criteria are met.
What the SIRS-plus-mentation screen measures and which inputs you need
Sepsis in adult teaching materials is often introduced through the systemic inflammatory response syndrome plus a concern for infection, with altered mentation as an extra organ-dysfunction clue used in later qSOFA-style screens. Temperature is body temperature in degrees Celsius: the SIRS teaching cut is met when the value is below thirty-six or above thirty-eight. Heart rate is beats per minute and fires when strictly greater than ninety.
Respiratory rate is breaths per minute and fires when strictly greater than twenty. White cell count is leukocytes in times ten to the nine per litre, which is numerically the same as times ten to the three per microlitre, and fires when the count is below four or above twelve. Mentation is a Glasgow Coma Scale integer from three to fifteen; a score below fifteen counts as altered mentation.
Send all five as finite numbers or numeric strings. Practical bounds keep classroom inputs sane: temperature thirty to forty-five Celsius, heart rate one to three hundred, respiratory rate one to eighty, white cell count zero to two hundred, mentation three through fifteen as an integer.
How to read the criteria and the sepsis alert
Equality sits on the safe side of each inequality: thirty-eight point zero Celsius does not fire temperature, ninety beats per minute does not fire heart rate, twenty breaths per minute does not fire respiratory rate, a white cell count of four or twelve does not fire, and a Glasgow score of fifteen does not fire mentation. Do not treat a true flag as a diagnosis, a culture result, or a reason to start antibiotics without a clinician.
This is arithmetic against published teaching cuts, not a medical device and not a substitute for qSOFA, SOFA, NEWS2, or a full sepsis bundle. Conflicting units such as Fahrenheit temperatures are rejected by the Celsius range rather than converted, so send degrees Celsius only.
What you can do with it
Simulation labs and triage teaching apps
Manikin and e-learning cases need a deterministic SIRS-plus-mentation oracle so the same vitals always raise the same educational sepsis flag.
FAQ
How does the sepsis screen decide which criteria are met?
It applies adult SIRS teaching cuts to temperature, heart rate, respiratory rate, and white cell count, plus GCS below 15 for mentation.
What happens if an input is not numeric?
Booleans, empty strings, infinities, and non-numeric text such as a word instead of a temperature are rejected and not charged.
Is this a diagnosis, and what does the sepsis screen cost?
No. It is an educational numeric screen, not a medical device. The browser tool runs free on your device.
Does a value exactly at the cutoff count?
No. Each criterion only fires beyond its cutoff: a temperature of exactly 38 °C, a pulse of 90, 20 breaths a minute, a white cell count of 4 or 12 and a Glasgow score of 15 all count as normal.
Can I enter the temperature in Fahrenheit?
No. Enter degrees Celsius only. A Fahrenheit reading falls outside the accepted range of 30 to 45 and is rejected instead of being converted, so convert it before you type it in.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/health/sepsis \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"temperature":39.2,"heart_rate":110,"respiratory_rate":24,"white_cell_count":16,"mentation":13}'const res = await fetch("https://api.kit.forhosting.com/health/sepsis", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"temperature": 39.2,
"heart_rate": 110,
"respiratory_rate": 24,
"white_cell_count": 16,
"mentation": 13
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/sepsis",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"temperature": 39.2,
"heart_rate": 110,
"respiratory_rate": 24,
"white_cell_count": 16,
"mentation": 13
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/sepsis", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"temperature":39.2,"heart_rate":110,"respiratory_rate":24,"white_cell_count":16,"mentation":13}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"temperature":39.2,"heart_rate":110,"respiratory_rate":24,"white_cell_count":16,"mentation":13}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/sepsis", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"temperature": 39.2,
"heart_rate": 110,
"respiratory_rate": 24,
"white_cell_count": 16,
"mentation": 13
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.sepsis",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Non-numeric, missing, or non-finite values fail with invalid_input and are never billed. Successful API items cost $0.002.
What the SIRS-plus-mentation screen measures and which inputs you need
This endpoint does not collect a suspected-infection checkbox; it screens the five numeric fields you send and reports which SIRS-style and mentation thresholds fire. Aliases such as temp, hr, rr, wbc, and gcs are accepted when documented. Missing fields, booleans, empty strings, infinities, and non-numeric text fail with invalid_input naming the field. Identical inputs always yield identical JSON because the path is pure comparison with no network, no model, no random seed, and no wall clock.
Reading criteria_met, the per-field flags, and sepsis_flag
On success the response echoes the five parsed numbers with stable rounding and lists every criterion that fired in criteria_met using the canonical field names temperature, heart_rate, respiratory_rate, white_cell_count, and mentation, always in that order. criteria_count is the length of that list. Boolean companions temperature_met, heart_rate_met, respiratory_rate_met, white_cell_count_met, and mentation_met let a form highlight which rows crossed a threshold without parsing the array. The sepsis_flag is true when criteria_count is at least two and false otherwise, matching the common adult teaching rule that two or more SIRS criteria raise a sepsis screen when infection is already suspected. Use criteria_met for audit trails and teaching cards, sepsis_flag for a single binary chip, and the per-field booleans for row highlighting. formula restates the five thresholds and the two-or-more rule as one string; method is always sirs_plus_mentation so downstream code can branch without sniffing shapes.
API usage, pricing, product workflows, and practical limits
Call the free in-browser sepsis screen for classroom demos, nursing homework, and simulation labs without reimplementing SIRS inequalities in every spreadsheet. Prefer consistent SI units; if your UI only collects whole numbers, send integers and the engine still accepts numeric strings. Keep expectations educational: people with fever, confusion, fast breathing, or a falling white cell count need professional medical assessment, not an automated label alone. Send a JSON body with required temperature, heart_rate, respiratory_rate, white_cell_count, and mentation. Use the prepaid API when a health SaaS, electronic worksheet, triage teaching app, or school LMS needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with your own suspected-infection workflow and local sepsis protocol—this calculator does not ask whether infection is present and does not grade lactate, blood pressure, or urine output. Store criteria_met and sepsis_flag alongside the raw vitals for dashboards, and export columns for the five inputs, criteria_count, and the flag. Authors shipping SDKs can map sepsis_flag into chips and criteria_met into a checklist that quotes the formula string. The product never contacts a laboratory, never invents a random screen, and never stamps a clock into the payload.
Integration use cases
Nursing and medical-school SIRS homework
Students submit temperature, heart rate, respiratory rate, white cell count, and GCS, then pin expected criteria_met and sepsis_flag JSON in automated checkers.
Health education SaaS backends
Server pipelines that already store vitals and a leukocyte count call a prepaid endpoint instead of duplicating SIRS inequalities in every language.
Technical questions
When is sepsis_flag true?
sepsis_flag is true when two or more of the five criteria fire (criteria_count >= 2). A single abnormal vital with a normal GCS does not raise the flag.
What inputs are required?
Five finite numbers: temperature in °C, heart_rate in bpm, respiratory_rate in breaths per minute, white_cell_count in ×10^9/L, and mentation as an integer GCS from 3 to 15.