> ## Documentation Index
> Fetch the complete documentation index at: https://lava.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# DealCloud

> DealCloud (Intapp) API for searching and reading deals, companies, and contacts in a PE/IB firm's DealCloud tenant.

DealCloud (Intapp) API for searching and reading deals, companies, and contacts in a PE/IB firm's DealCloud tenant. Best for agents that need to look up a deal by name, find records matching a filter, or mark a single field changed. Tenants are self-hosted at {firm}.dealcloud.com; users connect by pasting a tenant host plus a client ID and client secret generated in DealCloud (Profile → API Key).

10 example endpoints available through Lava's AI Gateway. See the [DealCloud API docs](https://api.docs.dealcloud.com/) for full documentation.

<Warning>This provider requires your own credentials — connect your API key or OAuth account before use.</Warning>

<Info>This is a **catch-all provider** — any valid URL under `https://api.dealcloud.com` is supported. DealCloud API. URL is tenant-specific: https\://\{firm}.dealcloud.com/api/rest/v4/\{path}. Schema discovery: /schema/entrytypes, /schema/allfields, /schema/users. Entry data: /data/entrydata/\{entryTypeId}/entries (GET), /data/entrydata/\{entryTypeId} (POST create, PUT upsert, DELETE by ID array), /data/entrydata/rows/\{entryTypeId} (PATCH strict update). entryTypeId can be numeric (e.g. 2011) or name (e.g. "company"). Bulk endpoints accept up to 1000 entries per request. See [https://api.docs.dealcloud.com/](https://api.docs.dealcloud.com/) for the full reference. The endpoints below are curated examples.</Info>

## Endpoints

### Search entries by field values — answer questions like "find deals in Sourcing status" or "which companies are tagged SaaS". entryTypeId can be numeric (2011) or a name ("company", "deal").

**POST** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/query/{entryTypeId}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/query/{entryTypeId}', {
      body: {
    "query": "{status: 'Sourcing'}",
    "limit": 50,
    "skip": 0,
    "wrapIntoArrays": true
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2Frows%2Fquery%2F%7BentryTypeId%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query":"{status: '\''Sourcing'\''}","limit":50,"skip":0,"wrapIntoArrays":true}'
    ```
  </Tab>
</Tabs>

### Look up one entry by its entryid. Returns all field values for that record. Use when you already know the entryid from a prior list or search.

**POST** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/query/{entryTypeId}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/query/{entryTypeId}', {
      body: {
    "query": "{entryid: 2553146}",
    "limit": 1,
    "skip": 0,
    "wrapIntoArrays": true
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2Frows%2Fquery%2F%7BentryTypeId%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query":"{entryid: 2553146}","limit":1,"skip":0,"wrapIntoArrays":true}'
    ```
  </Tab>
</Tabs>

### Browse entries in an entry type with full field data, paginated. Use for "show me recent deals" or when no filter is known.

**GET** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/{entryTypeId}?limit=25&skip=0&wrapIntoArrays=true` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/{entryTypeId}?limit=25&skip=0&wrapIntoArrays=true', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2Frows%2F%7BentryTypeId%7D%3Flimit%3D25%26skip%3D0%26wrapIntoArrays%3Dtrue" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List the entry types (Company, Deal, Person, Fund, etc.) defined in the tenant. Call this first to know which entry types you can search.

**GET** `https://<tenant>.dealcloud.com/api/rest/v4/schema/entrytypes` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/schema/entrytypes', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fschema%2Fentrytypes" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List fields across all entry types. Use to learn which field names you can reference in search queries and updates (tenants use custom field names).

**GET** `https://<tenant>.dealcloud.com/api/rest/v4/schema/allfields` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/schema/allfields', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fschema%2Fallfields" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List users in the tenant. Useful for looking up a deal owner or verifying the connection works after initial setup.

**GET** `https://<tenant>.dealcloud.com/api/rest/v4/schema/users?activeOnly=true` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/schema/users?activeOnly=true', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fschema%2Fusers%3FactiveOnly%3Dtrue" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Update one or more fields on a single existing entry — the typical agent write. Body is a JSON array; pass one element to change one record. Example: mark a deal as Diligence, set a company status to Inactive.

**PATCH** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/{entryTypeId}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/{entryTypeId}', { method: 'PATCH', body: [{"entryId":2553146,"Status":"Diligence"}] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X PATCH "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2Frows%2F%7BentryTypeId%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"entryId":2553146,"Status":"Diligence"}]'
    ```
  </Tab>
</Tabs>

### Bulk-create entries (up to 1000 per request). Primarily for data migration, not typical agent actions. entryIds on the body must be negative placeholders.

**POST** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}', { body: [{"entryId":-1,"Name":"New Deal","Status":"Sourcing"}] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2F%7BentryTypeId%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"entryId":-1,"Name":"New Deal","Status":"Sourcing"}]'
    ```
  </Tab>
</Tabs>

### Bulk-upsert entries (up to 1000 per request): existing entryIds update, negative entryIds insert. Primarily for data sync/migration.

**PUT** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}', { method: 'PUT', body: [{"entryId":2553146,"Status":"Closed Won"}] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2F%7BentryTypeId%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"entryId":2553146,"Status":"Closed Won"}]'
    ```
  </Tab>
</Tabs>

### Bulk-delete entries by ID. Body is a JSON array of entryIds. Irreversible — agents should rarely reach for this; prefer updating a status field instead.

**DELETE** `https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}', { method: 'DELETE', body: [2553146] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ctenant%3E.dealcloud.com%2Fapi%2Frest%2Fv4%2Fdata%2Fentrydata%2F%7BentryTypeId%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[2553146]'
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
