Skip to main content

lowcoai-integrations

Python client for the integrations-manager product (routes under /v1/integrations/*). Sync and asyncio clients with the same surface, built on httpx. Python 3.10+.

pip install lowcoai-integrations

Quick start

from lowcoai.integrations import IntegrationsClient

with IntegrationsClient("<token-or-api-key>", org_id="org_123") as client:
    apps = client.applications.list({"page": 1, "limit": 20, "tags": "crm,sales"})

    result = client.actions.run(
        "action_123",
        {
            "credentialId": "conn_456",
            "inputBody": {"to": "alice@example.com", "subject": "Hello"},
        },
    )

asyncio

from lowcoai.integrations import AsyncIntegrationsClient

async with AsyncIntegrationsClient("<token-or-api-key>", org_id="org_123") as client:
    connections = await client.connections.list_by_application("app_slack")

AsyncIntegrationsClient has the same resources and methods as IntegrationsClient; each endpoint method is a coroutine. Close it with await client.aclose() if you don't use async with.

Options

Argument Description
token User token or API key, sent as Authorization: Bearer <token>. Required.
org_id Sent as the X-Org-Id header.
timeout Per-request timeout in seconds (default 30). None disables it.
headers Extra headers added to every request. An Authorization or X-Org-Id entry here wins over token / org_id.
http_client Your own httpx.Client / httpx.AsyncClient (proxies, retries, test transports). It is not closed by the SDK.

All requests go to https://api.lowco.ai.

Data shapes

Request and response bodies are plain dicts typed as TypedDicts (Application, ApplicationAction, Connection, ApplicationTrigger, AuthToken, JsonRpcRequest, …) whose keys match the JSON on the wire (camelCase). A value returned by one call can be sent back as the body of another. The service's { success, data, error, message } envelope is unwrapped for you.

Open-ended string unions of the TypeScript SDK (ApplicationType, ApplicationSubType, ConnectionType, ConnectionStatus) are plain str aliases; their docstrings list the known values.

List methods take an optional query mapping — PaginationQuery (page, limit, sortBy, sortOrder, filter, tags as a comma-separated string) or any other keys the endpoint understands. Values are encoded like the TypeScript SDK: None is skipped, booleans become "true" / "false", numbers and strings are sent as-is and anything else as JSON.

Surface

Resource Methods
client.applications list, get_by_id, create, update, delete, patch_tags(id, tags), run, load_actions(id, postman_folder), versions, regenerate_mcp_key, get_mcp_tools, get_sub_applications, get_applications_with_triggers
client.actions list, get_by_id, create(application_id, action), update, delete, list_by_application, run, resolve_credentials(action_ids)
client.connections list, get_by_id, create, update, delete, list_by_application, set_as_default(id, application_id)
client.triggers list_by_application(application_id, query=None), get_by_id, create, update, delete, get_state
client.oauth login(application_id, request), callback, get_token_by_credential_id, refresh_token_by_credential_id, refresh_expiring_tokens
client.configurations get
client.mcp call_published(key, json_rpc_request), info_published(key)

delete methods return None.

OAuth flow

login = client.oauth.login("app_slack", {"applicationId": "app_slack", "name": "Slack — Sales"})
# redirect the user to login["url"] ...

# On the redirect_uri callback:
client.oauth.callback({"state": state, "code": code})

Published MCP endpoint

tools = client.mcp.call_published(mcp_key, {"jsonrpc": "2.0", "id": 1, "method": "tools/list"})

Endpoints the SDK does not wrap

HttpClient / AsyncHttpClient are the transports behind the resources and apply the same headers, envelope unwrapping and error mapping:

from lowcoai.integrations import HttpClient

with HttpClient("<token>", org_id="org_123") as http:
    data = http.request("GET", "/v1/integrations/applications", query={"page": 1})

Errors

Every non-2xx response raises IntegrationsError with the same fields as the TypeScript class:

from lowcoai.integrations import IntegrationsError

try:
    client.actions.run("action_123", {"inputBody": {}})
except IntegrationsError as err:
    print(err.status, err.message, err.payload)
  • message — "Request failed with status <n>".
  • status — the HTTP status; 0 when no response arrived (connection error, timeout — the httpx exception is chained as __cause__).
  • payload — the parsed JSON error body; the raw text when the body is not JSON; None when empty.

A 2xx response whose body is not JSON raises IntegrationsError with that 2xx status and the raw text as payload (delete methods ignore the body).

Metadata

Release files for lowcoai-integrations 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lowcoai-integrations 0.1.0
File Size Uploaded
lowcoai_integrations-0.1.0.tar.gz 19.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lowcoai-integrations 0.1.0
File Interpreter ABI Platform
lowcoai_integrations-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 39.4 kB

Release files / lowcoai_integrations-0.1.0.tar.gz

Download URL lowcoai_integrations-0.1.0.tar.gz
Size 19.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9c01df15be0bd1d6aae8bdce71e5db2c73b56e5eec89a4f3752d32f8061c7e45
BLAKE2b-256 checksum
How to use checksums
5d7fdceee5adcbd44135587fb02b820d1ca0445a480db46fac4c8a404d0ea345
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / lowcoai_integrations-0.1.0-py3-none-any.whl

Download URL lowcoai_integrations-0.1.0-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88f00d0c5a861a1b1f1b8b37e2dadd4733d453b47b50cb5198197c7078e87ed2
BLAKE2b-256 checksum
How to use checksums
66afa4114e62c9768e241f0c0508839aba5e5c2bb91c8b7f4483e12fdca970d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page