Insites Data module. Use for listing databases and reading or writing database items (records). Trigger on any mention of Insites databases, database records, or data stored in Insites.
The Data module provides access to custom databases and their records. Databases are structured data stores with custom schemas defined in the Insites admin.
Requires: INSITES_INSTANCE_URL and INSITES_API_KEY. Use the combinate skill to resolve these for Combinate projects.
Base paths:
$INSITES_INSTANCE_URL/databases/api/v2/databases$INSITES_INSTANCE_URL/databases/api/v2/database/TABLE_ID/itemsNote: Databases list responses are wrapped under an items key.
Auth: See .claude/skills/insites/SKILL.md for the base request pattern and .env setup.
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/databases/api/v2/databases?page=1&size=25" | python3 -c "
import sys, json
data = json.load(sys.stdin)
items = data.get('items', data)
print(f\"Total: {items.get('total_entries', '?')} databases\")
for d in items.get('results', []):
label = (d.get('metadata') or {}).get('label', d.get('path', ''))
print(f\"[{d['id']}] [{d.get('uuid','')}] {label} path: {d.get('path', '')}\")
"
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/databases/api/v2/databases/DATABASE_UUID"
Database items are the individual records (rows) stored in a database. The items endpoint uses the database's table_id (numeric ID, not UUID) in the URL path.
Replace TABLE_ID with the numeric id from the database listing (not the UUID):
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/databases/api/v2/database/TABLE_ID/items?page=1&size=25" | python3 -c "
import sys, json
data = json.load(sys.stdin)
items = data.get('items', data)
print(f\"Total: {items.get('total_entries', '?')} items\")
for item in items.get('results', []):
print(f\"[{item.get('id','')}] [{item.get('uuid','')}] {item.get('properties', {})}\")
"
source .env && curl -s \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
"$INSITES_INSTANCE_URL/databases/api/v2/database/TABLE_ID/items/ITEM_UUID"
Fields use dot-notation with the properties. prefix. Field names vary by database schema - inspect an existing item's properties to see available fields:
source .env && curl -s -X POST \
-H "Authorization: $INSITES_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"properties.field_name": "value",
"properties.other_field": "value"
}' \
"$INSITES_INSTANCE_URL/databases/api/v2/database/TABLE_ID/items" | python3 -c "
import sys, json
item = json.load(sys.stdin)
if 'errors' in item:
print('ERROR:', item['errors'])