canonical: https://jentic.com/apis/opto22.com/opto22-groov

# Opto22 groov View Public API

The groov View Public API exposes the data store of an Opto 22 groov EPIC or groov RIO industrial controller, letting external systems read and write tag values and device metadata over HTTPS. It targets industrial automation engineers integrating PLC data with dashboards, MES, or cloud historians without ripping into the controller programmatically. Authentication is by API key and the surface is small and focused on tag-level reads and writes plus log retrieval.

## For AI agents

Read and write data store tag values on Opto 22 groov controllers and pull groov logs over HTTPS using an API key.

## Scope

Does not handle PLC programming, strategy compilation, or SNAP-PAC controllers - use for groov data store tag access only.

## Capabilities

- Read individual data store tag values from a groov controller
- Write values to data store tags on a groov device
- List data store devices configured on the controller
- Enumerate tags exposed by a connected data store device
- Retrieve groov system logs for diagnostics and audit
- Identify the authenticated client through the whoami info endpoint

## Use cases

### Industrial Tag Bridge to Cloud Dashboards

Stream live tag values from a groov EPIC or groov RIO controller into a cloud dashboard or historian. The API exposes per-tag read endpoints so an integration can poll the values it needs without any custom firmware on the controller, using an API key configured in groov Manage.

Example prompt: GET `/v1/data-store/devices` to list devices, then GET `/v1/data-store/read/{id}` to fetch the current value of a target tag every 30 seconds

### Remote Setpoint Updates from Business Systems

Allow an MES or scheduling system to push setpoints into a groov controller without operator intervention. The write endpoint accepts a tag id and value, so a job-start workflow can set a recipe parameter directly on the device.

Example prompt: POST `/v1/data-store/write/{id}` with the new setpoint value when an MES job changes recipe

### Controller Log Collection for Diagnostics

Pull groov system logs into an external observability stack to investigate connectivity drops or authentication failures. The logging endpoint returns the groovLogs.json payload that operations teams normally read inside groov Manage.

Example prompt: GET `/v1/logging/groovLogs.json` after an alert fires and forward the response to an incident channel

### Agent-Driven Industrial Tag Operations via Jentic

An AI assistant for plant engineers can read and write groov tag values on demand through Jentic without exposing the API key to the model. The agent searches by intent like 'read a groov tag value' and Jentic returns the matching read or write operation with its schema.

Example prompt: Search Jentic for 'read a groov tag value', load the `/v1/data-store/read/{id}` schema, and execute against the engineer's controller

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/data-store/devices` | List data store devices |
| GET | `/v1/data-store/devices/{id}/tags` | List tags on a device |
| GET | `/v1/data-store/read/{id}` | Read a tag value |
| POST | `/v1/data-store/write/{id}` | Write a tag value |
| GET | `/v1/logging/groovLogs.json` | Retrieve groov system logs |
| GET | `/info` | Get server info |

## Key resources

- **Data Store Devices** — List devices configured in the groov data store
- **Data Store Tags** — Enumerate tags available on a device
- **Read** — Read tag values by id
- **Write** — Write tag values by id
- **Logging** — Retrieve groov system logs
- **Info / Whoami** — Server info and authenticated client identity

## Why Jentic

- **Setup:** Wiring the groov View Public API by hand means appending its api_key as a query parameter on every call to your controller and keeping the data-store read and write routes straight yourself. Through Jentic you install once, import the groov View Public API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** groov View puts the tag id in the URL path (`/v1/data-store/read/{id}`, `/v1/data-store/write/{id}`), so a rule can pin your agent to reading one tag. You choose the operations it may call, so the write-setpoint operation is not included unless you add it.
- **Credential handling:** Your groov api_key is stored once, encrypted, by your own Jentic One instance and appended to the request at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'read a groov tag' or 'write a setpoint to a groov controller', and Jentic returns the matching read or write operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **PAC Control REST API** — Same vendor, but for SNAP-PAC controllers rather than groov EPIC or RIO
- **Particle Device Cloud API** — General-purpose IoT device cloud for variable read and function call rather than industrial PLC tags
- **Blynk IoT API** — IoT platform API focused on consumer and prosumer device dashboards

## FAQ

### What authentication does the groov View Public API use?

The API uses an API key passed as an apiKey credential. The key is created in groov Manage and scoped to the device's data store; through Jentic, the key is held in the encrypted vault and the agent receives only a scoped session, so the raw key never reaches the model context.

### Can I write tag values to a groov controller with this API?

Yes. POST `/v1/data-store/write/{id}` accepts a value for a specific data store tag id, which lets external systems push setpoints or commands into the controller. The companion GET `/v1/data-store/read/{id}` returns the current value of the same tag.

### How many endpoints does the groov View Public API expose?

Ten endpoints across four areas: device and tag enumeration, tag read, tag write, and log retrieval. The surface is intentionally narrow because everything routes through the data store abstraction on the groov controller.

### What are the rate limits for the groov View Public API?

Rate limits are not declared in the spec - practical limits are bounded by the groov controller's CPU and the polling interval you configure. Treat the controller as a real-time device and avoid aggressive sub-second polling against multiple tags simultaneously.

### How do I read a tag value through Jentic?

Install the Jentic SDK with pip install jentic, then search for 'read a groov tag value'. Jentic returns the GET `/v1/data-store/read/{id}` operation with its input schema; load it, supply the tag id, and execute. Run it through Jentic One, the self-hosted execution layer, to get an agent API key.

### Can I limit what my agent is allowed to do with the groov View Public API?

Yes. Because you run Jentic One yourself, your own rules decide which groov operations and credentials the agent may use. Since groov View puts the tag id in the URL path for GET `/v1/data-store/read/{id}` and POST `/v1/data-store/write/{id}`, you can pin the agent to reading a single tag and leave the write-setpoint operation out unless you add it. You choose whether it may also list devices, enumerate tags, or pull logs, and your stored API key is attached only at execution time.
