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

GET/api/v1/demo-jobs/{job_ref}/bundle
GET /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

GET/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

GET/api/v1/demo-jobs/{job_ref}/entities/{entity}/export
GET /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:

  1. accounts
  2. bank_accounts
  3. items
  4. customers
  5. vendors
  6. employees
  7. invoices
  8. credit_memos
  9. bills
  10. customer_payments
  11. vendor_payments
  12. bank_transactions
  13. journal_entries
  14. deals
  15. tasks
  16. payroll_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.