Manage companies/organizations in Dalil AI CRM — create, read, update, delete, search, and list company records including name, domain, LinkedIn, address, employee count, and annual revenue.
Dalil AI: Company API Skills
Quick Reference
Base URL:
https://app.usedalil.aiAuth:
Authorization: Bearer {apiKey}Content-Type:
application/json(POST/PATCH requests only)Accept:
application/json(GET requests)Resource path:
/rest/companies
GraphQL search (POST /graphql):
searchInputis a plainString!variable — do NOT pass as an object{query: "...", includedObjectNameSingulars: [...]}(causes type error)limitmust be hardcoded in the query string — do NOT pass as a$limitvariable (causes type error)Returns IDs only — always follow up with REST to fetch full records
Endpoints
Operation | Method | Path | Required Fields |
|---|---|---|---|
Create | POST |
|
|
Get | GET |
|
|
List | GET |
| — |
Update | PATCH |
|
|
Delete | DELETE |
|
|
Search by name | POST |
|
|
Search by LinkedIn | GET |
| LinkedIn URL |
Search by domain | GET |
| domain URL |
Create Company
Request Body
Required Fields
name(string) — Company name
Optional Fields
domainName(LINKS) — Company website{ primaryLinkUrl, primaryLinkLabel, secondaryLinks: [] }linkedinLink(LINKS) — LinkedIn pagexLink(LINKS) — X/Twitter profileintroVideo(LINKS) — Intro video URLindustry(string) — Business sectoremployees(number) — Employee count (min: 1)idealCustomerProfile(boolean) — ICP matchtagline(string) — Company taglinevisaSponsorship(boolean) — Offers visa sponsorshipworkPolicy(string[]) — Values:ON_SITE,HYBRID,REMOTE_WORKannualRecurringRevenue(CURRENCY) —{ amountMicros, currencyCode }address(ADDRESS) — Full address objectaccountOwnerId(UUID) — Account owner
Update Company
Send only fields to update. Same field shapes as create. name is also updatable.
Get Company
List Companies
Delete Company
Search Patterns
By Name (GraphQL + REST)
Step 1 — GraphQL:
POST to https://app.usedalil.ai/graphql
Step 2 — Fetch full records:
By LinkedIn (REST)
By Domain (REST)
Filter Examples
Gotchas
ARR is in micros —
$500,000=500000000000micros. Multiply actual amount by 1,000,000.Link fields need full structure — Domain, LinkedIn, X, and intro video all use
{ primaryLinkUrl, primaryLinkLabel, secondaryLinks: [] }.Work policy values are UPPER_SNAKE_CASE — Use
ON_SITE,HYBRID,REMOTE_WORK.Address is a flat object — All address fields are at the same level (no nesting), prefixed with
address.Domain filter uses nested path — Use
domainName.primaryLinkUrl[ilike]:value.GraphQL search returns IDs only — Follow up with
GET /rest/companies?filter=id[in]:[id1,id2]to fetch full records.Empty fields are auto-cleaned — Null/undefined/empty values are stripped before sending.
GraphQL
limitmust be hardcoded, not a variable — Passing$limit: Intas a variable causes a type error (IntvsInt!). Inline the limit directly in the query string:limit: 5.Use
depth=1for full company fetch, notdepth=2—depth=2returns extremely large payloads (500KB+) by loading all nested relations.depth=1is sufficient to get the company plus its direct relations (account owner, opportunities, people, etc.).URL-encode GET filter params — Filter strings contain special characters (
[,],:) that break manually constructed URLs. Use URL encoding when making requests (e.g.,curl -G --data-urlencode "filter=...").