Entities and exports
Entity endpoints return canonical Fictix data from one demo job. For a
self-service Console-created company, start with the project runtime routes in
Runtime And Native Routes. The
normalized /demo-jobs entity surface is for approved control-plane
integrations.
Get a full bundle
/api/v1/demo-jobs/{job_ref}/bundleGET /api/v1/demo-jobs/{job_ref}/bundle
Query params:
| Name | Type | Description |
|---|---|---|
entity |
repeated string | Include only selected entity families. |
include_empty |
boolean | Include empty entity families when resolving defaults. |
max_records |
integer | Optional cap, bounded by server maximum. |
Example:
curl "$FICTIX_API_ORIGIN/api/v1/demo-jobs/$JOB_ID/bundle?entity=customers&entity=invoices" \
-H "X-Admin-Key: $FICTIX_ADMIN_API_KEY"
Response:
{
"object": "demo_bundle",
"contract_version": "2026-07-17",
"job": {},
"lineage": {},
"included_entities": ["customers", "invoices"],
"total_records": 1200,
"record_limit_applied": 25000,
"entities": {
"customers": [],
"invoices": []
}
}
If the bundle exceeds the cap, Fictix returns 413. Use entity paging or export
instead.
Get entity page
/api/v1/demo-jobs/{job_ref}/entities/{entity}GET /api/v1/demo-jobs/{job_ref}/entities/{entity}
Query params:
| Name | Type | Default | Description |
|---|---|---|---|
limit |
integer | 100 |
Page size. |
offset |
integer | 0 |
Offset into entity list. |
Example:
curl "$FICTIX_API_ORIGIN/api/v1/demo-jobs/$JOB_ID/entities/customers?limit=100&offset=0" \
-H "X-Admin-Key: $FICTIX_ADMIN_API_KEY"
Response:
{
"object": "demo_entity_page",
"contract_version": "2026-07-17",
"job_id": "8f3a2d11",
"lineage": {},
"entity": "customers",
"count": 1200,
"limit": 100,
"offset": 0,
"data": []
}
Export entity
/api/v1/demo-jobs/{job_ref}/entities/{entity}/exportGET /api/v1/demo-jobs/{job_ref}/entities/{entity}/export?format=json
GET /api/v1/demo-jobs/{job_ref}/entities/{entity}/export?format=csv
JSON response:
{
"object": "demo_entity_export",
"contract_version": "2026-07-17",
"job_id": "8f3a2d11",
"lineage": {},
"entity": "invoices",
"format": "json",
"count": 200,
"data": []
}
CSV response returns text/csv content.
Supported entities
Preferred canonical entity names:
| Entity | Description |
|---|---|
accounts |
Chart of accounts. |
bank_accounts |
Bank account records. |
bank_transactions |
Bank ledger activity. |
bills |
Accounts payable bills. |
customers |
Customer master records. |
customer_payments |
Customer receipts. |
credit_memos |
Applied accounts receivable credits linked to invoices. |
deals |
CRM deals/opportunities. |
employees |
Employee records. |
invoices |
Accounts receivable invoices. |
items |
Product/service items. |
journal_entries |
General ledger journal entries. |
payroll_runs |
Payroll batches and pay-period output. |
tasks |
Operational task records. |
vendor_payments |
Vendor/bill payments. |
vendors |
Vendor master records. |
ASC clinical extensions are available only for companies created with
company.industry: "asc_surgical":
| Entity | Description |
|---|---|
operating_rooms |
Operating and procedure rooms. |
surgical_cases |
Scheduled synthetic surgical cases. |
clinical_incidents |
Synthetic safety events and near misses with ground-truth fields. |
dictation_scripts |
Spoken-style incident narrations with synthetic extraction answer keys. |
The clinical pack contains no real patient data. For activation, record shape, scenario needles, and evaluation guidance, see Healthcare / ASC Data.
Aliases:
| Alias | Canonical entity |
|---|---|
payments |
customer_payments |
bill_payments |
vendor_payments |
New integrations should use canonical names to avoid double-counting.
Loader order
For relational loading, use this order:
accountsbank_accountsitemscustomersvendorsemployeesinvoicescredit_memosbillscustomer_paymentsvendor_paymentsbank_transactionsjournal_entriesdealstaskspayroll_runs
For an ASC company, then load operating_rooms, surgical_cases,
clinical_incidents, and dictation_scripts in that order.
This order ensures reference targets exist before dependent records.
