A scalable and secure
automation platform
An opinionated platform that gives you the complete infrastructure
for deploying, monitoring
and troubleshooting automation

Multi-language support
OpenCore allows different types of developers to work together in one common framework
Choose your favourite coding language
Leverage OpenRPA and Node-RED to build efficient, low-code automation solutions for RPA and API integrations—streamlining workflows with minimal coding effort.
client = Client () client.connect() query_result = client.query(collectionname='entities', query={}) print('result', query_result) client.free() print('result', query_result) client.free()
const { Client } = require('openiap'); const client = new Client(); client.connect(); const query_result = client.query({ collectionname: 'entities', query: '{}', projection: '{"name":1}' }); console.log("result", query_result); client.free();
static async Task MainAsync(string[] args) { Client client = new Client(); await client.connect(); string results = await client.Query<string>("entities", "{}", "{"name": 1}"); Console.WriteLine("result: " + results); }
use openiap_client::{OpenIAPError, Client, QueryRequest}; async fn main() -> Result<(), OpenIAPError> { let client = Client::new_connect("").await?; let q = client.query( QueryRequest::with_projection( "entities", "{}", "{"name":1}" )).await?; let items: serde_json::Value = serde_json::from_str(&q.results).unwrap(); let items: &Vec<serde_json::Value> = items.as_array().unwrap(); for item in items { println!("Item: {:?}", item); } Ok(()) }
struct ClientWrapper *client = create_client(); const char *server_address = ""; struct ConnectResponseWrapper *conn_resp = client_connect(client, server_address); free_connect_response(conn_resp); QueryRequestWrapper req; req.collectionname = "entities"; req.query = "{}"; struct QueryResponseWrapper *query_resp = query(client, &req); printf("Query succeeded. Results: %s ", query_resp->results); free_query_response(query_resp); client_disconnect(client); free_client(client);
use openiapClient; $client = new Client(); $client->connect(""); $entities = $client->Query("entities", []); print_r("Query returned: " . count($entities) . PHP_EOL); $client->free(); unset($client);
client = new Client(); List<clienttestcli.Entity> results = client.query(new TypeReference<List<clienttestcli.Entity>>() {}.getType(), new QueryParameters.Builder().collectionname("entities") .query("{"_type":"test"}").top(10).build()); for (clienttestcli.Entity item : results) { System.out.println("Item: " + item._type + " " + item._id + " " + item.name); }
Modular Code, Maximum Flexibility
Break code into small, independent modules for easier maintenance, better testability, and seamless scalability.
Programing Languages
A unified SDK delivering the same seamless experience across 10 different programming languages.
Low-Code, High Impact
Empower non-technical users to prototype and build functional solutions with ease, using their low-code tool of choice.
Observability
Unlock powerful insights with pre-built metrics and full transparency across your infrastructure
Central logging
Centralized logs capture all automation activity, making it easy to track and troubleshoot across multiple bots and servers.
Customize Your Performance Data
Choose the performance metrics that matter most to you and tailor your insights for a personalised experience
Ready-to-use Telemetery
Get instant access to 300 unique performance metrics with our pre-built template—valuable insights just a click away.
Tracing
Trace every request across multiple app domains and servers to easily pinpoint points of failure.
Workitem Queues
Workitem queues let your automation handle tasks in a scalable
way — distributing work,
tracking progress, and ensuring no
task gets lost
Modulization
Divide your processes into smaller parts for easier testing, troubleshooting and reporting.
Scalability
Effortlessly scale up code for each workitem queue to manage workloads of any size.
Multi-language
Each workitem queue can orchestrate code in different languages, giving you the flexibility to choose the right language for the right task.
Quickly Retry Failed Workitems
Isolate and handle errors by easily re-trying or re-submitting failed workitems.
Gain insights over your process
By dividing your process into multiple units that operate across different stages, we can easily gain deeper insights into its performance and identify bottlenecks more effectively
Reports
Easily create dashboards and reports on user data
Modulization
Divide your processes into smaller parts for easier testing, troubleshooting and reporting.
Create your own dashboards
Create personalised dashboards to display the data that matters most to you.
Connect to other data sources
We give you the option to create reports in the platforms of your choice
Security
Enterprise-grade security that meets the most demanding standards
Data Security
Access control lists on all data and on the fly encryption for added security on sensitive data.
Scalability
Every component of the platform is designed to be scalable, and we require developers to build packages that are inherently scalable as well.
Audit trailing
The platform generates extensive audit trailing and keeps complete version history of all changes in the database. This allows complying with even the most restrictive regulatory demands.
Least privileges
The platform encourages the use of least privileges over service accounts, minimizing the risk of data leaks. By running within the context of the user who initiated the request, access is tightly controlled and more secure
Version History
Version history on all data in the database so you can keep track of what users did what changes at what points in time.
Increased Integration Efficiency by 25x
Kuehne + Nagel increased their integration
efficiency
by 25x using OpenCore
Industry leaders deliver winning
solutions with OpenCore
OpenCore allows different types of developers to work together via one common framework
This is the perfect tool that we need in order to create complex invoicing scenarios. Today it has become the pillar of how we handle invoicing, globally.
Felix Hassine
Global Head of indirect tax
OpenCore is light on resources, extremely fast and incredibly easy to scale when required.
Brennan Fritz
Head of ITS & HCM
Since adopting OpenIAP, we’ve cut operational costs, improved response times, and gained full visibility into our IoT ecosystem. It’s a game-changer for multi-site operations.
Henk van Ark
CEO and Founder Access IoT
Join the community
+500k
User Downloads
+3k
Stars on Github
+5000
Forum Posts
+500
Videos on YouTube