InTouch Automation REST API

Technical Architecture and Implementation Guide

Micronaut Framework | OpenAPI 3.0 | Swagger UI | 413 Endpoints across 26 Domains

Built on the Micronaut framework with compile-time dependency injection, the InTouch REST API follows the OpenAPI 3.0 specification with integrated Swagger documentation. 413 endpoints across 26 functional domains provide complete programmatic control over jobs, scheduling, triggers, credentials, AI gateway, the tool plugin system, skills, YAML jobs, and server administration.

Technology Stack

Micronaut 4.x

Compile-time DI eliminates reflection overhead. Fast startup, low memory footprint, non-blocking I/O.

OpenAPI 3.0

Standards-based specification enables automatic client generation in Java, Python, JS, C#, and more.

RESTful Design

Standard HTTP methods, stateless architecture, predictable URI patterns, JSON payloads.

JSON Format

All request and response bodies use JSON for maximum interoperability across platforms.

API Design Principles

Comprehensive Coverage

Every UI feature accessible via API

Consistent Patterns

Uniform CRUD operations across all domains

Idempotent Operations

GET, PUT, DELETE are safely repeatable

Clear Versioning

API versioning for backward compatibility

Descriptive Errors

Meaningful error codes and messages

Pagination Support

Efficient handling of large result sets

Integrated Swagger UI

Browse, test, and explore every API endpoint directly in your browser. The integrated Swagger UI provides live API testing, schema validation, code generation for multiple languages, and authentication integration. Access at http://[server]:[port]/swagger-ui.

API Functional Domains

Complete coverage from the live OpenAPI spec — 413 endpoints organized across 26 functional tag groups. Counts below match what is actually implemented in the running server.

DomainEndpointsDescription
Job59Full CRUD on jobs plus run, copy, content/schedule/trigger management, collision rules, exclusivity, tool editing, and AI-trigger linkage. The largest surface in the API.
Configuration33Server-wide settings: SMTP, SMS, messaging platforms (Slack, Discord, Telegram, WhatsApp, Teams, LINE), LDAP, CyberArk, AI assistant, encryption, runtime polling, sender filters.
Server26Edition info, license, autostart, log purge, AI-trigger polling, maintenance mode, shutdown, restart, health and version endpoints.
Credential23Encrypted credential vault: connections to databases, cloud services, SSH/SFTP, AI providers, message channels, webhooks, OAuth, runtime environments. Full CRUD plus test/validate.
YAML Job19Jobs-as-Code lifecycle: load, validate, sync to DB, list, install, export, reload, dry-run, schedule wiring.
Role19RBAC roles, custom roles, role-to-publisher and role-to-group assignments, per-object rights.
Skill18InTouch skills (SKILL.md) and OpenClaw skills: list, get, install, update, delete, invoke, source export, Hubue search.
InTouch Tool18IToolConnector plugins and YAML tools: list, install, reload (single + all), scan, source export, hot-deploy.
Schedule17Seven native schedule types (Day, Week, Weekday, Weekend, Month/Specific, Month/Relative, Custom) with timezone, blackout dates, expiration, and group management.
Job Activity17Execution history, log messages by date range / last execution / single run, work-completed time series, run/job ID lookups.
AI16AI gateway routing (Enterprise-only feature: cost-optimized / latency-optimized / failover / round-robin / policy strategies across providers), prompt CRUD with named-resolve, usage summary by model / provider / project, usage purge.
Group14Object groups for credentials, schedules, trigger files, AI triggers, runtime envs, subscribers — plus default-group resolution.
AI Trigger13LLM-evaluated trigger conditions, polling, group membership, enable/disable, dry-run.
Trigger file11Filesystem watch triggers with settle time, glob filters, group assignment, enable/disable.
Alert11Multi-channel alert subscriptions for job state transitions (start, done, error, retry, overrun, warning).
Intouch Message14Per-publisher inbox (v8): list-mine / list-mine-unread / list-by-publisher-id, get-by-id, get-unread-count, get-attachment, mark-read / mark-unread / mark-all-read, delete, delete-batch, delete-older-than-days, delete-before, export-csv.
Subscriber9Notification recipients (email, SMS, Slack, Discord, Telegram, WhatsApp, Teams, LINE) and group membership.
Project9Top-level resource container; create, copy, list, delete with optional cascade.
Jobset9Group jobs into executable sets within a project; CRUD plus list-by-project.
Access8Login, logout, change password, generate / revoke API key, ownership transfer.
Runtime Environment7Python, Node, Bash, PowerShell, Ruby, Perl runtimes — registration, env-var management, test execution.
Publisher7User account CRUD, group membership, locking.
Import/Export7Configuration migration between environments — projects, jobs, schedules, credentials with selective export.
Oneshot6One-time tool execution outside the job framework — for AI assistant tool calls and script-driven actions.
Assistant6AI assistant chat session, tool-use loop, command translation, prompt patterns.
Filesystem1Server-side filesystem listing for path pickers in the UI.
Total41326 functional domains

Authentication

Session-based authentication via POST /intouch/access/login. The body is a LoginDTO with publisher + password (and an optional server override; default is intouch):

POST /intouch/access/login
Content-Type: application/json

{
  "publisher": "intouch",
  "password": "your-password"
}

Response: { "sessionId": 1, "sessionToken": "1:4829371650284719", ... }

