Unclassified

IntegrateWise Platform API โ€” Full Reference

๐Ÿš€ Platform URLs

Production Gateway: https://gateway.integratewise.ai

Test Gateway: https://gateway.test.integratewise.ai

Set the Gateway origin per environment. Clients must never call a worker or
platform service directly; every request enters through the Gateway.

Base Path: /api/v1


๐Ÿ” Authentication

All authenticated endpoints require:

Authorization: Bearer YOUR_INTEGRATEWISE_API_TOKEN
x-tenant-id: YOUR_INTEGRATEWISE_TENANT_ID
x-user-id: your-user-id           # optional
x-user-role: owner|admin|manager|member|viewer  # optional

Auth Endpoints (Clerk)

EndpointURL
Sign Inhttps://accounts.integratewise.ai/sign-in
Sign Uphttps://accounts.integratewise.ai/sign-up
OAuth Authorizehttps://integratewise.ai/clerk/oauth/authorize
OAuth Tokenhttps://integratewise.ai/clerk/oauth/token
User Infohttps://integratewise.ai/clerk/oauth/userinfo
Token Infohttps://integratewise.ai/clerk/oauth/token_info
OpenID Confighttps://integratewise.ai/clerk/.well-known/openid-configuration
Organizationhttps://accounts.integratewise.ai/organization
Create Orghttps://accounts.integratewise.ai/create-organization
OAuth Consenthttps://accounts.integratewise.ai/oauth-consent

Get Token

# 1. Sign in via Clerk
open "https://accounts.integratewise.ai/sign-in"

# 2. After login, get token from OAuth flow
export INTEGRATEWISE_API_TOKEN="eyJhbGci..."
export INTEGRATEWISE_TENANT_ID="tenant_abc123"

๐Ÿ“‹ All Endpoints by Category

Health & Status (No Auth Required)

MethodEndpointDescriptionResponse
GET/healthGateway health check{"status":"ok","service":"gateway","ts":1784601533721}
GET/health/readyFull readiness probe (all services){"status":"ready","services":[...]}

Platform Discovery (No Auth Required)

These read-only, cacheable endpoints let packages, external frontends, and
integration tooling discover the public contract before a user signs in. They
are safe for cross-origin reads and intentionally exclude worker bindings,
direct service addresses, credentials, and tenant connection details.

MethodEndpointDescription
GET/api/v1/platformPlatform API entry point and resource links
GET/api/v1/platform/packagesPublic packages: SDK and canonical Spine schema
GET/api/v1/platform/servicesGateway-visible platform service contracts
GET/api/v1/platform/endpointsStable endpoint catalogue, authentication, and governance requirements
GET/api/v1/platform/openapi.jsonOpenAPI 3.1 description of the Gateway contract
curl https://gateway.integratewise.ai/api/v1/platform/packages

# โ†’ {"version":"integratewise-platform-catalog.v1","packages":[...]}

The service catalogue describes how to consume a service, not how to bypass the
Gateway. In particular, capability plans remain immutable until an explicit
approval, and no catalogue response contains a direct execution route.


Workspace & Projection

MethodEndpointDescriptionResponse
GET/api/v1/workspace/projection/:departmentFull department workbenchSharedWorkbench
GET/api/v1/workspace/entities?type=:type&limit=:nEntities filtered by type{"entities":[...],"provenance":{}}
GET/api/v1/workspace/readinessDepartment readiness scores{"overall_score":0.85,"buckets":[...]}
GET/api/v1/workspace/metadataWorkspace metadata{"domains":[...],"connectors":[...]}
GET/api/v1/pipeline/entitiesDashboard entities (limited){"entities":[...],"provenance":{}}

Department Codes: SALES, CUSTOMER_SUCCESS, MARKETING, PRODUCT_ENGINEERING, FINANCE, SERVICE, PROCUREMENT, BIZOPS, PERSONAL, REVOPS

Entity Types: account, person, deal, task, signal, event, document, campaign, invoice, ticket, project, incident, vendor, contract, engagement, note

Example Request:

curl -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
     -H "x-tenant-id: $INTEGRATEWISE_TENANT_ID" \
     "https://gateway.dev.integratewise.ai/api/v1/workspace/projection/SALES"

Example Response:

