generated: '2026-08-13' method: derived source: openapi/liveramp-activation-api-openapi.yml, openapi/liveramp-clean-room-api-openapi.yml, openapi/liveramp-privacy-api-openapi.yml note: >- Entity-relationship graph derived mechanically from the $ref links and *Id reference fields in the three published LiveRamp OpenAPI documents. 348 component schemas across the portfolio, of which 294 belong to the Clean Room API alone — that spec is the richest data model LiveRamp publishes by a wide margin. Only relationships the specs actually express are recorded; no entity or field is inferred from product marketing. summary: schemas_total: 348 by_api: activation: 48 clean-room: 294 privacy: 6 domains: - name: Activation api: LiveRamp Activation API spec: openapi/liveramp-activation-api-openapi.yml base: https://api.liveramp.com/activation description: >- Distributing segment data to destination platforms. The spine is Destination -> DestinationIntegration -> IntegrationConnection -> DistributionManager -> SegmentConfig -> Delivery. entities: - name: v2Destination role: A marketing platform in the LiveRamp network that can receive data. relationships: - {type: has_many, via: integrations, target: v2DestinationIntegration} - name: v2DestinationIntegration role: A specific integration offered by a destination. relationships: - {type: belongs_to, via: v2DestinationId, target: v2Destination} - name: v2IntegrationConnection role: A customer's authorized connection to a destination integration. relationships: - {type: belongs_to, via: integrationId, target: v2DestinationIntegration} - {type: has_one, via: oauthStatus, target: 'enum: NotApplicable | Authorized | Unauthorized'} - name: v2DistributionManager role: The unit of scheduled distribution — binds segments to an integration connection. relationships: - {type: belongs_to, via: integrationConnectionId, target: v2IntegrationConnection} - {type: has_many, via: segmentConfigs, target: v2DistributionManagerSegmentConfig} - name: v2DistributionManagerSegmentConfig role: One segment enrolled in one distribution manager. Add/remove is capped at 500 per call. relationships: - {type: belongs_to, via: distributionManagerId, target: v2DistributionManager} - {type: belongs_to, via: segmentId, target: v2Segment} - name: v2Segment role: An audience segment available for distribution. relationships: - {type: has_one, via: status, target: v2SegmentStatus} - name: v2SegmentStatus role: >- Per-segment distribution status. The operation is scoped to EITHER first-party (onboarding) OR data-marketplace segments — exactly one segmentID parameter family may be passed. - name: v2Delivery role: A record of data actually delivered to a destination. relationships: - {type: belongs_to, via: distributionManagerId, target: v2DistributionManager} - name: v2OauthConnection role: An OAuth authorization held on behalf of a customer for a destination platform. relationships: - {type: has_one, via: attempt, target: v2OauthConnectionAttempt} envelope_pattern: >- Every collection operation returns a *MultiResponse wrapper carrying the collection plus metadata; single reads return a *Output; writes take a *Input. This Input/Output/MultiResponse triplet is generated by LiveRamp's own Reslang tool and is the most reliable shape rule in the Activation API. - name: Data Collaboration (Clean Room) api: LiveRamp Clean Room API spec: openapi/liveramp-clean-room-api-openapi.yml base: https://api.habu.com/v1/ description: >- The former Habu platform. Cleanroom is the aggregate root; Questions are the analytical unit, Flows are the orchestration unit, and Data Connections bring partner data in. entities: - name: Cleanroom role: The collaboration boundary. Aggregate root for everything below. relationships: - {type: has_many, via: partners, target: PartnerAccount} - {type: has_many, via: users, target: CleanRoomUser} - {type: has_many, via: datasets, target: CleanRoomDataset} - {type: has_many, via: questions, target: QuestionDetails} - {type: has_many, via: flows, target: ListItemCleanroomFlow} - {type: has_many, via: destinations, target: CleanroomDestination} - {type: has_many, via: exports, target: DataExportJob} - {type: has_one, via: billableConfig, target: BillableConfig} - name: PartnerAccount role: A collaborating organization, reached through an invitation flow. relationships: - {type: belongs_to, via: cleanroomId, target: Cleanroom} - name: QuestionDetails role: An analytical question that can be permissioned, tagged, run, scheduled, and shared. relationships: - {type: has_many, via: datasets, target: CleanRoomQuestionDataset} - {type: has_many, via: runs, target: CleanroomQuestionRun} - {type: has_one, via: schedule, target: QuestionRunSchedule} - {type: has_many, via: permissions, target: CleanRoomQuestionPermission} - {type: has_many, via: tags, target: CleanRoomQuestionTag} - {type: has_many, via: resultShares, target: CleanRoomQuestionResultShare} - {type: has_one, via: intelligence, target: CleanRoomQuestionIntelligence} - name: ListItemCleanroomFlow role: >- A multi-step flow. The most connected entity in the whole portfolio (9 outbound relationships) and the clearest sign that Flows, not Questions, are the current centre of the Clean Room product. relationships: - {type: has_many, via: runs, target: CleanroomFlowRun} - {type: has_many, via: nodes, target: FlowNodeMetadata} - {type: has_one, via: decisionConfiguration, target: FlowDecisionConfiguration} - name: DataConnection role: A configured source of data brought into a cleanroom. relationships: - {type: has_one, via: credentialSourceId, target: CredentialSource} - {type: has_one, via: dataSourceId, target: DataSource} - {type: has_many, via: views, target: DataConnectionViewResponse} - {type: has_one, via: dataTypeId, target: DataType} - name: DataExportJob role: Moving results out of the cleanroom. relationships: - {type: has_many, via: runs, target: ExportJobRun} - {type: belongs_to, via: cleanroomId, target: Cleanroom} - name: OrganizationCredential role: Credentials held at the organization level and reused across data connections. - name: BillableConfig role: >- Billing configuration attached to a cleanroom — notable because it means consumption is modelled inside the API surface, not only in contracts. - name: Privacy api: LiveRamp Privacy API spec: openapi/liveramp-privacy-api-openapi.yml base: https://privacy-api.liveramp.com description: Data-subject request intake. Two operations, six schemas — deliberately small. entities: - name: PrivacyRequest role: A data subject request (opt-out / deletion / access). identity: request_uuid relationships: - {type: has_one, via: details, target: PrivacyRequestDetails} note: >- Deduplicated natively — a duplicate create returns the ORIGINAL request_uuid with is_duplicate true. Supports mobile advertising IDs (MAIDs) as of 2026-03-03. - name: StandardError role: The shared error payload. identity_spine: note: >- LiveRamp's identity primitives (RampID, AbiliTec link, identity envelope) are the conceptual core of the company, but they are documented on the AbiliTec / RampID / ATS developer sites, which publish NO OpenAPI. They are therefore deliberately absent from this derived model rather than reconstructed from prose. documented_at: - https://developers.liveramp.com/rampid-api/reference/rampids - https://developers.liveramp.com/abilitec-api/reference/abilitec-identifiers-1