Response envelopes

Fictix returns generated business records, so entity-specific data can vary by company, selected services, and scenario. The partner API keeps the outer envelope stable while allowing the record payload to remain true to the generated company.

The live schema is available at:

https://api.fictix.ai/openapi.json

Use the schema for mechanical route, request, authentication, and top-level response validation. Use the catalog endpoints to discover the fields and capabilities selected for a particular company.

Contract version

Partner response envelopes include a date-based contract version:

{
  "contract_version": "2026-07-17"
}

Treat it as a string, not an integer. Store the version with any imported dataset, export, test run, or evaluation result.

Demo job

{
  "object": "demo_job",
  "contract_version": "2026-07-17",
  "regeneration_required": false,
  "id": "8f3a2d11",
  "status": "ready",
  "links": {
    "self": "/api/v1/demo-jobs/8f3a2d11",
    "status": "/api/v1/demo-jobs/8f3a2d11/status",
    "quality": "/api/v1/demo-jobs/8f3a2d11/quality",
    "bundle": "/api/v1/demo-jobs/8f3a2d11/bundle"
  },
  "company": {},
  "runtime": {},
  "dataset_summary": {},
  "quality": {}
}
Field Type Meaning
object string Stable resource type: demo_job.
contract_version string Partner contract version for the response.
regeneration_required boolean true when this company predates the current accounting contract and must be regenerated before a current-contract import.
id string Demo-job/project identifier.
status string created, generating, ready, error, or unknown.
links object Relative links to the job's normalized resources.
company object Generated company identity and summary.
runtime object Runtime project id, slug, and handoff metadata.
dataset_summary object Canonical record counts and materialization summary.
quality object Validation summary appropriate for fast display.

The credentials.api_key field can appear immediately after a control-plane create/clone. It is a one-time server secret; do not log or return it to a browser. Console-created companies use the Console's Company API keys flow instead.

Entity page

{
  "object": "demo_entity_page",
  "contract_version": "2026-07-17",
  "job_id": "8f3a2d11",
  "lineage": {},
  "entity": "customers",
  "count": 1200,
  "limit": 100,
  "offset": 0,
  "data": []
}

count is the total for the requested canonical entity; data contains the current page. Do not infer end-of-pagination from a short page alone—continue until offset + data.length >= count.

Catalog collection

{
  "object": "catalog_collection",
  "contract_version": "2026-07-17",
  "collection": "services",
  "count": 4,
  "items": []
}

Catalog endpoints are public and return no tenant data. They are the right source for available entities, connector capabilities, and export-pack schemas.

Error envelopes

Most errors include detail. The value may be text or a structured object:

{
  "detail": {
    "code": "project_dataset_limit_exceeded",
    "message": "Project dataset exceeds current blob storage safety budget"
  },
  "request_id": "req_example"
}

Create-time credit errors (402, and some 409, 422, and 429 responses) use a separate envelope:

{
  "error": "insufficient_credits",
  "message": "A valid credit run or sufficient credits are required."
}

Write clients that tolerate both envelope families:

type FictixDetailError = {
  detail: string | { code?: string; message?: string; [key: string]: unknown };
  request_id?: string;
};

type FictixCreditError = {
  error: string;
  message: string;
};

type FictixError = FictixDetailError | FictixCreditError;

Capture request_id, method, path, and safe job/entity identifiers when escalating a problem. Never include credentials in support logs.

CSV and JSON exports

format=json returns a demo_entity_export JSON envelope. format=csv returns text/csv and includes lineage in response headers when available. Choose CSV for file loaders and JSON for API-based transforms; do not expect the CSV endpoint to wrap rows in the JSON envelope.

Next: Entities And Exports and Errors, Limits, And Idempotency.