Skip to content

Client Tools

The hio command-line client provides a scriptable interface to common public API workflows. It supports project discovery, company management, event and facilitator management, registration and registrant management, facilitator assignments, project catalogs, JSON payloads, and metadata updates.

You need Node.js 22 or newer and an API key issued for your integration. Obtain the hio-client npm package archive from your EventPoint contact or your organization’s approved software channel, then install it globally with npm:

Terminal window
node --version
npm install --global ./path/to/hio-client-version.tgz
hio --help

Installing a newer archive with the same command upgrades the client. The archive contains the CLI and its generated command reference; it does not contain credentials or saved profiles.

A profile records the API URL, a default project ID, and the name of the environment variable holding the API key. It never records the key itself.

Set the key in your current shell before asking the CLI to resolve a project code.

Terminal window
$env:CLIENT_API_KEY = '<your API key>'
hio profile set production `
--url https://api.example.com `
--project-code example-project `
--api-key-env CLIENT_API_KEY `
--activate
Terminal window
export CLIENT_API_KEY='<your API key>'
hio profile set production \
--url https://api.example.com \
--project-code example-project \
--api-key-env CLIENT_API_KEY \
--activate

The client calls the project lookup endpoint, verifies access with the API key, and stores only the returned project UUID. If you already know the UUID, replace --project-code with --project-id <uuid>.

Review saved non-secret settings with:

Terminal window
hio profile list
hio profile show

To change the persistent project for an existing profile, resolve another code. The existing URL and API-key environment-variable name are retained:

Terminal window
hio profile set production --project-code another-project

For a one-command override when you know the project UUID, use the global option before the command:

Terminal window
hio --project <project-uuid> event list

You can also create one named profile per frequently used project and switch between them:

Terminal window
hio profile set conference-a --url https://api.example.com --project-code conference-a --api-key-env CLIENT_API_KEY
hio profile set conference-b --url https://api.example.com --project-code conference-b --api-key-env CLIENT_API_KEY
hio profile use conference-a

Inspect a project and the catalogs used to construct valid requests:

Terminal window
hio project get
hio project event-types
hio project facilitator-types
hio project meta-fields
hio project locations
hio project timeslots

Query and manage events:

Terminal window
hio event list --terms keynote --page-size 50
hio event get <event-uuid>
hio event create --name "Opening keynote" --event-type <event-type-uuid> --parent <parent-event-uuid>
hio event update <event-uuid> --name "Updated keynote"
hio event delete <event-uuid>

Query and manage companies, including related members and events:

Terminal window
hio company list --approved true --published true
hio company get <company-uuid>
hio company create --name "Example sponsor" --company-type <company-type-uuid>
hio company update <company-uuid> --published true
hio company members <company-uuid>
hio company categories <company-uuid>
hio company events <company-uuid>
hio company member-events <company-uuid> <member-uuid>
hio company delete <company-uuid>

Inspect registration types, codes, and tickets, then manage registrants:

Terminal window
hio registration type list
hio registration type get <registration-type-uuid>
hio registration code list <registration-type-uuid>
hio registration code get-for-code <registration-type-uuid> <passcode>
hio registration ticket list <registration-type-uuid>
hio registration ticket types <registration-type-uuid>
hio registrant create --event <event-uuid> --registration-type <registration-type-uuid> --email ada@example.com --first-name Ada
hio registrant update <registrant-uuid> --event <event-uuid> --registration-type <registration-type-uuid> --job-title Speaker
hio registrant check-in <registrant-uuid> --event <event-uuid> --checked-in true
hio registrant update-meta <registrant-uuid> --field 'Track="Platform"'
hio registrant delete <registrant-uuid> --event <event-uuid> --registration-type <registration-type-uuid>

Query and manage facilitators and assignments:

Terminal window
hio facilitator list
hio facilitator get <facilitator-uuid>
hio facilitator create --first-name Ada --last-name Lovelace
hio event facilitator assign <event-uuid> <facilitator-uuid> --type <facilitator-type-uuid>
hio event facilitator list <event-uuid>
hio event facilitator unassign <event-uuid> <facilitator-uuid>
hio facilitator delete <facilitator-uuid>

Delete and unassign commands ask for confirmation in an interactive terminal. Noninteractive scripts must explicitly pass --yes.

Create and update commands accept --file <path> or --file - for JSON from standard input. Explicit flags override values from the file.

Metadata can be supplied with --meta, --meta-json, --meta-file, and --clear-meta:

Terminal window
hio event update <event-uuid> \
--meta Track=Platform \
--meta-json Capacity=250 \
--clear-meta LegacyField

Human-readable output is the default. Use --json for complete machine-readable responses or --quiet for resource IDs:

Terminal window
hio --json event get <event-uuid>
EVENT_ID="$(hio --quiet event create --name "Scripted event" --event-type <event-type-uuid>)"

Keep API keys in an approved secret store or environment variable. Do not put them in scripts, profile files, JSON payloads, or command arguments.

Help is available at every level and is the authoritative reference for the installed version:

Terminal window
hio --help
hio company --help
hio company create --help
hio registration --help
hio registration code --help
hio registrant --help
hio registrant create --help
hio event --help
hio event create --help
hio event facilitator assign --help
hio facilitator update --help

The package also contains a generated COMMANDS.md with the complete command tree, arguments, options, descriptions, and defaults. Use the API reference for full request and response schemas supported by JSON payload files.