Developer Documentation

Build integrations
that actually work.

The IntegrationOS API lets you create, manage, and monitor data flows between any systems. RESTful, predictable, and built for production.

Five-minute quickstart
1
Install the SDK
pip install integration-platform
2
Authenticate
client = IntegrationPlatform(api_key="ip_live_...")
3
Create your first integration
flow = client.flows.create(source="sftp", target="salesforce")
4
Send a test message
result = client.sandbox.execute(flow.id, payload)
99.95%
Uptime SLA
<50ms
API P95 Latency
11
Connector Types
3
Official SDKs
v4.0
Latest Version
01

Quick Start

This guide gets you from zero to a running integration in under 5 minutes. You'll authenticate, create a connector, define a transformation, and execute your first flow.

Prerequisites
An API key (get one from the Dashboard). Python 3.9+, Node.js 18+, or Java 17+.
Python
Node.js
Java
cURL
quick-start.py
from integration_platform import IntegrationPlatform

# 1. Initialise client
client = IntegrationPlatform(
    api_key="ip_live_YOUR_KEY",
    tenant_id="your-tenant"
)

# 2. Create SFTP connector
sftp = client.connectors.create(
    name="SFTP Production",
    type="SFTP",
    config={
        "host": "sftp.empresa.pt",
        "port": 22,
        "remotePath": "/outbound"
    },
    credentials={
        "username": "integrations",
        "password": "***"
    }
)

# 3. Test connector health
health = client.connectors.test(sftp.id)
print(f"Connector: {health.status} ({health.latency_ms}ms)")

# 4. Create transformation
transform = client.transformations.create(
    name="CSV to Salesforce Contact",
    source_schema="csv-contact-v1",
    expression="""
    {
        "FirstName": $substringBefore($.nome_completo, " "),
        "LastName": $substringAfter($.nome_completo, " "),
        "Email": $.email,
        "Phone": $.telefone,
        "IsActive__c": $.ativo
    }
    """
)

# 5. Create integration flow
flow = client.integrations.create(
    name="SFTP → Salesforce Daily Sync",
    environment="DEV",
    source_connector_id=sftp.id,
    target_connector_id="salesforce-prod",
    transformation_id=transform.id,
    error_strategy="RETRY_3_DLQ"
)

# 6. Test in sandbox
result = client.sandbox.execute(
    integration_id=flow.id,
    payload={"nome_completo": "João Silva", "email": "j@ex.pt"}
)

print(f"Result: {result.status} in {result.duration_ms}ms")
print(result.output_payload)
const { IntegrationPlatform } = require('@integration-platform/sdk');

// 1. Initialise client
const client = new IntegrationPlatform({
  apiKey: 'ip_live_YOUR_KEY',
  tenantId: 'your-tenant'
});

async function main() {
  // 2. Create SFTP connector
  const sftp = await client.connectors.create({
    name: 'SFTP Production',
    type: 'SFTP',
    config: { host: 'sftp.empresa.pt', port: 22 },
    credentials: { username: 'integrations', password: '***' }
  });

  // 3. Create integration flow
  const flow = await client.integrations.create({
    name: 'SFTP → Salesforce Daily Sync',
    environment: 'DEV',
    sourceConnectorId: sftp.id,
    targetConnectorId: 'salesforce-prod',
    expression: `{
      "FirstName": $substringBefore($.nome_completo, " "),
      "Email": $.email
    }`
  });

  // 4. Test in sandbox
  const result = await client.sandbox.execute({
    integrationId: flow.id,
    payload: { nome_completo: 'João Silva', email: 'j@ex.pt' }
  });

  console.log(`Result: ${result.status} in ${result.durationMs}ms`);
}

main();
import com.integrationplatform.sdk.*;

