Build on the Robo Ecosystem
SDKs, REST API, webhooks, and a Package Manager to ship apps, workflows, drivers, and integrations across OS, ERP, and AI.
Quickstart
Three steps to your first call and a running package.
In the admin portal, create a Personal Access Token (scoped to your organization). Keep it secret.
# Example header
Authorization: Bearer <TOKEN>
Unified Access Format supports .json
, .xml
, .csv
, .xls
. Append a suffix to the endpoint.
curl -s \
-H "Authorization: Bearer $TOKEN" \
https://robo-meister.com/api/v1/workflows.json
Use the JS SDK or the Package Manager to scaffold apps, workflows, and drivers.
# JS (browser)
<script src="/js-api/public/RoboConnector.js"></script>
# Package skeleton
rappkg init my-first-app
curl -X POST https://robo-meister.com/api/v1/events.json \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"event_type":"task_completed",
"scope_type":"organization",
"scope_id":"ORG_ID",
"data": {"task_id":"abcd-1234","result":"success"}
}'
async function listWorkflows(token){
const res = await fetch('https://robo-meister.com/api/v1/workflows.json',{
headers:{ Authorization: `Bearer ${token}` }
})
if(!res.ok) throw new Error('HTTP '+res.status)
return res.json()
}
// Symfony HttpClient example
use Symfony\Component\HttpClient\HttpClient;
$http = HttpClient::create();
$response = $http->request('GET', 'https://robo-meister.com/api/v1/workflows.json', [
'headers' => [ 'Authorization' => 'Bearer '.$token ]
]);
$data = $response->toArray();
SDKs & APIs
Everything you need to extend the Business OS.
.json
,.xml
,.csv
,.xls
suffixes- Org-scoped endpoints
- OpenAPI spec (soon)
- Declarative tags:
<flow>
,<document>
,<function>
- Auto-init via meta/custom element
- Auth & rendering helpers
events_channel:<scope>:<id>:<type>
- HMAC signature header
- Retry & dead-letter (planned)
.rappkg
archive (zip)meta.json
,app.json
,workflows/
- Install & activate via ERP
- Context-aware placeholders
- Arrays & nested objects
- Defaults & fallbacks
- Hierarchical addressing
- Queues & events
- TTL-aware storage
Authentication
Bearer tokens are org-scoped. Use Personal Access Tokens for scripts or OAuth for user-consent flows.
- Generated in the admin portal
- Scopes: read/write per module
- Rotate and revoke anytime
Authorization: Bearer <TOKEN>
- Authorization Code / Client Credentials
- Tenant-aware consent screens
- Refresh tokens for long-lived apps
POST /oauth/token
client_id=...&client_secret=...
grant_type=client_credentials
REST API Basics
Base URL and example endpoints with Unified Access Format.
https://robo-meister.com/api/v1
GET /workflows.json
GET /workflows.csv
POST /events.json
{ "event_type":"task_completed", ... }
GET /clients.json?status=active&page=2&limit=50
GET /products.json?category=hardware&sort=-createdAt
{
"status": "error",
"error": {
"code": "invalid_scope",
"message": "Token lacks 'finance:read'"
}
}
Webhooks & Events
Subscribe to domain events or the low-level events_channel
for real-time updates.
POST /webhooks.json
{
"url": "https://robo-meister.com/webhook/robo",
"events": ["invoice.created","shipment.updated"],
"secret": "<HMAC_SECRET>"
}
X-Robo-Signature: t=1733826000,v1=hex(HMAC_SHA256(body, secret))
events_channel:user:<id>:task_completed
events_channel:organization:<id>:inventory_update
{
"timestamp":"2025-08-01T10:00:00Z",
"event_type":"task_completed",
"context": {"user_id":"1234","project_id":"9876"},
"data": {"task_id":"abcd-1234","result":"success"}
}
Package Manager
Distribute logic as .rappkg
archives: apps, workflows, drivers, integrations.
my-first-app.rappkg
├── meta.json
├── app.json
├── workflows/
│ └── onboarding.json
├── drivers/
│ └── printer.json
└── integrations/
└── acme_api.json
# via ERP UI: Marketplace → Install
# via API
POST /packages/install.json { "package_url": "https://.../my-first-app.rappkg" }
{
"name": "my-first-app",
"version": "1.0.0",
"type": "app", // app | workflow | driver | integration
"targets": ["erp","os","ai"],
"scopes": ["crm:read","bpm:write"],
"entry": "app.json",
"author": {"name":"Your Name","url":"https://example.com"}
}
{
"title": "Starter App",
"tiles": [{"route":"/apps/starter","label":"Starter"}],
"workflows": ["workflows/onboarding.json"],
"drivers": ["drivers/printer.json"]
}
Template System (Embeds)
Embed flows, documents, and functions via declarative tags or a meta initializer.
<meta name="robo-connector" data-init data-client="ACME" data-project="site" />
<script src="/js-api/public/RoboConnector.js"></script>
<robo-connector robo-connector-init></robo-connector>
<flow data-template="consult with chat">consult with chat</flow>
<document data-display data-document="price">Loading...</document>
<function data-provider="Inner" data-after-function="get_project">student_cart</function>
Placeholders, arrays, and nested objects are resolved contextually.
Context Engine
Hierarchical keys, queues, and events. Think of it as the mesh for state & orchestration.
Context:User:<user_id>:Project:<project_id>:client
Data:Queue:<queue_id>:In:<type>:payload
Data:Queue:<queue_id>:Result:status
TTL for ephemeral data; persistent for long-lived configuration.
# Producer → Queue → Worker → Result
PUSH Data:Queue:plan-42:In:orders
SUB Data:Queue:plan-42:Result:status
AI Module & Robo Assistant consume queues, update context, and emit events.
Ready to build?
Start with API access or scaffold your first package.