OIC alternative
What the OIC REST API actually covers (and what it doesn't)
Lifecycle, connections, lookups, libraries, certificates, schedules — and the wall: no PATCH on a flow's inner XSL, WSDL, or JCA.
Last updated 2026-05-05 · ERPHive docs
The OIC 3 REST API is genuinely useful for the lifecycle work it covers. It is also surprising in what it leaves out. Here's the actual surface area, verified against the OIC 3 docs and tested against production OIC instances.
Lifecycle — fully scriptable
GET /integrations list integrations
GET /integrations/{id}|{code}|{code}|{ver}
POST /integrations/{id}/activate activate
POST /integrations/{id}/deactivate
DELETE /integrations/{id}
POST /integrations/{id}/clone
POST /integrations/import import an IAR
PUT /integrations/archive replace by upload
GET /integrations/{id}/archive export the IARThese endpoints are stable and well-documented. Most teams that build CI for OIC focus here — schedule nightly exports for backup, scripted promotion across pods, automated activation after a ticket closes.
Connections — usable, not great
GET /connections
POST /connections create
PUT /connections/{id} update (creds, URL)
POST /connections/{id}/test test the connection
GET /connections/{id}/health current stateUpdating credentials and URLs at the connection level is fully supported. This is the single most scriptable surface in OIC and the right place to land per-environment configuration. ERPHive's connection_bindings table is modelled on the same separation.
Lookups — surprisingly scriptable
GET /lookups
POST /lookups create with values
PUT /lookups/{name} full table replacement
DELETE /lookups/{name}The shortest path to "edit-without-touching-the-IAR" is to push parameterisable logic into a lookup. A flow that looks up "ledger ID for business unit X" against a lookup table can be re-tuned by hitting PUT /lookups/{name} — no Designer round-trip, no IAR re-import.
Libraries — for transforms expressible as JS
GET /libraries
POST /libraries create
POST /libraries/{id}/archive update JS code
DELETE /libraries/{id}OIC libraries are JS modules deployable via REST. Transforms that you'd otherwise express as XSL can move to a library and become hot-replaceable. This is how to insulate yourself from the IAR-rebuild treadmill for the parts of the flow that change frequently.
Schedules and certificates
GET/POST/PUT/DELETE /integrations/{id}/schedule
GET/POST/DELETE /certificatesBoth are first-class REST resources. Cron expressions edit cleanly via PUT; certificates upload/rotate via POST + DELETE. No editor-only state.
What is NOT exposed
The honest gap, and the reason teams hit walls when they try to script OIC like a normal CI/CD target:
- The flow's internal graph. No PATCH on processors, transformers, applications, or orchestration shape. The Designer is the only producer of valid integration internals.
- XSL transforms inside an integration. No endpoint to update
req_*.xslorres_*.xslin place. Mappings change requires a re-export. - WSDLs and JCA descriptors attached to applications. Same story — read-only via the API.
- The mod hash recomputation. Server-side only; not exposed as a separate endpoint.
- Per-step run logs at structured granularity.Activity Stream returns text; you can't query "all step traces where step_id = transformer_24".
What this means in practice
The OIC REST API is sufficient for "deploy the IAR my Designer produced" and insufficient for "build my IAR programmatically." This is by design — Oracle wants the Designer to be the only producer.
For teams whose authoring workflow is increasingly AI-assisted or PR-reviewed, this is the gap that drives the move to file-based platforms. ERPHive exists in that gap: flow internals are plain text, every change is a Git diff, and the runtime executes the text directly without sealed-archive intermediation.
Want flow internals you can actually edit?
ERPHive's flow.yaml + TypeScript mappings live in your Git repo. Diff, review, merge — same workflow as your application code.