Install
openclaw skills install makexIntegrate and execute actions from third-party services via MakeX using OpenClaw API with organization-level authentication and unified endpoints.
openclaw skills install makexOpenClaw is a skill-based integration system that allows apps built on MakeX to discover and execute actions from third-party services (Gmail, Slack, GitHub, etc.) via Composio.
All endpoints require the X-Org-Token header containing an organization service token. This token is validated against the organization database. User session cookies are not used — these endpoints are designed for server-to-server communication.
X-Org-Token: <org-service-token>
Don't have an org token?
X-Org-Token.POST /api/openclaw/integrations/<endpoint>
All endpoints support CORS via a preflight OPTIONS handler.
POST /api/openclaw/integrations/search-actions
Discover available actions/tools across one or more integrations.
Request Body:
{
"integrations": ["gmail", "slack", "github"],
"toolkit": "gmail",
"search": "send"
}
integrations (required): Array of integration slugs to search across.toolkit (optional): If provided, overrides integrations and searches only this toolkit.search (optional): Filter actions by keyword.Response (200):
{
"total": 12,
"actions": {
"gmail": [
{ "slug": "GMAIL_SEND_EMAIL", "name": "Send Email" },
{ "slug": "GMAIL_CREATE_DRAFT", "name": "Create Draft" }
],
"slack": [
{ "slug": "SLACK_SEND_MESSAGE", "name": "Send Message" }
]
}
}
POST /api/openclaw/integrations/connected-account
Check if a specific integration is connected for the organization and retrieve account details.
Request Body:
{
"integration": "gmail"
}
integration (required): The integration slug to check.Response (200):
{
"accountId": "conn_abc123",
"userId": "org_xyz",
"integration": "gmail",
"status": "ACTIVE"
}
Response (404) — not connected:
{
"error": "No active connected account found for integration gmail",
"availableIntegrations": ["slack", "github"]
}
POST /api/openclaw/integrations/action-details
Get the full specification of a specific action, including its input and output parameters.
Request Body:
{
"action_slug": "GMAIL_SEND_EMAIL"
}
action_slug (required): The slug of the action to retrieve.Response (200):
{
"name": "Send Email",
"slug": "GMAIL_SEND_EMAIL",
"description": "Send an email via Gmail",
"inputParameters": {
"to": { "type": "string", "description": "Recipient email", "required": true },
"subject": { "type": "string", "description": "Email subject" },
"body": { "type": "string", "description": "Email body" }
},
"outputParameters": {
"messageId": { "type": "string" },
"threadId": { "type": "string" }
}
}
POST /api/openclaw/integrations/run-action
Execute a specific action on a connected account.
Request Body:
{
"toolName": "GMAIL_SEND_EMAIL",
"accountId": "conn_abc123",
"arguments": {
"to": "user@example.com",
"subject": "Hello",
"body": "Hi there"
}
}
toolName (required): The action slug to execute.accountId (required): The connected account ID (from the connected-account endpoint).arguments (optional): Structured key-value arguments for the action.text (optional): Natural language text input (used if arguments is not provided).version (optional): API version override.custom_auth_params (optional): Custom authentication parameters.custom_connection_data (optional): Custom connection data.allow_tracing (optional): Enable tracing for the execution.Response (200): The raw Composio execution response (varies by action).
POST /api/openclaw/integrations/output-structure
Execute an action and return its output structure. Useful for determining the shape of an action's response.
Request Body:
{
"action_slug": "GMAIL_SEND_EMAIL",
"accountId": "conn_abc123",
"arguments": {
"to": "test@example.com",
"subject": "Test",
"body": "Test body"
}
}
action_slug (required): The action slug to execute.accountId (required): The connected account ID.arguments (optional): Arguments to pass to the action.Response (200):
{
"successful": true,
"data": { ... }
}
All endpoints return errors in a consistent format:
{ "error": "Description of what went wrong" }
| Status | Meaning |
|---|---|
| 400 | Missing required parameters |
| 401 | Missing or invalid X-Org-Token |
| 404 | Resource not found (e.g., no connected account) |
| 500 | Server error or missing COMPOSIO_API_KEY |
accountId for a specific integration.