All subsequent API calls include the sessionToken (or sessionId) as a query parameter for authorization. API keys are an alternative — generate via POST /intouch/access/generate-api-key and revoke via /revoke-api-key.

Authorization Model

Multi-Tier Permissions

Read, create, update, delete, execute, and admin permission levels per resource.

Object-Level Security

Fine-grained access control on individual jobs, connections, and resources.

Group-Based Management

Assign permissions to groups, users inherit from group membership.

Session Controls

Configurable session timeouts, concurrent session limits, and audit logging.

HTTP Methods

MethodUsageIdempotent
GETRetrieve resourcesYes
POSTCreate resources, execute actionsNo
PUTUpdate existing resourcesYes
DELETERemove resourcesYes

Response Codes

CodeMeaning
200Success — resource returned or action completed
204Success — no content returned (delete operations)
207Multi-status — partial success in batch operations
400Bad request — invalid parameters or payload
401Unauthorized — invalid or expired session
403Forbidden — insufficient permissions
404Not found — resource does not exist
409Conflict — resource already exists or state conflict
500Internal server error

Integration Examples

Job Execution Workflow

Real endpoints from the live OpenAPI spec. Resource paths are kebab-cased; most lookups have by-id and by-name variants.

# Step 1: Authenticate
POST /intouch/access/login
  # body: { "publisher": "intouch", "password": "..." }

# Step 2: Resolve job by fully-qualified name
GET /intouch/job/get-by-name?sessionId=$T&fqnJob=Default/Default/DailyETL

# Step 3: Run the job (returns 204 on success)
POST /intouch/job/run-job-by-names?sessionId=$T&fqnJobNames=Default/Default/DailyETL

# Step 4: List recent activity for the job
GET /intouch/job-activity/get-job-work-completed-from-days-ago?sessionId=$T&jobId=42&daysAgo=1

# Step 5: Pull log messages for the latest run
GET /intouch/job-activity/get-job-log-messages-for-last-execution?sessionId=$T&jobId=42

OneShot Ad-Hoc Execution

OneShot is the synchronous run-and-wait surface for ad-hoc job and task execution from REST clients, the AI assistant, or scripts. Returns a runId immediately, then poll status:

# Run a job ad-hoc with parameter overrides
POST /intouch/oneshot/run-job?sessionId=$T
Content-Type: application/json

{
  "fqnJob": "Default/Default/DailyETL",
  "parameters": { "asOfDate": "2026-04-30" }
}

# Response: { "runId": 91240, "status": "running" }

# Poll for completion
GET /intouch/oneshot/status?sessionId=$T&runId=91240

# Or run a single task without a job wrapper
POST /intouch/oneshot/run-task?sessionId=$T
Content-Type: application/json

{
  "taskType": "sql",
  "credentialName": "warehouse",
  "json": { "command": "SELECT count(*) FROM orders" }
}

Install a YAML Tool from Source

POST /intouch/intouch-tool/install?sessionId=$T
Content-Type: application/json

{
  "name": "disk-space-check",
  "yamlContent": "name: disk-space-check\\ninputs: ...",
  "reload": true
}

# Hot-reload a single tool without server restart
POST /intouch/intouch-tool/reload/disk-space-check?sessionId=$T

Install a Skill from a SKILL.md

POST /intouch/skill/install?sessionId=$T
Content-Type: application/json

{
  "name": "weekly-summary",
  "markdown": "---\\nname: weekly-summary\\n---\\n..."
}

# Then invoke from any messaging channel: @weekly-summary

Performance

Micronaut Advantages

Compile-time dependency injection eliminates reflection overhead. Sub-second startup, minimal memory footprint, reactive non-blocking I/O.

Optimization Recommendations

Use batch operations for bulk changes, implement connection pooling, cache session IDs, use pagination for large result sets, prefer specific queries over broad searches.

Getting Started

API Access Points

API Base URL: http://[server]:[port]/intouch/
Swagger UI: http://[server]:[port]/swagger-ui

Quick Start Checklist

Setup

  1. Obtain InTouch server URL and port
  2. Get publisher credentials from admin
  3. Open Swagger UI to explore endpoints
  4. Test authentication with POST /access/login

Develop

  1. Download OpenAPI spec for code generation
  2. Import Postman collections for testing
  3. Implement authentication flow
  4. Build integration with your target platform

Development Tools

Postman

Pre-built collections for all API domains

Swagger Codegen

Auto-generate client libraries

curl

Command-line API testing

OpenAPI Generator

Enterprise client SDK generation

Best Practices

Security

  • Use HTTPS in production
  • Implement session timeout handling
  • Follow least-privilege principle
  • Rotate credentials regularly
  • Log all API access for audit
  • Validate all input parameters

Error Handling

  • Check HTTP status codes on every response
  • Handle 401 with automatic re-authentication
  • Implement exponential backoff for retries
  • Log error responses for debugging
  • Handle 207 multi-status for batch ops

Performance

  • Reuse sessions across requests
  • Use batch operations for bulk changes
  • Implement pagination for large datasets
  • Cache frequently accessed resources
  • Use specific queries over broad searches

Support Resources

Swagger UI

Interactive API documentation and testing

OpenAPI Spec

Download the full specification for code generation

Technical Support

[email protected]

Documentation

www.blueisle.com

Start Building with the InTouch API

Standard REST. OpenAPI 3.0. Swagger UI. Everything you need to integrate.

Contact Technical Support View Business Overview