---
title: "API Reference: Blood Bag Events"
description: BloodCOMM API - Blood Events
---

[Skip to content](https://info.deltadevteam.com/bloodcomm-api-blood-events#main-content)

[Customer Support Portal](https://tickets.deltadevteam.com/portal?hsLang=en)

[![DDTResourceCenter](https://info.deltadevteam.com/hs-fs/hubfs/DDTResourceCenter.png?width=204&height=72&name=DDTResourceCenter.png)](https://info.deltadevteam.com/?hsLang=en)

- [Hardware Support Ticket](https://info.deltadevteam.com/technical-support-hardware)
- [BloodCOMM Support Ticket](https://info.deltadevteam.com/technical-support-software)

Open main navigation

Close main navigation

- [Hardware Support Ticket](https://info.deltadevteam.com/technical-support-hardware)
- [BloodCOMM Support Ticket](https://info.deltadevteam.com/technical-support-software)
- [Customer Support Portal](https://tickets.deltadevteam.com/portal)
- [deltadevteam.com](https://deltadevteam.com/)

[deltadevteam.com](https://deltadevteam.com/)

 Welcome to the DDT Resource Center. Use the search below to find articles, or click on a category.

- There are no suggestions because the search field is empty.

1. [Delta Development Resource Center](https://info.deltadevteam.com/?hsLang=en)
2. [BloodCOMM](https://info.deltadevteam.com/bloodcomm?hsLang=en)
3. [API Reference](https://info.deltadevteam.com/bloodcomm?hsLang=en#api-reference)

June 8, 2026

# API Reference: Blood Bag Events

Blood Bag API Access is available in **SANDBOX** & **BETA**.

The events endpoint returns the complete audit history for a blood bag unit — every scan, check-in, check-out, inspection, shipment, and disposition recorded against that DIN. Events are returned in chronological order by the time the physical action occurred, not the time it was recorded in the system.

**PREMIUM license required.** All `/blood` routes require a BloodCOMM PREMIUM license. Requests from organizations without a PREMIUM license receive a `402` response.

##### Event Fields

| Field | Description |
| --- | --- |
| `event` | Event type — see event types table below |
| `timestamp` | Effective time of the physical action — seconds since unix epoch |
| `edited` | Timestamp of the last edit to this event, if applicable — seconds since unix epoch. Absent if the event has never been edited. |
| `organization` | Organization under which this event was recorded |
| `user` | User who triggered this event. `id` is a pseudonymous per-org stable identifier — see **User Identification** below. |
| `data` | Event-specific payload — shape varies by `event` type, see Data Shapes below |

##### Timestamps

Events use the time of the physical action, not the time the record was written to the system:

| Event Type | Effective Time Source |
| --- | --- |
| `CHECK_IN` | Time the unit was physically checked in |
| `CHECK_OUT`, `SHIPMENT`, `INSPECT` | Time of the last temperature measurement |
| `TRANSFUSE` | Clinical time of transfusion |
| `RETURN` | Time of return |
| All others | Time the event was recorded |

##### User Identification

The `user.id` field is a **pseudonymous per-org identifier**. It is:

- **Stable** — the same user always produces the same ID within the relevant organization, enabling persistent mapping to your own user records
- **Org-scoped** — the same user produces a different ID under a different organization, preventing cross-org correlation
- **Non-reversible** — the original user identity cannot be recovered from the ID alone

 

##### Event Types

| Type | Description |
| --- | --- |
| `REGISTER` | Unit registered into the system |
| `INSPECT` | Manual temperature inspection |
| `CHECK_IN` | Unit checked in to a Delta device |
| `CHECK_OUT` | Unit checked out to an external cooler |
| `SHIPMENT` | Unit shipped via tracked carrier |
| `TRANSFUSE` | Transfusion administered |
| `RETURN` | Unit returned to blood bank |
| `DISCARD` | Unit discarded |
| `MODIFY` | ISBT 128 values corrected |

---

 

#### `/blood/<DIN>/events`

 ![](https://img.shields.io/badge/https-GET-green) ![](https://img.shields.io/badge/response-JSON-lightgrey?color=lightgrey) ![](https://img.shields.io/badge/BloodCOMM-PREMIUM-blue?color=blue)

Returns the full event history for a single blood bag, sorted ascending by effective event time. The `=` prefix is optional in the URL — both `/blood/A99991234567800/events` and `/blood/=A99991234567800/events` resolve to the same unit.

Returns `404` if the DIN does not exist or does not belong to your organization. These cases are intentionally indistinguishable.

| Method | Response |
| --- | --- |
| GET | JSON Array |

### Request Example

```
https://api.blood.dev/v1/blood/A99991234567800/events 
```

### Response

```
[   {     "event": <string>,     "timestamp": <number>,     "edited": <number>,     "organization": {       "uuid": <string>,       "name": <string>     },     "user": {       "name": <string>,       "id": <string>     },     "data": { ... }   },   ...] 
```

> `edited` is only present if the event has been modified after creation.

---

### Data Shapes

The `data` field shape depends on the `event` type.

#### **`REGISTER`**

| Field | Description |
| --- | --- |
| `din` | DIN at time of registration |
| `productCode` | Product code at time of registration |
| `expirationDate` | Expiration at time of registration |
| `bloodType` | Blood type at time of registration |
| `note` | Registration note |

```
{   "din": <string>,   "productCode": <string>,   "expirationDate": <string>,   "bloodType": <string>,   "note": <string> } 
```

#### **`INSPECT`**

| Field | Description |
| --- | --- |
| `temperature` | Temperature at time of inspection — °C |
| `lastMeasured` | Timestamp of the measurement — seconds since unix epoch |
| `inspected` | Whether the unit passed inspection |
| `note` | Inspection note |

```
{   "temperature": <number|null>,   "lastMeasured": <number|null>,   "inspected": <boolean>,   "note": <string> } 
```

#### **`CHECK_IN`**

| Field | Description |
| --- | --- |
| `deviceID` | Device the unit was checked in to, in `<DEVICE-TYPE>_<SERIAL>` format |
| `checkInTime` | Time the unit was physically checked in — seconds since unix epoch |
| `note` | Check-in note |

```
{   "deviceID": <string>,   "checkInTime": <number|null>,   "note": <string> } 
```

#### **`CHECK_OUT`**

| Field | Description |
| --- | --- |
| `deviceData` | External cooler the unit was checked out to — `{ name, location }` |
| `temperature` | Temperature at time of check-out — °C |
| `lastMeasured` | Timestamp of the measurement — seconds since unix epoch |
| `note` | Check-out note |

```
{  "deviceData": {    "name": <string>,    "location": <string>   },  "temperature": <number|null>,  "lastMeasured": <number|null>,  "note": <string>} 
```

#### **`SHIPMENT`**

| Field | Description |
| --- | --- |
| `trackingNumber` | Carrier tracking number |
| `temperature` | Temperature at time of shipment — °C |
| `lastMeasured` | Timestamp of the measurement — seconds since unix epoch |
| `note` | Shipment note |

```
{   "trackingNumber": <string>,   "temperature": <number|null>,   "lastMeasured": <number|null>,   "note": <string> } 
```

#### **`TRANSFUSE`**

| Field | Description |
| --- | --- |
| `receivingFacilityName` | Name of the receiving facility |
| `receivingFacilityID` | Patient or facility ID at the receiving facility |
| `firstResponderID` | ID of the administering first responder |
| `transportAgencyID` | EMS or transport agency patient ID |
| `transfusionTime` | Clinical time of transfusion — seconds since unix epoch |
| `note` | Transfusion note |

```
{  "receivingFacilityName": <string|null>,  "receivingFacilityID": <string|null>,  "firstResponderID": <string|null>,  "transportAgencyID": <string|null>,  "transfusionTime": <number|null>,  "note": <string>} 
```

#### **`RETURN`**

| Field | Description |
| --- | --- |
| `receivedBy` | Person at the blood bank who accepted the return — `{ name, email }` |
| `bloodBank` | Name of the blood bank |
| `reason` | Reason for return — see Discard/Return Reasons below |
| `returnTime` | Time of return — seconds since unix epoch |
| `note` | Return note |

```
{  "receivedBy": {    "name": <string>,    "email": <string>   },  "bloodBank": <string>,  "reason": <string>,  "returnTime": <number|null>,  "note": <string>} 
```

#### **`DISCARD`**

| Field | Description |
| --- | --- |
| `reason` | Reason for discard — see Discard/Return Reasons below |
| `note` | Discard note |

```
{   "reason": <string>,   "note": <string>} 
```

###### Discard / Return Reasons

| Value | Description |
| --- | --- |
| `EXCHANGE` | Unit exchanged |
| `EXPIRED` | Unit reached expiration |
| `RECALLED` | Unit subject to a recall |
| `REQUESTED` | Return requested by blood bank |
| `DAMAGED` | Unit damaged |
| `OTHER` | Other reason |
| `ISSUE` | Issue identified with the unit |

 

 

#### **`MODIFY`**

| Field | Description |
| --- | --- |
| `new` | Updated ISBT 128 values — `{ din, productCode, expirationDate, bloodType }` |
| `old` | Previous ISBT 128 values — `{ din, productCode, expirationDate, bloodType }` |
| `note` | Modification note |

```
{  "new": {    "din": <string>,    "productCode": <string>,    "expirationDate": <string>,    "bloodType": <string>  },  "old": {     "din": <string>,     "productCode": <string>,     "expirationDate": <string>,     "bloodType": <string>  },     "note": <string>}
```

 

- [APRU 6L](https://info.deltadevteam.com/apru-6l?hsLang=en)
- [ICE 2L](https://info.deltadevteam.com/ice-2l?hsLang=en)
- [BloodCOMM](https://info.deltadevteam.com/bloodcomm?hsLang=en#main-content)

    - [Overview](https://info.deltadevteam.com/bloodcomm?hsLang=en#overview)
    - [Bluetooth connectivity](https://info.deltadevteam.com/bloodcomm?hsLang=en#bluetooth-connectivity)
    - [Organization](https://info.deltadevteam.com/bloodcomm?hsLang=en#organization)
    - [Device Dashboard](https://info.deltadevteam.com/bloodcomm?hsLang=en#device-dashboard)
    - [Device Reports](https://info.deltadevteam.com/bloodcomm?hsLang=en#device-reports)
    - [Blood Dashboard](https://info.deltadevteam.com/bloodcomm?hsLang=en#blood-dashboard)
    - [Cold Chain Events](https://info.deltadevteam.com/bloodcomm?hsLang=en#cold-chain-events)
    - [Blood Reports](https://info.deltadevteam.com/bloodcomm?hsLang=en#blood-reports)
    - [GPS Dashboard](https://info.deltadevteam.com/bloodcomm?hsLang=en#gps-dashboard)
    - [Metrics Dashboard](https://info.deltadevteam.com/bloodcomm?hsLang=en#metrics-dashboard)
    - [User Preferences](https://info.deltadevteam.com/bloodcomm?hsLang=en#user-preferences)
    - [Alerts](https://info.deltadevteam.com/bloodcomm?hsLang=en#alerts)
    - [Device Manager](https://info.deltadevteam.com/bloodcomm?hsLang=en#device-manager)
    - [Subscriptions](https://info.deltadevteam.com/bloodcomm?hsLang=en#subscriptions)
    - [Integrations](https://info.deltadevteam.com/bloodcomm?hsLang=en#integrations)
    - [Legal](https://info.deltadevteam.com/bloodcomm?hsLang=en#legal)
    - [API Reference](https://info.deltadevteam.com/bloodcomm?hsLang=en#api-reference)
- [Cybersecurity & Trust](https://info.deltadevteam.com/cybersecurity-trust?hsLang=en)
- [Procurement & Pricing](https://info.deltadevteam.com/procurement-pricing?hsLang=en)
- [Support & Service](https://info.deltadevteam.com/support-service?hsLang=en)

[![DDT\_Logo\_White](https://info.deltadevteam.com/hs-fs/hubfs/DDT_Logo_White.png?width=194&height=56&name=DDT_Logo_White.png "DDT_Logo_White")](https://info.deltadevteam.com/?hsLang=en)

[Contact Us](https://deltadevteam.com/contact-us)

<https://www.facebook.com/deltadevelopmentteam> <https://www.youtube.com/channel/UCx8CewBO4fGfN4tufwUN7vQ?view_as=subscriber> <https://twitter.com/DeltaDev_Team> <https://www.instagram.com/deltadevelopmentteam/> <https://www.linkedin.com/company/delta-development-team-llc> <https://test.deltadevteam.com/news>

Copyright © 2026, Delta Development Team, Inc.  
[Privacy Policy](https://deltadevteam.com/privacy-policy/)