name: Treasure Data Data Model description: Entity-relationship graph derived from the schema components and $ref links of the five schema-bearing OpenAPI descriptions Treasure AI publishes. 428 object schemas and 395 typed references were extracted mechanically; the core entity list below is the subset a developer actually models against, with the relationships each one declares. specificationVersion: '0.1' generated: '2026-08-13' method: derived source: openapi/treasure-data-td-api-v3-openapi.yml, openapi/treasure-data-cdp-api-openapi.yml, openapi/treasure-data-workflow-api-openapi.yml, openapi/treasure-data-dwh-integration-api-openapi.yml, openapi/treasure-data-personalization-api-openapi.yml summary: object_schemas: 428 typed_references: 395 by_api: cdp-api: 310 td-api-v3: 54 workflow: 47 dwh: 13 personalization: 4 note: openapi/treasure-data-llm-api-openapi.yml declares 87 operations but zero components.schemas — every request and response body is inlined, so the LLM API contributes no reusable entities to this graph. openapi/treasure-data-postback-api-openapi.yml and -v2 declare one schema each. core_entities: - name: Database api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 10 - name: Table api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 14 - name: Job api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 22 - name: Schedule api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 13 - name: User api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 19 - name: AccessControlPolicy api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 5 - name: AccessControlPolicyGroup api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 8 - name: AccessControlPermission api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 12 - name: Connection api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 2 - name: DeletedTable api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 6 - name: RecoveredTable api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 12 - name: SSOSetting api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 7 - name: BulkLoadSession api: td-api-v3 spec: openapi/treasure-data-td-api-v3-openapi.yml fields: 10 - name: Audience api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 28 - name: AudienceAttribute api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 9 - name: AudienceBehavior api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 11 - name: Segment api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 13 - name: Syndication api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 26 - name: Funnel api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 13 - name: PredictiveSegment api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 15 - name: Token api: cdp-api spec: openapi/treasure-data-cdp-api-openapi.yml fields: 12 - name: RestProject api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 9 - name: RestWorkflowDefinition api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 6 - name: RestSession api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 6 - name: Attempt api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 10 - name: RestSchedule api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 6 - name: RestRevision api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 5 - name: RestPool api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 4 - name: RestLogFileHandle api: workflow spec: openapi/treasure-data-workflow-api-openapi.yml fields: 7 - name: BulkloadSession api: dwh spec: openapi/treasure-data-dwh-integration-api-openapi.yml fields: 4 - name: SessionAttempt api: dwh spec: openapi/treasure-data-dwh-integration-api-openapi.yml fields: 5 - name: WorkflowRun api: dwh spec: openapi/treasure-data-dwh-integration-api-openapi.yml fields: 14 - name: Schedule api: dwh spec: openapi/treasure-data-dwh-integration-api-openapi.yml fields: 3 - name: event api: personalization spec: openapi/treasure-data-personalization-api-openapi.yml fields: 2 relationships: - from: Database type: has_one to: DatabaseIdAsString via: id api: td-api-v3 - from: Table type: has_one to: TableId via: id api: td-api-v3 - from: Job type: has_one to: JobIdAsString via: job_id api: td-api-v3 - from: Job type: has_one to: User via: user_name api: td-api-v3 - from: Schedule type: has_one to: User via: user_name api: td-api-v3 - from: User type: has_one to: UserId via: id api: td-api-v3 - from: User type: has_one to: SSOIdentifier via: identifier api: td-api-v3 - from: User type: has_one to: SSOFullQualifiedIdentifier via: full_qualified_identifier api: td-api-v3 - from: User type: has_one to: SSOSettingName via: setting_name api: td-api-v3 - from: AccessControlPolicy type: has_one to: AccessControlPolicyId via: id api: td-api-v3 - from: AccessControlPolicyGroup type: has_one to: AccessControlPolicyGroupId via: id api: td-api-v3 - from: AccessControlPolicyGroup type: has_one to: AccessControlPolicyGroupTaggableName via: taggable_name api: td-api-v3 - from: Connection type: has_one to: ConnectionId via: id api: td-api-v3 - from: DeletedTable type: has_one to: TableId via: id api: td-api-v3 - from: DeletedTable type: has_one to: Table via: name api: td-api-v3 - from: DeletedTable type: has_one to: Database via: database_name api: td-api-v3 - from: RecoveredTable type: has_one to: TableId via: id api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: name api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: count api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: counter_updated_at api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: estimated_storage_size api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: expire_days api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: include_v api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: last_log_timestamp api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: delete_protected api: td-api-v3 - from: RecoveredTable type: has_one to: Table via: type api: td-api-v3 - from: BulkLoadSession type: has_one to: BulkLoadSessionId via: id api: td-api-v3 - from: BulkLoadSession type: has_one to: Database via: database api: td-api-v3 - from: BulkLoadSession type: has_one to: Table via: table api: td-api-v3 - from: BulkLoadSession type: has_one to: BulkLoadConfig via: config api: td-api-v3 - from: Audience type: has_one to: ScheduleType via: scheduleType api: cdp-api - from: Audience type: has_one to: AudienceMaster via: master api: cdp-api - from: Audience type: has_many to: AudienceAttribute via: attributes api: cdp-api - from: Audience type: has_many to: AudienceBehavior via: behaviors api: cdp-api - from: Audience type: has_one to: CustomerGroup via: customerGroup api: cdp-api - from: Audience type: has_many to: AudienceFilter via: audienceFilters api: cdp-api - from: Audience type: has_one to: User via: createdBy api: cdp-api - from: Audience type: has_one to: User via: updatedBy api: cdp-api - from: AudienceBehavior type: has_many to: AudienceBehaviorSchema via: schema api: cdp-api - from: AudienceBehavior type: has_one to: ScheduleType via: scheduleType api: cdp-api - from: Segment type: has_one to: User via: createdBy api: cdp-api - from: Segment type: has_one to: User via: updatedBy api: cdp-api - from: Syndication type: has_one to: ScheduleType via: scheduleType api: cdp-api - from: Syndication type: has_one to: RepeatSubFrequency via: repeatSubFrequency api: cdp-api - from: Syndication type: has_one to: User via: createdBy api: cdp-api - from: Syndication type: has_one to: User via: updatedBy api: cdp-api - from: Syndication type: has_many to: SyndicationExecution via: executions api: cdp-api - from: Funnel type: has_one to: User via: createdBy api: cdp-api - from: Funnel type: has_one to: User via: updatedBy api: cdp-api - from: PredictiveSegment type: has_one to: PredictiveSegmentAccuracy via: accuracy api: cdp-api - from: PredictiveSegment type: has_one to: PredictiveSegmentAreaUnderRocCurve via: areaUnderRocCurve api: cdp-api - from: PredictiveSegment type: has_one to: PredictiveSegmentGradeThresholds via: gradeThresholds api: cdp-api - from: Token type: has_many to: SegmentSummary via: segments api: cdp-api - from: Token type: has_one to: User via: createdBy api: cdp-api - from: Token type: has_one to: User via: updatedBy api: cdp-api - from: RestProject type: has_many to: RestProjectMetadata via: metadata api: workflow - from: RestWorkflowDefinition type: has_one to: IdAndName via: project api: workflow - from: RestSession type: has_one to: Attempt via: lastAttempt api: workflow - from: RestSession type: has_one to: IdAndName via: project api: workflow - from: RestSession type: has_one to: NameOptionalId via: workflow api: workflow - from: RestSchedule type: has_one to: IdAndName via: project api: workflow - from: RestSchedule type: has_one to: IdAndName via: workflow api: workflow notes: - The estate has three largely disjoint object graphs. The TD API models the warehouse (Database -> Table -> Job -> Schedule) plus the access-control graph (User <-> Policy <-> PolicyGroup <-> Permission). The CDP API models the audience graph (Audience -> Segment -> Syndication/Activation, plus Journeys, Funnels, Predictive Segments and Tokens). Treasure Workflow models the Digdag graph (Project -> Workflow -> Session -> Attempt -> Task -> Log). Nothing in the published specs links a CDP Audience back to the TD Database it is built on — that join exists in the product but not in the contract. - User is the most connected entity in the estate (34 typed references), which reflects how much of the TD API is access control rather than data. - No id-prefix convention is published. Identifiers are bare integers or strings; there is no Stripe-style typed-prefix scheme that would let an agent infer an object's type from its id.