{
  "workspace_id": "ws_123",
  "tenant_id": "tenant_456",
  "department": "SALES",
  "domain": "SALES",
  "entities": {
    "account": [
      {
        "id": "acc_001",
        "entity_type": "account",
        "name": "Acme Corp",
        "status": "active",
        "metadata": {"industry": "Technology", "ARR": 120000},
        "source_tool": "salesforce",
        "created_at": "2026-07-01T10:00:00Z",
        "updated_at": "2026-07-21T14:30:00Z"
      }
    ],
    "person": [...],
    "deal": [...],
    "task": [...]
  },
  "relationships": [
    {"source": "acc_001", "target": "per_001", "type": "has_contact"}
  ],
  "signals": [
    {"id": "sig_001", "severity": "info", "title": "New deal created", "timestamp": "2026-07-21T10:30:00Z"}
  ],
  "capabilities": [
    {"name": "salesforce:read-accounts", "status": "active"}
  ],
  "governance": [
    {"id": "gov_001", "decision": "approved", "capability": "salesforce:write-opportunities"}
  ],
  "readiness": {
    "overall_score": 0.85,
    "overall_state": "live",
    "buckets": [
      {"capability": "accounts", "state": "live", "score": 0.9, "coverage": 0.95}
    ]
  },
  "provenance": {
    "source": "spine",
    "confidence": 0.95,
    "last_sync": "2026-07-21T10:30:00Z"
  },
  "composed_at": "2026-07-21T10:30:00Z",
  "composed_by": "projection-engine",
  "projection_version": "1.0.0"
}

Connectors

Connectors are tenant-level assets. Once connected, all apps share the same connection.

                    Tenant

                       โ”‚

               Connector Registry

                       โ”‚

      Salesforce (Connected)
      Slack (Connected)
      Gmail (Connected)
      GitHub (Connected)

           โ”‚           โ”‚          โ”‚

     Customer Zero   Marketplace   Admin
           โ”‚           โ”‚          โ”‚
           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                 Same Connections

Connector ownership:

Tenant
    โ”œโ”€โ”€ Connector
    โ”‚     id
    โ”‚     provider
    โ”‚     auth
    โ”‚     scopes
    โ”‚     status
    โ”‚     owner
    โ”‚     permissions

What's shared at tenant level:

  • OAuth tokens
  • Refresh tokens
  • Webhooks
  • Sync cursors
  • Provider schemas
  • Field mappings
  • Connector configuration

What's frontend-specific:

  • UI preferences (layout, recent views, local state)
MethodEndpointDescriptionResponse
GET/api/v1/workspace/connectorsList installed connectors{"connectors":[...]}
GET/api/v1/workspace/connectors/catalogFull connector catalog (100+){"connectors":[...],"domain":"SALES","total":45}
POST/api/v1/workspace/connectors/nango-sessionCreate sync session{"session_id":"...","status":"active"}
POST/api/v1/workspace/connectors/:id/disconnectDisconnect connector{"success":true}
POST/api/v1/workspace/register-connectorRegister new connector{"success":true,"connector_id":"..."}

Flow Types:

  • A โ€” OAuth (Nango-managed)
  • B โ€” API Key
  • C โ€” AI Provider

Example Request โ€” Register Connector:

curl -X POST \
  -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
  -H "x-tenant-id: $INTEGRATEWISE_TENANT_ID" \
  -H "Content-Type: application/json" \
  -d '{"provider":"salesforce","flowType":"A"}' \
  "https://gateway.dev.integratewise.ai/api/v1/workspace/register-connector"

Example Response โ€” Catalog:

{
  "connectors": [
    {
      "id": "salesforce",
      "name": "Salesforce",
      "category": "crm",
      "flowType": "A",
      "connectionMethod": "nango",
      "status": "available",
      "capabilities": {
        "auth": true,
        "webhook": true,
        "mcp": ["mcp:tools", "mcp:resources"]
      },
      "departments": ["SALES", "CUSTOMER_SUCCESS"],
      "industries": ["technology", "saas"],
      "mcpTools": ["sf_accounts", "sf_contacts", "sf_opportunities"],
      "supportedEntities": ["account", "person", "deal"],
      "authType": "oauth"
    },
    {
      "id": "hubspot",
      "name": "HubSpot",
      "category": "crm",
      "flowType": "A",
      "connectionMethod": "nango",
      "status": "available",
      "capabilities": {"auth": true, "webhook": true, "mcp": []},
      "departments": ["SALES", "MARKETING"],
      "industries": ["technology", "saas", "ecommerce"],
      "mcpTools": [],
      "supportedEntities": ["account", "person", "deal"],
      "authType": "oauth"
    }
  ],
  "domain": "SALES",
  "total": 45,
  "catalogSize": 100,
  "source": "integratewise-connectors",
  "accelerators": [...]
}

