API Reference
Add AI-generated data to your leads, contacts, or any list. Import data from your CRM and get enriched results back.
Common Workflows
- Quick start: POST /augment with data + prompt
- Form submission: POST /lists/{list_id}/rows
- CRM sync: POST /lists/{list_id}/rows/upsert
- Export data: GET /lists/{list_id}/rows
Authentication
Include your API key in the X-API-Key header.
https://api.detris.aiWebhooks
Get notified when AI generation completes or data is imported. Configure webhooks in Settings → Webhooks. You can set global webhooks or scope them to specific lists.
curl -X POST https://api.detris.ai/augment \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"data": [{"name": "John", "company": "Acme"}],
"prompt": "Score 1-10: {name} at {company}",
"ai_column": "lead_score",
"list_name": "Leads"
}'/augmentAugment with data
The simplest way to use Detris: send your data and an AI prompt in one call. Creates a list, imports rows, and runs AI generation. Perfect for quick integrations.
Request Body
dataarrayrequiredArray of row objects to import (max 50,000 for Free, 200,000 for Plus)
promptstringrequiredAI prompt with {field} placeholders referencing your data fields
ai_columnstringrequiredColumn name where generated content will be stored
list_namestringrequiredName for the new list that will be created
modelstringAI model: gpt-5.4-mini (default), gpt-5.4, gpt-5.4-nano, gpt-5.3-codex, claude-haiku-4.5
enable_web_searchbooleanEnable web search for each row (adds $0.01/row)
Response
statusstringrequired"started" when generation begins
messagestringrequiredHuman-readable status message
list_idstringrequiredID of the newly created list
list_namestringrequiredName of the created list
rows_importedintegerrequiredNumber of rows imported
curl -X POST https://api.detris.ai/augment \
-H "X-API-Key: sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"data": [
{"name": "John Smith", "company": "Acme Inc"},
{"name": "Jane Doe", "company": "Tech Corp"}
],
"prompt": "Score this lead 1-10: {name} at {company}",
"ai_column": "lead_score",
"list_name": "Q4 Leads"
}'{
"status": "started",
"message": "Created list 'Q4 Leads' with 2 rows. AI generation started.",
"list_id": "new_list_abc123",
"list_name": "Q4 Leads",
"rows_imported": 2
}/lists/{list_id}/augmentAugment existing list
Run AI generation on an existing list. Use this when you already have data in Detris and want to add AI-generated columns.
Path Parameters
list_idstringrequiredThe unique identifier of the list
Request Body
promptstringrequiredAI prompt with {field} placeholders referencing row data
ai_columnstringrequiredColumn name where generated content will be stored
row_idsarraySpecific row IDs to process (defaults to all rows in list)
modelstringAI model: gpt-5.4-mini (default), gpt-5.4, gpt-5.4-nano, gpt-5.3-codex, claude-haiku-4.5
enable_web_searchbooleanEnable web search for each row (adds $0.01/row)
Response
statusstringrequired"started" when generation begins
messagestringrequiredHuman-readable status message
list_idstringrequiredList being processed
ai_columnstringrequiredColumn being populated
rows_queuedintegerrequiredNumber of rows queued for processing
curl -X POST https://api.detris.ai/lists/692397ea61746762ff5d587e/augment \
-H "X-API-Key: sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Score this lead 1-10 based on {name} at {company}",
"ai_column": "lead_score"
}'{
"status": "started",
"message": "AI generation started for 100 rows",
"list_id": "692397ea61746762ff5d587e",
"ai_column": "lead_score",
"rows_queued": 100
}/listsGet all lists
Retrieve all lists in your account. Use this to find the list_id for other operations.
Response
dataarrayrequiredArray of list objects
_idstringrequiredUnique list identifier
namestringrequiredList name
rowCountintegerrequiredNumber of rows in the list
created_atstringrequiredISO 8601 creation timestamp
curl https://api.detris.ai/lists \
-H "X-API-Key: sk_live_your_api_key_here"{
"data": [
{
"_id": "692397ea61746762ff5d587e",
"name": "Enterprise Leads",
"rowCount": 1234,
"created_at": "2025-01-15T10:30:00Z"
}
]
}/lists/{list_id}Get list by ID
Retrieve a specific list by its ID.
Path Parameters
list_idstringrequiredThe unique identifier of the list
Response
_idstringrequiredUnique list identifier
namestringrequiredList name
rowCountintegerrequiredNumber of rows in the list
created_atstringrequiredISO 8601 creation timestamp
curl https://api.detris.ai/lists/692397ea61746762ff5d587e \
-H "X-API-Key: sk_live_your_api_key_here"{
"_id": "692397ea61746762ff5d587e",
"name": "Enterprise Leads",
"rowCount": 1234,
"created_at": "2025-01-15T10:30:00Z"
}/lists/{list_id}/rowsGet rows
Export data from a list. Use pagination for large lists, or updated_since for delta sync with your CRM or database.
Path Parameters
list_idstringrequiredThe unique identifier of the list
Query Parameters
limitintegerMax rows to return (default: 50, max: 1000)
offsetintegerNumber of rows to skip (default: 0)
sort_bystring"row_order" or "updated_at"
updated_sincestringISO 8601 timestamp for delta sync
Response
dataarrayrequiredArray of row objects
_idstringrequiredUnique row identifier
dataobjectrequiredRow field values as key-value pairs
created_atstringrequiredISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp
totalintegerrequiredTotal number of rows in the list
limitintegerrequiredLimit used in the request
offsetintegerrequiredOffset used in the request
curl "https://api.detris.ai/lists/692397ea61746762ff5d587e/rows?limit=100" \
-H "X-API-Key: sk_live_your_api_key_here"{
"data": [
{
"_id": "row_123",
"data": {
"email": "[email protected]",
"firstName": "John",
"company": "Acme Inc"
},
"created_at": "2025-01-15T10:30:00Z"
}
],
"total": 1234,
"limit": 100,
"offset": 0
}/lists/{list_id}/rowsCreate row
Add a single row to a list. Use this when a new form is submitted, a new subscriber signs up, or any real-time data entry from your website.
Path Parameters
list_idstringrequiredThe unique identifier of the list
Request Body
{field_name}anyAny field name and value. All fields are optional and dynamic.
Response
_idstringrequiredUnique row identifier
dataobjectrequiredThe row data you provided
created_atstringrequiredISO 8601 creation timestamp
curl -X POST https://api.detris.ai/lists/692397ea61746762ff5d587e/rows \
-H "X-API-Key: sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"firstName": "John",
"company": "Acme Inc"
}'{
"_id": "row_123",
"data": {
"email": "[email protected]",
"firstName": "John",
"company": "Acme Inc"
},
"created_at": "2025-01-15T10:30:00Z"
}/lists/{list_id}/rows/batchBatch update
Update multiple rows at once. Each update object specifies a row ID and the fields to update.
Path Parameters
list_idstringrequiredThe unique identifier of the list
Request Body
updatesarrayrequiredArray of update objects
_idstringrequiredRow ID to update
updatesobjectrequiredKey-value pairs of fields to update
Response
updatedintegerrequiredNumber of rows successfully updated
failedintegerrequiredNumber of rows that failed to update
totalintegerrequiredTotal rows in the request
errorsarrayArray of error messages for failed updates
curl -X PATCH https://api.detris.ai/lists/692397ea61746762ff5d587e/rows/batch \
-H "X-API-Key: sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"updates": [
{ "_id": "row_123", "updates": { "status": "qualified" } },
{ "_id": "row_456", "updates": { "status": "contacted" } }
]
}'{
"updated": 2,
"failed": 0,
"total": 2,
"errors": []
}/lists/{list_id}/rows/upsertBulk upsert (import)
Import data in bulk or sync from your CRM. Matches rows by a field (like email) - updates existing rows, creates new ones. Perfect for periodic syncs from Salesforce, HubSpot, or your database.
Path Parameters
list_idstringrequiredThe unique identifier of the list
Request Body
rowsarrayrequiredArray of row objects to upsert
match_fieldstringrequiredField name to match on (e.g., "email")
dataobjectrequiredRow data as key-value pairs
Response
insertedintegerrequiredNumber of new rows created
updatedintegerrequiredNumber of existing rows updated
failedintegerrequiredNumber of rows that failed
totalintegerrequiredTotal rows in the request
curl -X POST https://api.detris.ai/lists/692397ea61746762ff5d587e/rows/upsert \
-H "X-API-Key: sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"rows": [
{
"match_field": "email",
"data": { "email": "[email protected]", "firstName": "John" }
}
]
}'{
"inserted": 150,
"updated": 850,
"failed": 0,
"total": 1000
}/aitemplates/Get templates
Retrieve all AI templates in your account. Templates define reusable AI prompts for data augmentation.
Response
_idstringrequiredUnique template identifier
namestringrequiredTemplate name (used as column name)
custom_user_messagestringrequiredThe AI prompt with {field} placeholders
modelstringAI model to use (default: gpt-5.4-mini)
enable_web_searchbooleanWhether web search is enabled
created_atstringrequiredISO 8601 creation timestamp
curl https://api.detris.ai/aitemplates/ \
-H "X-API-Key: sk_live_your_api_key_here"[
{
"_id": "template_123",
"name": "lead_score",
"custom_user_message": "Rate this lead from 1-10...",
"created_at": "2025-01-15T10:30:00Z"
}
]/aitemplates/Create template
Create an AI template for data augmentation. Use {field_name} placeholders to reference row data in your prompt.
Request Body
namestringrequiredTemplate name (becomes the column name when applied)
custom_user_messagestringrequiredAI prompt with {field} placeholders
modelstringAI model: gpt-5.4-mini (default), gpt-5.4, gpt-5.4-nano, gpt-5.3-codex, claude-haiku-4.5, etc.
enable_web_searchbooleanEnable web search for each row (adds $0.01/row)
Response
_idstringrequiredUnique template identifier
namestringrequiredTemplate name
custom_user_messagestringrequiredThe AI prompt
created_atstringrequiredISO 8601 creation timestamp
curl -X POST https://api.detris.ai/aitemplates/ \
-H "X-API-Key: sk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "lead_score",
"custom_user_message": "Rate this lead from 1-10: {name} at {company}"
}'{
"_id": "template_123",
"name": "lead_score",
"custom_user_message": "Rate this lead from 1-10: {name} at {company}",
"created_at": "2025-01-15T10:30:00Z"
}