canonical: https://jentic.com/apis/intellifi.nl/intellifi

# Intellifi Nl Brain Web API

The Brain Web API is the REST surface of Intellifi's Brain platform, a localisation system for items and assets that uses RFID and Bluetooth devices. Across 77 endpoints, the spec covers device and location management, key-value storage, presences and items, blob upload and download, events, and user-defined location rules - the core building blocks for tracking physical assets in a warehouse, retail, or logistics environment. Authentication can be a query API key, a header API key (X-API-Key), or a session cookie, and the base URL is templated per customer Brain instance.

## For AI agents

Read and write to an Intellifi Brain instance - manage devices, locations, items, presences, key-value pairs, and uploaded blobs for RFID and Bluetooth asset tracking.

## Scope

Does not handle billing, GPS-only outdoor tracking, or generic CRM data - use for Intellifi Brain RFID and Bluetooth asset tracking, devices, locations, and events only.

## Capabilities

- Inspect the authenticated session via GET /authinfo to confirm permissions
- Upload, download, and delete binary blobs through /blobs and /blobs/{id}
- Stream and query device events through /events
- Manage tracked items, locations, and location rules across the corresponding endpoints
- Read presences (which item is at which location) for live asset tracking
- Persist arbitrary configuration in key-value pairs via /kvpairs
- Manage API keys directly through the /keys endpoints

## Use cases

### Warehouse Asset Tracking Dashboard

Pull presences, items, and locations from a customer Brain instance and render them in a warehouse dashboard so operators can see where every RFID-tagged asset is at any moment. The /presences and /items endpoints provide the live state, while /events offers a stream of changes for animation or alerting.

Example prompt: List items via /items, locations via /locations, and presences via /presences, then render the live mapping in the operations dashboard.

### Custom Location Rule Provisioning

Use /locationrules to encode business rules such as 'high-value tools must not leave bay 4' and combine them with device-event streams to detect violations in real time. The Brain stores the rules per customer instance, so a tooling layer can provision them as part of customer onboarding.

Example prompt: POST a new rule via the locationrules endpoint and listen on /events for matching device telemetry.

### Configuration and Blob Storage

Store device firmware blobs or per-customer configuration files via POST /blobs, retrieve them through GET /blobs/{id}, and download named files via /blobs/{id}/download/{filename}. This lets the Brain double as a small artifact store for the assets connected to it.

Example prompt: POST a new blob with the firmware payload, then store the returned blob id against the target device.

### AI Agent Operations Console via Jentic

An AI agent given access to a customer Brain through Jentic can answer questions like 'where is asset 1234' or 'what events happened on device 9 in the last hour' by calling the Brain endpoints by intent. Jentic isolates the API key and templates the customer subdomain in the base URL, so the agent only handles structured operational data.

Example prompt: Through Jentic, call brain_get_presences for the asset id and brain_list_events for the relevant device, then summarise the location and recent activity.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /authinfo | Inspect the current session |
| GET | /blobs | List uploaded blobs |
| POST | /blobs | Upload a new blob |
| GET | /blobs/{id} | Retrieve a blob's metadata |
| DELETE | /blobs/{id} | Delete a blob |
| GET | /events | List device and system events |

## Key resources

- **Authinfo** — Inspect the current session and its permissions.
- **Blobs** — Upload, download, and delete binary blobs.
- **Events** — Stream device and system events from the Brain.
- **Items** — Manage tracked items and their metadata.
- **Locations** — Manage the locations against which items are tracked.
- **Locationrules** — Define per-location business rules and constraints.
- **Presences** — Read which items are present at which locations.
- **Keys** — Manage API keys for the Brain instance.
- **Kvpairs** — Persist arbitrary key-value configuration.
- **Services** — Inspect Brain services running on the instance.

## Why Jentic

- **Setup:** Wiring the Intellifi Brain Web API by hand means setting up its API-key request header, resolving the customer-specific base URL from the protocol, customer, and tld template, and tracking 77 endpoints. Through Jentic you install once, import the Brain Web API from the API Directory, store the key and customer host once, and your agent calls it.
- **Permission scoping:** Intellifi puts the resource id in the URL path (/blobs/{id}), so a rule can pin your agent to the blob, device, and event operations you approve on your customer instance. You choose the operations it may call, so blob deletion is not included unless you add it.
- **Credential handling:** Your Intellifi Brain API key is stored once, encrypted, by your own Jentic One instance and injected as the request header at execution time, alongside the customer base URL. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list Intellifi presences for an asset' or 'upload an Intellifi blob', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Particle API** — Particle provides a cloud-managed IoT device platform for cellular and Wi-Fi devices.
- **Balena API** — Balena manages fleets of containerised IoT devices with deployment-focused APIs.
- **Blynk API** — Blynk supplies dashboards and mobile UIs for IoT data, including telemetry from devices.

## FAQ

### What authentication does the Intellifi Brain Web API use?

The spec defines three apiKey schemes: QueryApiKey (query parameter 'key'), HeaderApiKey (header 'X-API-Key'), and CookieSid (a session cookie named 'brain.sid'). Endpoints accept any of these. Through Jentic, the API key is held in your encrypted Jentic One instance and bound to the X-API-Key header at execution time.

### Can I list which items are at which locations?

Yes. The /presences endpoint returns the live mapping between items and locations as observed by the Brain's RFID and Bluetooth devices. Combine with /items and /locations for human-readable metadata.

### Can I store binary blobs against the Brain?

Yes. POST /blobs uploads a blob, GET /blobs/{id} reads metadata, /blobs/{id}/upload adds further uploads, /blobs/{id}/download/{filename} retrieves the file, and DELETE /blobs/{id} removes it.

### What are the rate limits for the Intellifi Brain Web API?

The OpenAPI specification does not encode explicit rate limits. Each Brain is a per-customer deployment, so capacity depends on the customer instance. Avoid tight polling on /events - use longer intervals or stream consumers - and back off on 429 responses if seen.

### How do I query asset presence through Jentic?

Run pip install jentic, then have the agent issue the search-load-execute flow with the query 'list Intellifi presences for an asset'. Jentic returns the operation backed by /presences; the agent supplies the asset id filter and receives the current location mapping.

### What does the templated base URL look like?

The servers entry is {protocol}://{customer}.intellifi.{tld}/api, so each customer's Brain has its own subdomain. Provide protocol (http or https), customer subdomain, and tld at execution time; Jentic stores these alongside the API key for the configured Brain instance.

### Can I limit what my agent is allowed to do with the Intellifi Brain Web API?

Yes. Jentic One runs self-hosted on your own infrastructure, so your rules decide which Brain operations and credentials the agent may use. Because Intellifi puts the resource id in the URL path, such as /blobs/{id}, you can pin the agent to just the blob, device, event, and presence operations you approve on your customer instance. You choose the operations it may call, so destructive actions like blob deletion via DELETE /blobs/{id} are excluded unless you add them.
