Knowledge CenterAPI References

Dalil API Reference

Full programmatic access to your Dalil workspace create, read, update, delete, and search any CRM record. Base URL: https://app.usedalil.ai

Quick Start

1

Get your API key

Go to Settings → API Keys in your Dalil workspace and generate a key. Store it securely; it won't be shown again.
2

Make your first request

Add Authorization: Bearer YOUR_API_KEY to every request.

curl -G "https://app.usedalil.ai/rest/people" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "limit=5"
3

Explore the endpoints

Browse the resources in the sidebar. Every resource supports create, get, list, update, delete, and search.

Two Interfaces

Dalil exposes two interfaces:

InterfacePathPurpose
REST API/rest/...All CRUD create, read, update, delete, list
GraphQL/graphqlFull-text search only (returns record IDs)
💡 Full-text search goes through GraphQL but only returns IDs. Fetch full records via REST. See the search pattern below.
# Step 1 GraphQL search → returns IDs only
curl -X POST "https://app.usedalil.ai/graphql" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query Search($searchInput: String!) { search(searchInput: $searchInput, includedObjectNameSingulars: [\"person\"], limit: 5) { edges { node { recordId label } } } }",
    "variables": {"searchInput": "John Smith"}
  }'

# Step 2 fetch full records using the returned IDs
curl -G "https://app.usedalil.ai/rest/people" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "filter=id[in]:[id1,id2]"

Key Conventions

ConventionRule
Currency amountsIn micros multiply by 1,000,000 (e.g. $50 → 50000000)
SELECT / MULTI_SELECTValues must be UPPER_SNAKE_CASE
Link fields{ primaryLinkUrl, primaryLinkLabel, secondaryLinks: [] }
Person nameNested: { firstName, lastName } not flat fields
Note / Task bodyUse bodyV2 with { markdown, blocknote }
Filter parametersAlways URL-encode they contain [ ] : characters

HTTP Status Codes

StatusMeaningCommon Cause
200OKRequest succeeded
201CreatedResource created successfully
401UnauthorizedMissing or invalid API key
403ForbiddenKey lacks permission for this resource
404Not FoundRecord ID does not exist
429Too Many RequestsRate limit exceeded back off and retry
500Internal Server ErrorUnexpected server-side failure