Quick Start Guide
Get up and running with the DealCloud Python SDK in 5 minutes.
Prerequisites
- Python 3.13+
- DealCloud API credentials (Client ID and API Key)
- Your DealCloud site URL
🔑
Need API credentials? See Obtaining an API Key for setup instructions.
Install the SDK
Install dealcloud-sdk with pip, uv, poetry, or conda, optional extras, and editable installs—see Installation.
Set Up Credentials
Create a .env file in your project directory:
DC_SDK_SITE_URL=yoursite.dealcloud.com
DC_SDK_CLIENT_ID=12345
DC_SDK_CLIENT_SECRET=your-secret-hereInstall python-dotenv (opens in a new tab) so the script can load those values from .env (pip install python-dotenv).
Create Your First Script
Create a file called quickstart.py:
import os
from dotenv import load_dotenv
from dealcloud_sdk import DealCloud, DealCloudConfig
load_dotenv()
config = DealCloudConfig(
siteUrl=os.environ["DC_SDK_SITE_URL"],
clientId=os.environ["DC_SDK_CLIENT_ID"],
clientSecret=os.environ["DC_SDK_CLIENT_SECRET"],
)
dc = DealCloud.from_config_object(config)
# Test connection by fetching schema
objects = dc.get_objects()
print(f"Found {len(objects)} objects in your site")
# List the first 5 objects
for obj in objects[:5]:
print(f" - {obj.apiName}: {obj.pluralName}")Run It
python quickstart.pyYou should see output like:
Found 42 objects in your site
- Company: Companies
- Contact: Contacts
- Deal: Deals
- Interaction: Interactions
- Fund: FundsCommon Operations
Reading Data
from dealcloud_sdk import DealCloud, DealCloudConfig
config = DealCloudConfig(
siteUrl="yoursite.dealcloud.com",
clientId=12345,
clientSecret="your-secret",
)
dc = DealCloud.from_config_object(config)
# Read as pandas DataFrame
companies = dc.read_data("Company", output="pandas")
# Filter and analyze
active = companies[companies["Status"] == "Active"]
print(f"Active companies: {len(active)}")
# Export to CSV
companies.to_csv("companies.csv", index=False)Writing Data
from dealcloud_sdk import DealCloud, DealCloudConfig
config = DealCloudConfig(
siteUrl="yoursite.dealcloud.com",
clientId=12345,
clientSecret="your-secret",
)
dc = DealCloud.from_config_object(config)
# Create new companies
new_companies = [
{"CompanyName": "Acme Corp", "Industry": 12345},
{"CompanyName": "Beta Inc", "Industry": 12346},
]
result = dc.insert_data("Company", new_companies)
# Result includes assigned EntryIds
for company in result:
print(f"Created: {company['CompanyName']} (ID: {company['EntryId']})")Querying Data
from dealcloud_sdk import DealCloud, DealCloudConfig
config = DealCloudConfig(
siteUrl="yoursite.dealcloud.com",
clientId=12345,
clientSecret="your-secret",
)
dc = DealCloud.from_config_object(config)
# Query with filter
active_tech = dc.read_data(
"Company",
output="pandas",
query="{$and: [{Status: 'Active'}, {Industry: 'Technology'}]}"
)
# Read specific fields only
names = dc.read_data(
"Company",
output="pandas",
fields=["CompanyName", "Industry"]
)
# Read from a configured view
view_data = dc.read_data(view_id="My Company View", output="pandas")Working with References
from dealcloud_sdk import DealCloud, DealCloudConfig, ReferenceFormat
config = DealCloudConfig(
siteUrl="yoursite.dealcloud.com",
clientId=12345,
clientSecret="your-secret",
)
dc = DealCloud.from_config_object(config)
# Get reference as display names (instead of full objects)
contacts = dc.read_data(
"Contact",
output="pandas",
reference_format=ReferenceFormat.NAME
)
# contacts["Company"] now shows "Acme Corp" instead of {id: 123, name: "Acme Corp", ...}What's Next?
- Intapp REST Client — HTTP layer (retries, auth, tracing) used by this SDK
- Authentication Options - JSON, YAML, and advanced config
- Config Files - Full configuration (from_config, from_config_object)
- Data Operations - Full read/write documentation
- Typed Data - Using Pydantic models
- Streaming - Memory-efficient large reads
- Polars Integration - High-performance DataFrame alternative
- Publications API - Event streaming (poll_events, subscribe)
- Merge API - Merge duplicates (merge_entries, find_duplicates)
- API Reference - Full method reference
- Troubleshooting & FAQ - 429, auth, cells, files