curl --request GET \
--url https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events \
--header 'X-API-Key: <api-key>'import requests
url = "https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"@context": [
"https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
],
"epcisBody": {
"queryResults": {
"eventList": [
{
"@context": [
"https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
],
"action": "ADD",
"bizStep": "commissioning",
"disposition": "active",
"epcList": [
"/01/00012345678906/21/SERIAL001"
],
"eventID": "urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479",
"eventTime": "2026-08-25T03:40:00+00:00",
"eventTimeZoneOffset": "+00:00",
"recordTime": "2026-08-25T03:40:05+00:00",
"type": "ObjectEvent"
}
]
}
},
"type": "EPCISQueryDocument"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}Query EPCIS events of one event type
GET /events restricted to one event type (GS1 EPCIS 2.0 REST binding, /eventTypes/{eventType}/events). Takes every GET /events query parameter; the path’s event type is ANDed onto them. Same EPCISQueryDocument body and Link pagination. Results are scoped to the caller’s organization.
curl --request GET \
--url https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events \
--header 'X-API-Key: <api-key>'import requests
url = "https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.closient.com/epcis/api/2.0/eventTypes/{eventType}/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"@context": [
"https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
],
"epcisBody": {
"queryResults": {
"eventList": [
{
"@context": [
"https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
],
"action": "ADD",
"bizStep": "commissioning",
"disposition": "active",
"epcList": [
"/01/00012345678906/21/SERIAL001"
],
"eventID": "urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479",
"eventTime": "2026-08-25T03:40:00+00:00",
"eventTimeZoneOffset": "+00:00",
"recordTime": "2026-08-25T03:40:05+00:00",
"type": "ObjectEvent"
}
]
}
},
"type": "EPCISQueryDocument"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}Authorizations
Path Parameters
An EPCIS event type: ObjectEvent, AggregationEvent, TransactionEvent, TransformationEvent or AssociationEvent. Any other value is 404.
Query Parameters
Filter by EPCIS event type. One of ObjectEvent, AggregationEvent, TransactionEvent, TransformationEvent, or AssociationEvent per GS1 EPCIS 2.0 §7.3.
ObjectEvent, AggregationEvent, TransactionEvent, TransformationEvent, AssociationEvent Events with eventTime >= this value (inclusive lower bound). ISO-8601 / RFC 3339 with timezone offset per GS1 EPCIS 2.0 §8.2.7.2.
Events with eventTime < this value (exclusive upper bound). ISO-8601 / RFC 3339 with timezone offset per GS1 EPCIS 2.0 §8.2.7.2.
Filter by exact CBV business step. Accepts either the bare CBV token (shipping) or the URN-prefixed form (urn:epcglobal:cbv:bizstep:shipping); matching is exact-string against what was captured. The CBV 2.0 vocabulary is extensible — vendor-specific URNs are valid input.
^[^\x00]{0,}$Filter by exact CBV disposition (state of objects after the event). Accepts either the bare CBV token (in_transit) or the URN-prefixed form (urn:epcglobal:cbv:disp:in_transit); matching is exact-string against what was captured. The CBV 2.0 vocabulary is extensible — vendor-specific URNs are valid input.
^[^\x00]{0,}$Filter by exact read point URI (where the event was observed) per GS1 EPCIS 2.0 §7.4.2 / CBV 2.0 §10. Accepts the GS1 Digital Link form (https://id.gs1.org/414/{gln}) or the legacy SGLN URN (urn:epc:id:sgln:{company}.{location}.{extension}); matching is exact-string against what was captured.
^[^\x00]{0,}$Filter by exact business location URI (where the objects logically are after the event) per GS1 EPCIS 2.0 §7.4.2. Accepts the GS1 Digital Link form or the legacy SGLN URN — same encoding as EQ_readPoint. Matching is exact-string against what was captured.
^[^\x00]{0,}$Filter events referencing this single EPC (per GS1 EPCIS 2.0 §8.2.7.2 MATCH_epc). Searches epcList, childEPCs, inputEPCList, and outputEPCList simultaneously. Accepts either GS1 Digital Link (https://id.gs1.org/01/{gtin14}/10/{lot}[/21/{serial}]) or the legacy SGTIN URN form.
^[^\x00]{0,}$Comma-separated list of EPCs; matches events referencing any one of them (per GS1 EPCIS 2.0 §8.2.7.2 MATCH_anyEPC). Each token is trimmed before matching. Use MATCH_epc for a single EPC.
^[^\x00]{0,}$Filter by action. Per GS1 EPCIS 2.0 §7.4.2 the only valid values are ADD, OBSERVE, or DELETE (uppercase). Blank action is reserved for TransformationEvent and cannot be filtered on.
ADD, OBSERVE, DELETE Maximum number of events to return per page (1-100, default 30). When more results are available the response carries a Link header with rel="next" — request that URL to fetch the next page.
1 <= x <= 100Cursor for the next page. The Link header's next-page URL already carries it; opaque to the client — do not construct or modify.
^[^\x00]{0,}$Response
OK
200 response body for GET /events: a JSON-LD EPCISQueryDocument.
JSON-LD context; the EPCIS 2.0 context.
Always EPCISQueryDocument.
Envelope holding queryResults.eventList.
Show child attributes
Show child attributes
{
"queryResults": {
"eventList": [
{
"@context": [
"https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld"
],
"action": "ADD",
"bizStep": "commissioning",
"disposition": "active",
"epcList": ["/01/00012345678906/21/SERIAL001"],
"eventID": "urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479",
"eventTime": "2026-08-25T03:40:00+00:00",
"eventTimeZoneOffset": "+00:00",
"recordTime": "2026-08-25T03:40:05+00:00",
"type": "ObjectEvent"
}
]
}
}