Hi, everyone.
I recently built a custom WordPress plugin on top of the IC2 API for one of our customers, a large maritime operator running a Peplink fleet across their vessels. I wanted to share what we built and ask whether some of my workarounds were actually necessary, or whether I missed something in the API.
FleetWatch gives our customer a real-time view of fleet health and contractual SLA compliance:
- SLA tracking — Billable downtime per vessel per month, calculated against a contractual uptime target.
- Customer collaboration portal — The operator classifies each outage themselves (planned maintenance, at dock, technical fault, SLA breach, unknown). Incidents are auto-exempted after 14 days if left unresponded.
- GPS-tagged incidents — Every offline event is stamped with the vessel’s last known position and shown on a map. Marking an incident as “at dock” auto-propagates the exemption to all other incidents within 100m.
- ETL pipeline — Ingests raw IC2 event_log entries nightly, applies a 3-minute grace period to filter reboots, and builds an incident timeline per serial number.
How I’m using the IC2 API:
GPS coordinates:
The bulk device list (GET /rest/o/{org}/d) provides gps_support and gps_exist flags but no actual coordinates in our testing. I ended up calling GET /rest/o/{org}/g/{group}/d/{ic2_numeric_id}/loc individually for each device where GPS is active. I found the {ic2_numeric_id} must be the integer id field from the device list, as using the serial number returns a 404. The response is a JSON array: [{“la”: lat, “lo”: lng, “at”: alt, “sp”: speed, “timestamp”: unix}].
Is there a bulk GPS endpoint I missed? Individual calls per device work fine at our scale, but it feels like something a single request should be able to solve.
Event log pagination:
I crawl event_log backwards in time (newest first) and stop when we hit entries we’ve already processed. It works reliably, but I’m curious whether there’s a webhook or push mechanism for new events so we don’t have to poll nightly.
Questions:
- Bulk GPS, is there a way to fetch coordinates for multiple devices in one request?
- Webhooks / push, any plans for event_log webhooks so integrations don’t need to poll?
- General approach, does anything here look like we’re going the long way around something IC2 already handles natively?
Happy to share more details if it’s useful to anyone building similar integrations