Integrations

MethodEndpointDescriptionRequest BodyResponse
GET/api/v1/integrationsList connected integrations-[{id, provider, status, ...}]
GET/api/v1/integrations/:providerConnection status-{id, provider, status, last_sync, ...}
POST/api/v1/integrations/:provider/authorizeStart OAuth flow-{auth_url, state}
DELETE/api/v1/integrations/:providerDisconnect integration-{success: true}
GET/api/v1/integrations/callbackOAuth callback (public)-Redirect to app

Example Request โ€” Start OAuth:

curl -X POST \
  -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
  -H "x-tenant-id: $INTEGRATEWISE_TENANT_ID" \
  "https://gateway.dev.integratewise.ai/api/v1/integrations/salesforce/authorize"

Example Response:

{
  "auth_url": "https://connect.nango.dev/oauth/authorize?...",
  "state": "iw_state_abc123"
}

Example Response โ€” List Integrations:

[
  {
    "id": "conn_abc123",
    "provider": "salesforce",
    "status": "active",
    "last_sync": "2026-07-21T10:30:00Z",
    "entities_synced": 1250,
    "health": "healthy"
  },
  {
    "id": "conn_def456",
    "provider": "hubspot",
    "status": "active",
    "last_sync": "2026-07-21T10:25:00Z",
    "entities_synced": 890,
    "health": "healthy"
  }
]

Capabilities

MethodEndpointDescriptionRequest BodyResponse
POST/api/v1/workbench/capabilities/resolveResolve the server-owned, active capability manifest-{activeContext, capabilities}
POST/api/v1/workbench/capabilities/:id/invokePrepare an immutable capability plan{input}{status:"pending_approval", plan}
POST/api/v1/workbench/capability-plans/:id/approveExplicitly approve and execute the reviewed plan{confirmation:"approve"}{status:"executed", planId, result}
GET/api/v1/workbench/connected-ecosystemRead active governed capabilities and connection evidence-{routes, integrations, activeWorkContext}

The Gateway derives identity and tenant scope from the authenticated session.
The caller cannot provide a provider URL, connection ID, or direct execute
instruction.

Example Request โ€” Prepare a Capability Plan:

curl -X POST \
  -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"input":{"channel":"#revenue","text":"Renewal review is ready."}}' \
  "https://gateway.test.integratewise.ai/api/v1/workbench/capabilities/slack.message.send/invoke"

Example Response:

{
  "status": "pending_approval",
  "plan": {
    "id": "wcp_123",
    "capabilityId": "slack.message.send",
    "provider": "slack",
    "risk": "medium",
    "review": { "channel": "#revenue", "text": "Renewal review is ready." }
  }
}

Cognitive & Intelligence

MethodEndpointDescriptionRequest BodyResponse
POST/api/v1/brainstormAI brainstorm session{query, context}{insights:[...]}
POST/api/v1/cognitive/twinTwin reasoning{query, context}{response, reasoning}
GET/api/v1/cognitive/insightsGet insights-{insights:[...]}

Twin & Proposals

MethodEndpointDescriptionRequest BodyResponse
POST/api/v1/twin/handoffTwin handoff to human{proposal, context}{handoff_id, status}
POST/api/v1/twin/handoff/:id/approveApprove twin action{reason}{success, decision}
POST/api/v1/twin/handoff/:id/rejectReject twin action{reason}{success, decision}

MCP (Model Context Protocol)

