Code Examples

Ready-to-use examples in popular languages.

python
import requests


class KashewAPI:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = "https:">//kashew.ai/api/v1"
        self.headers = {"Authorization": f"Bearer {api_key}"}

    def list_leads(self, page=1, page_size=20, search=None):
        """List leads with optional search"""
        params = {"page": page, "pageSize": page_size}
        if search:
            params["search"] = search
        response = requests.get(
            f"{self.base_url}/leads",
            params=params,
            headers=self.headers,
        )
        response.raise_for_status()
        return response.json()

    def create_lead(self, name, company, email, **kwargs):
        """Create a new lead"""
        data = {
            "personName": name,
            "companyName": company,
            "email": email,
            **kwargs,
        }
        response = requests.post(
            f"{self.base_url}/leads",
            json=data,
            headers=self.headers,
        )
        response.raise_for_status()
        return response.json()

    def enrich_lead(self, lead_id):
        """Trigger AI enrichment for a lead"""
        response = requests.post(
            f"{self.base_url}/lead-enrichment",
            json={"lead_id": lead_id},
            headers=self.headers,
        )
        response.raise_for_status()
        return response.json()

    def list_accounts(self, status="Active"):
        """List accounts filtered by status"""
        response = requests.get(
            f"{self.base_url}/accounts",
            params={"status": status},
            headers=self.headers,
        )
        response.raise_for_status()
        return response.json()

    def create_opportunity(self, name, account_id, value, stage="proposal"):
        """Create a new opportunity"""
        response = requests.post(
            f"{self.base_url}/opportunities",
            json={
                "name": name,
                "accountId": account_id,
                "value": value,
                "currency": "USD",
                "stage": stage,
            },
            headers=self.headers,
        )
        response.raise_for_status()
        return response.json()


"color:#6c7086;font-style:italic"># Usage
api = KashewAPI("kshw_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

"color:#6c7086;font-style:italic"># List leads
leads = api.list_leads(search="acme")
print(f"Found {leads['totalCount']} leads")

"color:#6c7086;font-style:italic"># Create a lead
new_lead = api.create_lead(
    name="Jane Smith",
    company="Acme Corp",
    email="jane@acme.com",
    industry="SaaS / Software",
)
print(f"Created: {new_lead['id']}")

"color:#6c7086;font-style:italic"># Enrich with AI
insights = api.enrich_lead(new_lead["id"])
print(f"Score: {insights['data']['leadScore']}")

"color:#6c7086;font-style:italic"># Create opportunity
opp = api.create_opportunity(
    name="Acme Corp — Enterprise Deal",
    account_id="543d15e7-...",
    value=50000,
)
print(f"Opportunity: {opp['id']}")