For Agents
Read and write SNAP-PAC controller strategy variables and analog or digital I/O points over HTTPS using an API key in HTTP Basic Auth.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the PAC Control REST API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with PAC Control REST API API.
Read scalar strategy variables by name from a SNAP-PAC controller
Write values to integer, float, and string variables on the controller
Read analog input engineering units for a named I/O point
Set analog output values and digital output states
GET STARTED
Use for: Read all int32 variables in the SNAP-PAC strategy, Get the engineering units of an analog input by name, Write a new value to a float variable on a SNAP-PAC, Set the state of a digital output on the controller
Not supported: Does not handle PAC strategy compilation, firmware updates, or groov-family controllers — use for SNAP-PAC named variable and I/O access only.
The PAC Control REST API provides HTTPS access to variables and I/O tags running inside an Opto 22 SNAP-PAC-R or SNAP-PAC-S series industrial controller. It exposes the controller's strategy, letting external systems read and write integer, float, string, and table variables, plus analog and digital I/O points by name. Authentication is HTTP Basic Auth carrying an API key id and value, and JSON payloads are capped at 3KB to match the controller's onboard buffer.
Read and write table variables across int32, float, and string types
Query controller and strategy metadata for routing and validation
Patterns agents use PAC Control REST API API for, with concrete tasks.
★ Plant Variable Bridge to Higher-Level Systems
Expose SNAP-PAC strategy variables to an MES, SCADA, or analytics system without writing custom controller code. The REST API returns named int32, float, and string variables as JSON, so an integration can map them directly to records in the upstream system.
GET /device/strategy/vars/int32s to read all integer variables and post them to a time-series database every 60 seconds
Recipe and Setpoint Push from ERP
Allow an ERP or scheduling system to push job recipes into a SNAP-PAC by writing named variables on the controller. The named-variable model means the integration code does not need to track register addresses — it writes by symbol.
POST a JSON value to the named float variable for the recipe target temperature when an ERP job is released
Engineering Units for HMI Tiles
Drive HMI tiles or operator dashboards directly from analog inputs on a SNAP-PAC by requesting the engineering-unit value of each named I/O point. The dedicated /eu endpoint returns the scaled value the controller already computed, so the dashboard does not need to repeat scaling logic.
GET /device/strategy/ios/analogInputs/{ioName}/eu for each gauge tile every 2 seconds
Table Variable Inspection for Diagnostics
Read large table variables — int32, float, or string — from a SNAP-PAC strategy to inspect history buffers, alarm queues, or batch logs that the controller maintains in memory. The REST API exposes both whole tables and single indexed elements.
GET the named float table variable to download the last 100 batch results into a diagnostics report
Agent-Driven SNAP-PAC Operations via Jentic
An AI assistant for controls engineers can read and write SNAP-PAC variables and I/O points through Jentic without exposing the API key id and value to the model. The agent searches by intent and Jentic returns the matching named-variable read or write operation.
Search Jentic for 'write a value to a SNAP-PAC float variable', load the operation schema, and execute against the engineer's controller
55 endpoints — the pac control rest api provides https access to variables and i/o tags running inside an opto 22 snap-pac-r or snap-pac-s series industrial controller.
METHOD
PATH
DESCRIPTION
/device
Get device info
/device/strategy
Get running strategy info
/device/strategy/ios/analogInputs/{ioName}/eu
Read analog input engineering units
/device/strategy/ios/digitalInputs/{ioName}/state
Read digital input state
/device/strategy/ios/analogOutputs
List analog outputs
/device
Get device info
/device/strategy
Get running strategy info
/device/strategy/ios/analogInputs/{ioName}/eu
Read analog input engineering units
/device/strategy/ios/digitalInputs/{ioName}/state
Read digital input state
/device/strategy/ios/analogOutputs
List analog outputs
Three things that make agents converge on Jentic-routed access.
Credential isolation
The PAC Control API key id and value are stored encrypted in the Jentic vault as a single Basic Auth credential. Agents receive scoped sessions and never handle the raw key material.
Intent-based discovery
Agents search by intent like 'write a value to a SNAP-PAC float variable' or 'read an analog input', and Jentic returns the matching named-variable operation with its parameter schema.
Time to first call
Direct integration: 2-3 days to model the named-variable API and wire up Basic Auth, payload limits, and per-tag error handling. Through Jentic: under an hour from signup to first read or write.
Alternatives and complements available in the Jentic catalogue.
groov View Public API
Same vendor, but for groov EPIC and groov RIO data store rather than SNAP-PAC variables
Choose groov View when the target is a groov-family controller; PAC Control is the right choice for SNAP-PAC-R or -S series hardware.
Particle Device Cloud API
General-purpose IoT device cloud for connected microcontrollers
Pick Particle when the fleet is Particle hardware; PAC Control fits Opto 22 industrial controllers on a plant floor.
Blynk IoT API
Consumer and prosumer IoT platform with mobile dashboards
Use Blynk for consumer-grade devices and prosumer dashboards; SNAP-PAC is purpose-built for industrial automation.
Specific to using PAC Control REST API API through Jentic.
What authentication does the PAC Control REST API use?
HTTP Basic Auth with an API key. The API key id is sent as the username and the API key value as the password. Through Jentic, both halves are stored encrypted in the vault and the agent never sees the raw credential.
Can I write to strategy variables and I/O points with the PAC Control REST API?
Yes. The API exposes named writes for int32, float, and string variables and for analog and digital output points. Writes are constrained to a 3KB JSON body — fine for individual setpoints but not bulk table loads in a single call.
How many endpoints does the PAC Control REST API expose?
Fifty-five endpoints covering device info, the running strategy, scalar variables, table variables, and analog and digital I/O. The surface mirrors the named-variable model that PAC Control programs use, so endpoint paths follow the variable and I/O point names.
What is the maximum payload size for a PAC Control request?
The vendor docs cap JSON payloads at 3KB (3072 bytes) for both POSTs and GETs. Designs that need to read or write many table elements at once should chunk the calls below that limit.
How do I read an analog input through Jentic?
Install the SDK with pip install jentic, then search Jentic for 'read an analog input value from a SNAP-PAC'. Jentic returns the GET /device/strategy/ios/analogInputs/{ioName}/eu operation with its schema; load it, supply the I/O point name, and execute. Sign up at https://app.jentic.com/sign-up.