GS1

GS1 Top Level API

Endpoints to browse or retrieve information about EPCIS resources: - events - types of events - electronic product codes - business steps - business locations - read points - dispositions

Operations 13

GET /events Returns all EPCIS events available in the EPCIS repository.
GET /eventTypes Returns all EPCIS event types currently available in the EPCIS repository.
GET /eventTypes/{eventType} Returns all sub-resources of an EPCIS event type.
GET /epcs Returns known electronic product codes.
GET /epcs/{epc} Returns all sub-resources of an electronic product code.
GET /bizSteps Returns known business steps.
GET /bizSteps/{bizStep} Returns all sub-resources of a business step.
GET /bizLocations Returns known business locations.
GET /bizLocations/{bizLocation} Returns all sub-resources of a business location.
GET /readPoints Returns known read points.
GET /readPoints/{readPoint} Returns all sub-resources of a read point.
GET /dispositions Returns known dispositions.
GET /dispositions/{disposition} Returns all sub-resources of a disposition.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gs1-top-level-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gs1-top-level-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.1
  title: EPCIS 2.0 REST Bindings Top Level API
  license:
    name: Apache2
  description: 'Endpoints to browse or retrieve information about EPCIS resources:

    - events

    - types of events

    - electronic product codes

    - business steps

    - business locations

    - read points

    - dispositions

    '
tags:
- name: Top-level
  description: 'Endpoints to browse or retrieve information about EPCIS resources:

    - events

    - types of events

    - electronic product codes

    - business steps

    - business locations

    - read points

    - dispositions

    '
paths:
  /events:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      summary: Returns all EPCIS events available in the EPCIS repository.
      parameters:
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-EPC-Format'
      - $ref: '#/components/parameters/GS1-CBV-XML-Format'
      - $ref: '#/components/parameters/eventType'
      - $ref: '#/components/parameters/GE_eventTime'
      - $ref: '#/components/parameters/LT_eventTime'
      - $ref: '#/components/parameters/GE_recordTime'
      - $ref: '#/components/parameters/LT_recordTime'
      - $ref: '#/components/parameters/EQ_action'
      - $ref: '#/components/parameters/EQ_bizStep'
      - $ref: '#/components/parameters/EQ_disposition'
      - $ref: '#/components/parameters/EQ_persistentDisposition_set'
      - $ref: '#/components/parameters/EQ_persistentDisposition_unset'
      - $ref: '#/components/parameters/EQ_readPoint'
      - $ref: '#/components/parameters/WD_readPoint'
      - $ref: '#/components/parameters/EQ_bizLocation'
      - $ref: '#/components/parameters/WD_bizLocation'
      - $ref: '#/components/parameters/EQ_transformationID'
      - $ref: '#/components/parameters/MATCH_epc'
      - $ref: '#/components/parameters/MATCH_parentID'
      - $ref: '#/components/parameters/MATCH_inputEPC'
      - $ref: '#/components/parameters/MATCH_outputEPC'
      - $ref: '#/components/parameters/MATCH_anyEPC'
      - $ref: '#/components/parameters/MATCH_epcClass'
      - $ref: '#/components/parameters/MATCH_inputEPCClass'
      - $ref: '#/components/parameters/MATCH_outputEPCClass'
      - $ref: '#/components/parameters/MATCH_anyEPCClass'
      - $ref: '#/components/parameters/EQ_quantity'
      - $ref: '#/components/parameters/GT_quantity'
      - $ref: '#/components/parameters/GE_quantity'
      - $ref: '#/components/parameters/LT_quantity'
      - $ref: '#/components/parameters/LE_quantity'
      - $ref: '#/components/parameters/EQ_eventID'
      - $ref: '#/components/parameters/EXISTS_errorDeclaration'
      - $ref: '#/components/parameters/GE_errorDeclarationTime'
      - $ref: '#/components/parameters/LT_errorDeclarationTime'
      - $ref: '#/components/parameters/EQ_errorReason'
      - $ref: '#/components/parameters/EQ_correctiveEventID'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/orderDirection'
      - $ref: '#/components/parameters/eventCountLimit'
      - $ref: '#/components/parameters/maxEventCount'
      - $ref: '#/components/parameters/GE_startTime'
      - $ref: '#/components/parameters/LT_startTime'
      - $ref: '#/components/parameters/GE_endTime'
      - $ref: '#/components/parameters/LT_endTime'
      - $ref: '#/components/parameters/EQ_type'
      - $ref: '#/components/parameters/EQ_deviceID'
      - $ref: '#/components/parameters/EQ_dataProcessingMethod'
      - $ref: '#/components/parameters/EQ_microorganism'
      - $ref: '#/components/parameters/EQ_chemicalSubstance'
      - $ref: '#/components/parameters/EQ_bizRules'
      - $ref: '#/components/parameters/EQ_stringValue'
      - $ref: '#/components/parameters/EQ_hexBinaryValue'
      - $ref: '#/components/parameters/EQ_uriValue'
      - $ref: '#/components/parameters/EQ_booleanValue'
      description: "This endpoint allows querying EPCIS events that are currently in the repository. \nEvents can be filtered through URL query string parameters as specified by the EPCIS Query Language. \nAn EPCIS 2.0 query body using the REST interface SHALL be serialised as a JSON object. The value of the query key within that JSON object SHALL validate against the schema defined at:  https://ref.gs1.org/standards/epcis/2.0.1/query-schema.json.\nAn EPCIS 2.0 query may also be expressed via parameters in the URI query string.  The query parameters with fixed fieldnames are included in this OpenAPI interface.  However, this list is not exhaustive and the EPCIS 2.0 standard defines additional query parameters with flexible names, depending on the specific value of `uom`, `type` or `fieldname` that appears within the name of the parameter.\n"
      responses:
        '200':
          $ref: '#/components/responses/200EPCISQueryDocument'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '414':
          $ref: '#/components/responses/414URLTooLong'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /eventTypes:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      summary: Returns all EPCIS event types currently available in the EPCIS repository.
      parameters:
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/GS1-Extensions'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      description: EPCIS event types specify the schema of an event. This endpoint returns the 5 standard event types as well as any custom event types supported by this repository.
      responses:
        '200':
          $ref: '#/components/responses/200SupportedEventTypes'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /eventTypes/{eventType}:
    parameters:
    - $ref: '#/components/parameters/EventType'
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      summary: Returns all sub-resources of an EPCIS event type.
      description: 'This endpoint returns all sub-resources of an EPCIS event type (for HATEOAS discovery), which includes at least `events`. A server may

        add additional endpoints, for example `schema` to access the EPCIS event type schema.

        '
      parameters:
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      responses:
        '200':
          $ref: '#/components/responses/200TopLevelOrEventTypeSubResource'
        '400':
          $ref: '#/components/responses/400QueryIssues'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '404':
          $ref: '#/components/responses/404ResourceNotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /epcs:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      - $ref: '#/components/parameters/GS1-EPC-Format'
      summary: Returns known electronic product codes.
      description: An endpoint to list all electronic product codes known to this repository.
      responses:
        '200':
          headers:
            GS1-EPCIS-Version:
              $ref: '#/components/headers/GS1-EPCIS-Version'
            GS1-CBV-Version:
              $ref: '#/components/headers/GS1-CBV-Version'
            GS1-Extensions:
              $ref: '#/components/headers/GS1-Extensions'
            Link:
              $ref: '#/components/headers/Link'
            GS1-Next-Page-Token-Expires:
              $ref: '#/components/headers/GS1-Next-Page-Token-Expires'
          description: 'Returns a list of electronic product codes. If there are more electronic product codes than specified by the

            `perPage` parameter, the client will be given the URL to retrieve more electronic product codes in the

            `Link` header.

            If the client specifies extension mappings, the response will use them where they match. Otherwise,

            the full resource address is used.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UriCollection'
              example:
                '@context': https://ref.gs1.org/standards/epcis/epcis-context.jsonld
                type: Collection
                member:
                - urn:jaif:id:obj:37SUN321456789A111222333AB+123456789012
                - urn:epc:id:sgtin:0614141.107346.2018
                - https://example.com/01/04012345123456/21/abc234
                - urn:epc:id:sgtin:0614141.107346.2017
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /epcs/{epc}:
    parameters:
    - $ref: '#/components/parameters/EPC'
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      summary: Returns all sub-resources of an electronic product code.
      description: 'This endpoint returns all sub-resources of an electronic product code (for HATEOAS discovery), which includes at least `events`.

        '
      responses:
        '200':
          $ref: '#/components/responses/200TopLevelOrEventTypeSubResource'
        '400':
          $ref: '#/components/responses/400QueryIssues'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '404':
          $ref: '#/components/responses/404ResourceNotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /bizSteps:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      - $ref: '#/components/parameters/GS1-CBV-XML-Format'
      summary: Returns known business steps.
      description: This endpoint returns the CBV standard business steps as well as any custom business steps supported by this repository.
      responses:
        '200':
          headers:
            GS1-Extensions:
              $ref: '#/components/headers/GS1-Extensions'
            GS1-EPCIS-Version:
              $ref: '#/components/headers/GS1-EPCIS-Version'
            GS1-CBV-Version:
              $ref: '#/components/headers/GS1-CBV-Version'
            Link:
              $ref: '#/components/headers/Link'
            GS1-Next-Page-Token-Expires:
              $ref: '#/components/headers/GS1-Next-Page-Token-Expires'
          description: 'Returns a list of business steps. If there are more business steps than specified by the

            `perPage` parameter, the client will be given the URL to retrieve more business steps in the `Link` header.

            If the client specifies extension mappings, the response will use them where they match. Otherwise,

            the full resource address is used.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BizStepCollection'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /bizSteps/{bizStep}:
    parameters:
    - $ref: '#/components/parameters/BizStep'
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      summary: Returns all sub-resources of a business step.
      description: 'This endpoint returns all sub-resources of a business step (for HATEOAS discovery), which includes at least `events`.

        '
      responses:
        '200':
          $ref: '#/components/responses/200TopLevelOrEventTypeSubResource'
        '400':
          $ref: '#/components/responses/400QueryIssues'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '404':
          $ref: '#/components/responses/404ResourceNotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /bizLocations:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      - $ref: '#/components/parameters/GS1-EPC-Format'
      summary: Returns known business locations.
      description: 'An endpoint to list all the business locations known to this repository.

        '
      responses:
        '200':
          headers:
            GS1-Extensions:
              $ref: '#/components/headers/GS1-Extensions'
            GS1-EPCIS-Version:
              $ref: '#/components/headers/GS1-EPCIS-Version'
            GS1-CBV-Version:
              $ref: '#/components/headers/GS1-CBV-Version'
            Link:
              $ref: '#/components/headers/Link'
            GS1-Next-Page-Token-Expires:
              $ref: '#/components/headers/GS1-Next-Page-Token-Expires'
          description: 'Returns a list of business locations. If there are more business locations than specified by the

            `perPage` parameter, the client will be given the URL to retrieve more business locations in the `Link` header.

            If the client specifies extension mappings, the response will use them where they match. Otherwise,

            the full resource address is used.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UriCollection'
              example:
                '@context': https://ref.gs1.org/standards/epcis/epcis-context.jsonld
                type: Collection
                member:
                - urn:epc:id:sgln:9524987.20000.0
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /bizLocations/{bizLocation}:
    parameters:
    - $ref: '#/components/parameters/BizLocation'
    get:
      tags:
      - Top-level
      summary: Returns all sub-resources of a business location.
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      description: 'This endpoint returns all sub-resources of a business location (for HATEOAS discovery), which includes at least `events`.

        '
      responses:
        '200':
          $ref: '#/components/responses/200TopLevelOrEventTypeSubResource'
        '400':
          $ref: '#/components/responses/400QueryIssues'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '404':
          $ref: '#/components/responses/404ResourceNotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /readPoints:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      - $ref: '#/components/parameters/GS1-EPC-Format'
      summary: Returns known read points.
      description: An endpoint to list all read points known to this repository.
      responses:
        '200':
          headers:
            GS1-Extensions:
              $ref: '#/components/headers/GS1-Extensions'
            GS1-EPCIS-Version:
              $ref: '#/components/headers/GS1-EPCIS-Version'
            GS1-CBV-Version:
              $ref: '#/components/headers/GS1-CBV-Version'
            Link:
              $ref: '#/components/headers/Link'
            GS1-Next-Page-Token-Expires:
              $ref: '#/components/headers/GS1-Next-Page-Token-Expires'
          description: 'Returns a list of read points. If there are more read points than specified by the

            `perPage` parameter, the client will be given the URL to retrieve more read points in the `Link` header.

            If the client specifies extension mappings, the response will use them where they match. Otherwise,

            the full resource address is used.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UriCollection'
              example:
                '@context': https://ref.gs1.org/standards/epcis/epcis-context.jsonld
                type: Collection
                member:
                - urn:epc:id:sgln:9524678.90000.WarehouseD2
                - urn:epc:id:sgln:9524678.90000.WarehouseD1
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /readPoints/{readPoint}:
    parameters:
    - $ref: '#/components/parameters/ReadPoint'
    get:
      tags:
      - Top-level
      summary: Returns all sub-resources of a read point.
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      description: 'This endpoint returns all sub-resources of a read point (for HATEOAS discovery), which includes at least `events`.

        '
      responses:
        '200':
          $ref: '#/components/responses/200TopLevelOrEventTypeSubResource'
        '400':
          $ref: '#/components/responses/400QueryIssues'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '404':
          $ref: '#/components/responses/404ResourceNotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /dispositions:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    get:
      tags:
      - Top-level
      parameters:
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/NextPageToken'
      - $ref: '#/components/parameters/GS1-EPCIS-Min'
      - $ref: '#/components/parameters/GS1-EPCIS-Max'
      - $ref: '#/components/parameters/GS1-CBV-Min'
      - $ref: '#/components/parameters/GS1-CBV-Max'
      - $ref: '#/components/parameters/GS1-CBV-XML-Format'
      summary: Returns known dispositions.
      description: 'This endpoint returns the CBV standard dispositions as well as any custom dispositions supported by this repository.

        '
      responses:
        '200':
          headers:
            GS1-Extensions:
              $ref: '#/components/headers/GS1-Extensions'
            GS1-EPCIS-Version:
              $ref: '#/components/headers/GS1-EPCIS-Version'
            GS1-CBV-Version:
              $ref: '#/components/headers/GS1-CBV-Version'
            Link:
              $ref: '#/components/headers/Link'
            GS1-Next-Page-Token-Expires:
              $ref: '#/components/headers/GS1-Next-Page-Token-Expires'
          description: 'Returns a list of dispositions. If there are more dispositions than specified by the

            `perPage` parameter, the client will be given the URL to retrieve more dispositions in the `Link` header.

            If the client specifies extension mappings, the response will use them where they match. Otherwise,

            the full resource address is used.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DispositionCollection'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
  /dispositions/{disposition}:
    parameters:
    - $ref: '#/components/parameters/GS1-Extensions'
    - $ref: '#/components/parameters/Disposition'
    get:
      tags:
      - Top-level
      summary: Returns all sub-resources of a disposition.
      description: 'This endpoint returns all sub-resources of a disposition (for HATEOAS discovery), which includes at least `events`.

        '
      responses:
        '200':
          $ref: '#/components/responses/200TopLevelOrEventTypeSubResource'
        '400':
          $ref: '#/components/responses/400QueryIssues'
        '401':
          $ref: '#/components/responses/401UnauthorizedRequest'
        '403':
          $ref: '#/components/responses/403ClientUnauthorized'
        '404':
          $ref: '#/components/responses/404ResourceNotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '500':
          $ref: '#/components/responses/500ImplementationException'
components:
  schemas:
    error-reason:
      anyOf:
      - $ref: '#/components/schemas/vocab-other-uri'
      - type: string
        enum:
        - did_not_occur
        - incorrect_data
    queryResults:
      type: object
      properties:
        queryName:
          type: string
        subscriptionID:
          type: string
        resultsBody:
          $ref: '#/components/schemas/resultsBody'
      required:
      - queryName
      - resultsBody
    ObjectEvent:
      allOf:
      - $ref: '#/components/schemas/Event'
      - type: object
        properties:
          type:
            type: string
            enum:
            - ObjectEvent
          epcList:
            $ref: '#/components/schemas/epcList'
          quantityList:
            $ref: '#/components/schemas/quantityList'
          action:
            $ref: '#/components/schemas/action'
          bizStep:
            $ref: '#/components/schemas/bizStep'
          disposition:
            $ref: '#/components/schemas/disposition'
          persistentDisposition:
            $ref: '#/components/schemas/persistentDisposition'
          readPoint:
            $ref: '#/components/schemas/readPoint'
          bizLocation:
            $ref: '#/components/schemas/bizLocation'
          bizTransactionList:
            type: array
            items:
              $ref: '#/components/schemas/bizTransaction'
          sourceList:
            type: array
            items:
              $ref: '#/components/schemas/source'
          destinationList:
            type: array
            items:
              $ref: '#/components/schemas/destination'
          sensorElementList:
            type: array
            items:
              $ref: '#/components/schemas/sensorElement'
          ilmd:
            $ref: '#/components/schemas/ilmd'
        required:
        - type
        - action
      - anyOf:
        - type: object
          properties:
            epcList:
              type: array
              minItems: 0
              items:
                $ref: '#/components/schemas/id'
          required:
          - epcList
        - type: object
          properties:
            quantityList:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/quantityElement'
          required:
          - quantityList
        - allOf:
          - type: object
            properties:
              sensorElementList:
                type: array
                items:
                  $ref: '#/components/schemas/sensorElement'
                minItems: 1
            required:
            - sensorElementList
          - type: object
            properties:
              readPoint:
                $ref: '#/components/schemas/readPoint'
            required:
            - readPoint
      - anyOf:
        - type: object
          properties:
            ilmd:
              not: {}
            action:
              type: string
              pattern: ^OBSERVE$
        - type: object
          properties:
            ilmd:
              not: {}
            action:
              type: string
              pattern: ^DELETE$
        - type: object
          properties:
            action:
              type: string
              pattern: ^ADD$
    ilmd:
      type: object
    attribute:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/uri'
        attribute:
          anyOf:
          - type: number
          - type: string
          - type: object
      required:
      - id
    component:
      anyOf:
      - $ref: '#/components/schemas/vocab-other-uri'
      - type: string
        enum:
        - x
        - y
        - z
        - axial_distance
        - azimuth
        - height
        - spherical_radius
        - polar_angle
        - elevation_angle
        - easting
        - northing
        - latitude
        - longitude
        - altitude
    GS1-Extensions:
      example: 'example-epc-ext=http://org1.example.com/epcis/,

        example-epc-ext2=http://vendor.example.com/epcis/

        '
      type: object
    bizStep:
      anyOf:
      - $ref: '#/components/schemas/vocab-other-uri'
      - type: string
        enum:
        - accepting
        - arriving
        - assembling
        - collecting
        - commissioning
        - consigning
        - creating_class_instance
        - cycle_counting
        - decommissioning
        - departing
        - destroying
        - disassembling
        - dispensing
        - encoding
        - entering_exiting
        - holding
        - inspecting
        - installing
        - killing
        - loading
        - other
        - packing
        - picking
        - receiving
        - removing
        - repackaging
        - repairing
        - replacing
        - reserving
        - retail_selling
        - shipping
        - staging_outbound
        - stock_taking
        - stocking
        - storing
        - transporting
        - unloading
        - unpacking
        - void_shipping
        - sensor_reporting
        - sampling
    sensorElement:
      type: object
      properties:
        sensorMetadata:
          $ref: '#/components/schemas/sensorMetadata'
        sensorReport:
          $ref: '#/components/schemas/sensorReportList'
      required:
      - sensorReport
    eventID:
      $ref: '#/components/schemas/uri'
    GS1-Next-Page-Token-Expires:
      example: '2017-07-21T17:32:28Z'
      type: string
      format: date-time
    GS1-EPCIS-Max:
      allOf:
      - example: 2.0.1
      - $ref: '#/components/schemas/version'
    errorDeclaration:
      type: object
      properties:
        declarationTime:
          $ref: '#/components/schemas/time'
        reason:
          $ref: '#/components/schemas/error-reason'
        correctiveEventIDs:
          type: array
          items:
            $ref: '#/components/schemas/eventID'
      required:
      - declarationTime
    certificationInfo:
      anyOf:
      - type: array
        items:
          $ref: '#/components/schemas/uri'
      - $ref: '#/components/schemas/uri'
    bizTransaction-type:
      anyOf:
      - $ref: '#/components/schemas/vocab-other-uri'
      - type: string
        enum:
        - bol
        - cert
        - desadv
        - inv
        - pedigree
        - po
        - poc
        - prodorder
        - recadv
        - rma
        - testprd
        - testres
        - upevt
    resultsBody:
      type: object
      properties:
        eventList:
          $ref: '#/components/schemas/eventList'
        vocabularyList:
          $ref: '#/components/schemas/vocabularyList'
      required:
      - eventList
    disposition:
      anyOf:
      - $ref: '#/components/schemas/vocab-other-uri'
      - type: string
        enum:
        - active
        - container_closed
        - damaged
        - destroyed
        - dispensed
        - disposed
        - encoded
        - expired
        - in_progress
        - in_transit
        - inactive
        - no_pedigree_match
        - non_sellable_other
        - partially_dispensed
        - recalled
        - reserved
        - retail_sold
        - returned
        - sellable_accessible
        - sellable_not_accessible
        - stolen
        - unknown
        - available
        - completeness_verified
        - completeness_inferred
        - conformant
        - container_open
        - mismatch_instance
        - mismatch_class
        - mismatch_quantity
        - needs_replacement
        - non_conformant
        - unavailable
    BizStepCollection:
      example:
        '@context':
        - https://ref.gs1.org/standards/epcis/epcis-context.jsonld
        - ex: https://example.org/myCustomBizSteps/
        type: Collection
        member:
        - accepting
        - arriving
        - assembling
        - collecting
        - commissioning
        - consigning
        - creating_class_instance
        - cycle_counting
        - decommissioning
        - departing
        - destroying
        - disassembling
        - dispensing
        - encoding
        - entering_exiting
        - holding
        - inspecting
        - installing
        - killing
        - loading
        - other
        - packing
        - picking
        - receiving
        - removing
        - repackaging
        - repairing
        - replacing
        - reserving
        - retail_selling
        - sampling
        - sensor_reporting
        - shipping
        - staging_outbound
        - stock_taking
        - stocking
        - storing
        - transporting
        - unloading
        - unpacking
        - void_shipping
        - ex:aCustomBizStep
      t

# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gs1/refs/heads/main/openapi/gs1-top-level-api-openapi.yml