MethodEndpointDescriptionResponse
GET/toolsList available tools{tools:[...]}
POST/tools/invokeInvoke a tool{result}
GET/mcpMCP server info{name, version, tools}
GET/sessionsActive sessions{sessions:[...]}
GET/config/mcp-serverMCP server config{config}
GET/v1/mcp/*MCP endpoints-

Continuity Bridge

MethodEndpointDescription
*/api/v1/continuity-bridge/*Continuity state management

Webhooks (Inbound)

MethodEndpointAuthDescription
POST/webhooks/stripeSignatureStripe webhooks
POST/webhooks/razorpaySignatureRazorpay webhooks
POST/webhooks/hubspotSignatureHubSpot webhooks
POST/webhooks/slackSignatureSlack events
POST/webhooks/githubSignatureGitHub webhooks
POST/webhooks/billingSignatureGeneric billing webhooks

Webhook Event Types:

  • contact.created, contact.updated
  • deal.created, deal.updated
  • sync.completed
  • ai.insight.generated
  • billing.subscription.changed, billing.payment.failed

Public (No Auth)

MethodEndpointDescriptionRequest BodyResponse
POST/api/v1/public/contactContact form submission{name, email, message}{success: true}
POST/api/v1/public/newsletterNewsletter signup{email}{success: true}

Metrics

MethodEndpointAuthDescriptionResponse
GET/metrics/signalsYesSignal metrics and pipeline latency{recent_signals, hitl_pending, pipeline_latency}

๐Ÿ“Š Entity Shapes

SpineEntity

{
  "id": "string",
  "entity_type": "account|person|deal|task|signal|event|document|campaign|invoice|ticket|project|incident|vendor|contract|engagement|note",
  "name": "string",
  "status": "string",
  "metadata": {},
  "source_tool": "string",
  "source_id": "string",
  "tenant_id": "string",
  "created_at": "ISO8601",
  "updated_at": "ISO8601",
  "provenance": {
    "source_tool_id": "string",
    "source_tool_name": "string",
    "raw_id": "string",
    "synced_at": "ISO8601",
    "confidence": 0.95
  }
}

SharedWorkbench

{
  "workspace_id": "string",
  "tenant_id": "string",
  "department": "string",
  "domain": "string",
  "user": {
    "id": "string",
    "name": "string",
    "role": "string"
  },
  "entities": {
    "account": [SpineEntity],
    "person": [SpineEntity],
    "deal": [SpineEntity],
    "task": [SpineEntity],
    "signal": [SpineEntity],
    "event": [SpineEntity],
    "document": [SpineEntity]
  },
  "relationships": [
    {
      "source": "string",
      "target": "string",
      "type": "string",
      "metadata": {}
    }
  ],
  "timeline": [
    {
      "id": "string",
      "type": "string",
      "title": "string",
      "timestamp": "ISO8601"
    }
  ],
  "memory": [
    {
      "id": "string",
      "type": "string",
      "content": {},
      "tags": ["string"]
    }
  ],
  "knowledge": {
    "topic_summaries": [],
    "learnings": [],
    "conversations": []
  },
  "signals": [
    {
      "id": "string",
      "severity": "info|warning|critical",
      "title": "string",
      "timestamp": "ISO8601"
    }
  ],
  "capabilities": [
    {
      "name": "string",
      "status": "active|inactive|error",
      "last_sync": "ISO8601"
    }
  ],
  "governance": [
    {
      "id": "string",
      "decision": "approved|rejected|pending",
      "capability": "string"
    }
  ],
  "readiness": {
    "overall_score": 0.85,
    "overall_state": "live|seeded|empty",
    "buckets": [
      {
        "capability": "string",
        "state": "live|seeded|empty",
        "score": 0.9,
        "coverage": 0.95
      }
    ]
  },
  "actions": [],
  "twinContext": {},
  "provenance": {
    "source": "spine",
    "confidence": 0.95,
    "last_sync": "ISO8601"
  },
  "composed_at": "ISO8601",
  "composed_by": "projection-engine",
  "projection_version": "1.0.0"
}

Connector

{
  "id": "string",
  "name": "string",
  "category": "crm|marketing|communication|project_management|productivity|analytics|finance|support|ecommerce|ai",
  "flowType": "A|B|C",
  "connectionMethod": "nango|api_wrapper|ai_provider",
  "status": "available|connected|error",
  "capabilities": {
    "auth": true,
    "webhook": true,
    "mcp": ["mcp:tools", "mcp:resources"]
  },
  "departments": ["SALES", "MARKETING"],
  "industries": ["technology", "saas"],
  "mcpTools": ["sf_accounts", "sf_contacts"],
  "supportedEntities": ["account", "person", "deal"],
  "authType": "oauth|api_key|none"
}

Capability

{
  "name": "string",
  "description": "string",
  "min_tier": "free|pro|enterprise",
  "channel": "sync|async|webhook"
}

โฑ๏ธ Rate Limits

CategoryLimitWindow
General API100 requests1 minute
AI/Cognitive10 requests1 minute

Headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1721580060

๐Ÿ”„ Common Patterns

Making a Request

curl -X GET \
  https://gateway.dev.integratewise.ai/api/v1/workspace/projection/SALES \
  -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
  -H "x-tenant-id: $INTEGRATEWISE_TENANT_ID"

With JSON Body

curl -X POST \
  https://gateway.test.integratewise.ai/api/v1/workbench/capabilities/resolve \
  -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
  -H "Content-Type: application/json"

With Query Parameters

curl -X GET \
  "https://gateway.dev.integratewise.ai/api/v1/workspace/entities?type=deal&limit=20" \
  -H "Authorization: Bearer $INTEGRATEWISE_API_TOKEN" \
  -H "x-tenant-id: $INTEGRATEWISE_TENANT_ID"

๐Ÿ“Š Response Format

Success (2xx)

{
  "status": "success",
  "data": {
    /* response data */
  }
}

