Skip to main content
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 .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 for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://api.dealcloud.com is supported. DealCloud API. URL is tenant-specific: https://.dealcloud.com/api/rest/v4/. Schema discovery: /schema/entrytypes, /schema/allfields, /schema/users. Entry data: /data/entrydata//entries (GET), /data/entrydata/ (POST create, PUT upsert, DELETE by ID array), /data/entrydata/rows/ (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/ for the full reference. The endpoints below are curated examples.

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
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
},
});

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
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
},
});

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/{entryTypeId}?limit=25&skip=0&wrapIntoArrays=true', { method: 'GET' });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/schema/entrytypes', { method: 'GET' });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/schema/allfields', { method: 'GET' });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/schema/users?activeOnly=true', { method: 'GET' });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/rows/{entryTypeId}', { method: 'PATCH', body: [{"entryId":2553146,"Status":"Diligence"}] });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}', { body: [{"entryId":-1,"Name":"New Deal","Status":"Sourcing"}] });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}', { method: 'PUT', body: [{"entryId":2553146,"Status":"Closed Won"}] });

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
const data = await lava.gateway('https://<tenant>.dealcloud.com/api/rest/v4/data/entrydata/{entryTypeId}', { method: 'DELETE', body: [2553146] });

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests