Metadata-Version: 2.4
Name: runtimecrm
Version: 1.0.0
Summary: Official Python SDK for the RuntimeCRM API — AI-native CRM + Sales Engagement
Home-page: https://github.com/runtimeai/runtimecrm-python
Author: RuntimeAI, Inc.
Author-email: hello@runtimecrm.com
License: MIT
Project-URL: Homepage, https://runtimecrm.com
Project-URL: Documentation, https://docs.runtimecrm.com/sdks/python
Project-URL: Repository, https://github.com/runtimeai/runtimecrm-python
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.31.0
Dynamic: author
Dynamic: author-email
Dynamic: home-page
Dynamic: requires-python

# runtimecrm-python

Official Python SDK for the [RuntimeCRM](https://runtimecrm.com) API.

## Installation

```bash
pip install runtimecrm
```

## Quick start

```python
from runtimecrm import RuntimeCRMClient

client = RuntimeCRMClient("https://api.runtimecrm.com", "rcrm_key_your_api_key")

# Create a contact
contact = client.create_contact(
    email="alice@acme.com",
    name="Alice Johnson",
    title="VP of Engineering",
)
print("Created contact:", contact["id"])

# Enroll into a sequence
client.enroll_contacts("seq_abc123", [contact["id"]])

# Run prospect discovery and wait for it
job = client.run_prospect_discovery(mode="enrich_contact", contact_id=contact["id"])
result = client.poll_job(job["id"], timeout=120)
print("Discovery status:", result["status"])

# List unactioned signals and enroll them
signals = client.list_signals(actioned=False, limit=20)
for signal in signals["signals"]:
    print(f"Signal [{signal['type']}]: {signal['summary']}")
    client.action_signal(signal["id"], "enroll")

# Check pipeline
pipeline = client.get_pipeline()
for stage in pipeline["stages"]:
    print(f"{stage['name']}: {stage['deal_count']} deals, ${stage['total_value']:,.0f}")
```

## Authentication

All requests require a `Bearer` API key. Generate keys in the RuntimeCRM console at `app.runtimecrm.com`.

## Error handling

HTTP 4xx/5xx responses raise `requests.HTTPError`. Inspect `exc.response.status_code` and `exc.response.json()` for details.