Error (4xx/5xx)

{
  "error": "Error message",
  "code": "ERROR_CODE",
  "status": 400,
  "details": {
    /* optional details */
  }
}

๐Ÿšจ Error Codes

CodeStatusMeaning
Unauthorized401Missing or invalid JWT
Forbidden403Insufficient permissions
Not Found404Resource not found
Rate Limit Exceeded429Too many requests
Service Unavailable503Downstream service down

๐Ÿ”Œ Connector Categories

CategoryConnectors
CRMSalesforce, HubSpot, Pipedrive, Zoho CRM, Freshsales, Close
MarketingMailchimp, Marketo, SendGrid, Segment, Braze, Customer.io
CommunicationSlack, Discord, Microsoft Teams, Gmail, Outlook, Zoom, Twilio
Project ManagementJira, GitHub, GitLab, Linear, Asana, Bitbucket
ProductivityNotion, Google Sheets, Google Drive, Airtable, Dropbox, OneDrive
AnalyticsMixpanel, Amplitude, Heap, Google Analytics, Tableau, Metabase
FinanceStripe, Razorpay, QuickBooks, Xero, Chargebee, Paddle
SupportZendesk, Freshdesk, Intercom, Help Scout, Kustomer, Front
E-commerceShopify, WooCommerce, BigCommerce
AI/LLMOpenAI, Anthropic, Cohere, Perplexity

๐Ÿ› ๏ธ Integration Sources

SourceDescription
salesforceSalesforce CRM
hubspotHubSpot CRM
slackSlack workspace
githubGitHub repositories
notionNotion databases
jiraJira projects
stripeStripe payments
google-sheetsGoogle Sheets
gmailGmail inbox
quickbooksQuickBooks accounting

๐Ÿ“š SDK

npm install @integratewise/sdk

const platform = createPlatformClient({
  baseUrl: "https://gateway.integratewise.ai",
  getAccessToken: () => getSessionToken(),
});

// No session is needed to discover the public integration contract.
const { packages } = await platform.platform.packages();
const { services } = await platform.platform.services();
const openApi = await platform.platform.openApi();

const manifest = await platform.capability.resolve();

const prepared = await platform.capability.prepare("slack.message.send", {
  channel: "#revenue",
  text: "Renewal review is ready.",
});

// Invoke only after the user reviews the immutable plan.
await platform.capability.approve(prepared.plan.id);

๐ŸŽฏ Get Started

  1. Discover the contract โ€” GET /api/v1/platform or use platform.platform.catalogue().
  2. Get credentials โ€” Sign in via Clerk at https://accounts.integratewise.ai/sign-in.
  3. Set environment variables โ€” INTEGRATEWISE_API_TOKEN and INTEGRATEWISE_TENANT_ID.
  4. Verify access โ€” GET /health.
  5. Explore connectors โ€” GET /api/v1/workspace/connectors/catalog.
  6. Connect a source โ€” POST /api/v1/workspace/register-connector.
  7. Read workbench โ€” GET /api/v1/workspace/projection/SALES.
  8. Resolve โ†’ prepare โ†’ approve โ€” use the governed Workbench capability endpoints above.

Platform Status: Release candidate โ€” test deployment and npm publication are gated by environment validation and registry authentication.
Gateway (test): https://gateway.test.integratewise.ai
Last Updated: July 22, 2026