public class QuickStart {
    public static void main(String[] args) {
        // 1. Initialise client
        IntegrationPlatformClient client = IntegrationPlatformClient
            .builder()
            .apiKey("ip_live_YOUR_KEY")
            .tenantId("your-tenant")
            .build();

        // 2. Create connector
        ConnectorDefinition sftp = client.connectors()
            .create(CreateConnectorRequest.builder()
                .name("SFTP Production")
                .type(ConnectorType.SFTP)
                .config(Map.of("host", "sftp.empresa.pt"))
                .build());

        // 3. Create & deploy integration
        Integration flow = client.integrations()
            .create(CreateIntegrationRequest.builder()
                .name("SFTP → Salesforce")
                .sourceConnectorId(sftp.getId())
                .targetConnectorId("salesforce-prod")
                .build());

        // 4. Run sandbox test
        SandboxResult result = client.sandbox()
            .execute(flow.getId(),
                Map.of("email", "test@ex.pt"));

        System.out.println("Status: " + result.getStatus());
    }
}
# 1. Create a connector
curl -X POST https://api.integration-platform.io/v1/connectors \
  -H "X-API-Key: ip_live_YOUR_KEY" \
  -H "X-Tenant-Id: your-tenant" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "SFTP Production",
    "type": "SFTP",
    "config": {
      "host": "sftp.empresa.pt",
      "port": 22,
      "remotePath": "/outbound"
    },
    "credentials": {
      "username": "integrations",
      "password": "***"
    }
  }'

# 2. Test connector
curl -X POST https://api.integration-platform.io/v1/connectors/CONNECTOR_ID/test \
  -H "X-API-Key: ip_live_YOUR_KEY" \
  -H "X-Tenant-Id: your-tenant"

# 3. Execute in sandbox
curl -X POST https://api.integration-platform.io/v1/sandbox/execute \
  -H "X-API-Key: ip_live_YOUR_KEY" \
  -H "X-Tenant-Id: your-tenant" \
  -H "Content-Type: application/json" \
  -d '{
    "integrationId": "INTEGRATION_ID",
    "payload": {"email": "test@exemplo.pt"}
  }'
02

API Reference

03

Official SDKs

Py
Python SDK
v4.0.1 · PyPI
pip install integration-platform
  • Async/await support (asyncio)
  • Automatic retry with backoff
  • Typed responses (dataclasses)
  • Streaming support for large payloads
JS
Node.js SDK
v4.0.2 · npm
npm i @integration-platform/sdk
  • TypeScript-first, full types
  • ESM + CommonJS bundles
  • Webhook signature verification
  • Node 18+ / Browser compatible
Jv
Java SDK
v4.0.0 · Maven Central
com.integration-platform:sdk:4.0.0
  • Builder pattern API
  • Spring Boot auto-configuration
  • CompletableFuture async support
  • Jackson + Gson serialization
04

Rate Limits & Plans

Plan Messages / Month API Req / Min Connectors Retention SLA
Free 10,000 60 3 7 days Best effort
Pro 500,000 300 20 30 days 99.9%
Enterprise Unlimited Custom Unlimited Custom 99.95%
Rate limit headers returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
05

Changelog

v4.0
Feb 2026
NEWNEWNEW
  • Admin UI: flow editor, field mapper, sandbox, template gallery
  • Observability: OpenTelemetry tracing, DLQ management, alert engine
  • Python, Node.js, Java SDKs released
  • Developer portal and OpenAPI spec
v3.0
Nov 2025
NEW
  • 9 production connectors: SFTP, JDBC (4 DBs), Kafka, Salesforce, SMTP
  • AES-256-GCM credential encryption at rest
  • HikariCP connection pooling for JDBC
v2.0
Sep 2025
NEW
  • JSONata transformation engine with real-time preview
  • JSON Schema + XSD validation
  • Dynamic lookup tables (static, HTTP, DB)
v1.0
Jun 2025
NEW
  • Multi-tenancy, JWT/API Key authentication
  • DEV/QA/PROD environment promotion pipeline
  • Rate limiting and quota management