generated: '2026-10-09' method: derived generator: derive-data-model.py source: - openapi/infiniteaudience-ai-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 83 entities_in_spec: 83 relationships: 46 entities: - name: AccountAutoRechargeResponse fields: 3 - name: AccountCreditsResponse fields: 2 - name: AccountInvoicesResponse fields: 3 - name: AccountPaymentReceipt fields: 12 - name: AudienceObject fields: 26 - name: AudienceRefreshResult fields: 14 description: 'Response of `POST /v1/audiences/{id}/refresh`. Deliberately lighter than the full Audience object: the handler returns only the version/lifecycle attributes it changed plus subtype-specific next-step ' - name: AutoRechargeUpdateRequest fields: 4 - name: BillingAutoRechargeProjection fields: 12 - name: BillingCollectionProjection fields: 5 - name: BillingContractProjection fields: 12 - name: BillingCreditBalance fields: 11 - name: BillingInvoice fields: 10 - name: BillingMoneyProjection fields: 9 - name: BillingReadinessProjection fields: 5 - name: BillingScheduledContractChange fields: 10 - name: BillingSnapshot fields: 20 - name: BillingUsageRateProjection fields: 4 - name: BulkCreateSegmentsResult fields: 4 description: Result of POST /v1/segments/bulk-create. Returned with 201 when at least one segment was created, and with 400 (same shape) when every item failed. - name: Campaign fields: 7 description: A named workspace grouping related audiences and deliveries. There is no audience_ids[] field — audiences[] (below) is the only audience-linkage field the handler ever returns. - name: ContinuousPurchaseAuthorization fields: 13 - name: ContinuousPurchaseAuthorizationResult fields: 1 - name: ContinuousPurchaseControlRead fields: 3 - name: ContinuousPurchasePreview fields: 10 - name: ContinuousPurchaseScope fields: 3 - name: CostEstimate fields: 7 - name: DeliveryConfig fields: 0 description: Configured delivery destination. The `type` attribute selects the channel; partner destinations require additional identifying attributes. - name: DeliveryObject fields: 24 - name: DeliveryWebhookCompletedPayload fields: 8 description: Canonical envelope posted to your webhook when a delivery export finishes and download URLs (or an equivalent destination confirmation) are available. - name: DeliveryWebhookFailedPayload fields: 8 description: Canonical envelope posted to your webhook when a delivery export fails. - name: DiscoveryInput fields: 6 description: One side of a discovery operation — provide exactly one of `filters`, `filter_groups`, `segment_id`, `audience_id`, or `segment_ids` + `set_logic`. Providing more than one returns 400 `AMBIGUOUS_INPUT - name: DistributionBucket fields: 2 description: One bucket of a categorical distribution. - name: EnrichmentRelease fields: 2 description: Delivered IAG refresh version. Independent of license status. Null provenance means unknown; a newer refresh-major can prompt a refresh through existing workflows. Active licenses and existing identit - name: ErrorResponse fields: 6 - name: ExpandedSegment fields: 9 description: Constituent segment summary and saved filter definition. Audiences may combine multiple segment subtypes; there is no primary segment or audience subtype. - name: FileMatchJob fields: 21 description: A file-based match job (matched-subtype segment) - name: FileMatchJobList fields: 3 - name: Filter fields: 5 description: A single filter condition for audience discovery or job execution - name: FilterGroup fields: 3 description: 'A group of Filter conditions. All `filters` within a single group are **always ANDed together** — there is no per-group intra-operator. The `combinator` attribute is an **inter-group** operator: it co' - name: FilterValidationIssue fields: 4 - name: IntegrationCollectionFilter fields: 6 - name: IntegrationCollectionProvenance fields: 10 - name: IntegrationMatchCollection fields: 10 - name: IntegrationMaterialization fields: 17 - name: IntegrationMaterializationPreview fields: 7 - name: IntegrationMaterializationPreviewRequest fields: 2 - name: IntegrationMaterializationPreviewResponse fields: 2 - name: IntegrationMaterializationRequest fields: 4 - name: IntegrationRun fields: 19 - name: IntegrationRunCounts fields: 7 - name: IntegrationRunListResponse fields: 3 - name: LicenseAlertSettings fields: 1 - name: LicensePricing fields: 3 - name: MappingWarning fields: 3 - name: MatchAddress fields: 8 description: One additional address, tried as an extra match permutation alongside the record's primary address. Only the keys listed here are read. Any other key (for example `street`, `line1`, or `postal`) is ig - name: MatchRun fields: 11 description: A single micro-batch match run record. `amount_charged` is a conservative pending-usage estimate, not a finalized invoice amount. - name: MatchRunList fields: 3 - name: McpJsonRpcError fields: 3 - name: MonthlyRenewalAuthorization fields: 17 - name: MonthlyRenewalControlRead fields: 3 - name: NativeAccountBillingResponse fields: 7 - name: NativeBillingSetupResponse fields: 3 description: Native billing has not been configured. Viewing this response creates no account or contract. Shopify stores retain independent billing. - name: NotificationPreferences fields: 6 description: Per-event-type email opt-in flags for segment, delivery, and monthly licence expiry events. Connection-bound partnership callbacks are automation-only and are not personal email preferences. Absent/fa - name: NotificationPreferencesResponse fields: 1 - name: OAuthClientRegistrationRequest fields: 6 - name: OAuthClientRegistrationResponse fields: 8 - name: OAuthDeviceAuthorizationRequest fields: 4 - name: OAuthDeviceAuthorizationResponse fields: 6 - name: OAuthErrorResponse fields: 2 description: RFC 6749 §5.2 / §4.1.2.1 error body — see the OAuthError response component. - name: OAuthProtectedResourceMetadata fields: 7 - name: OAuthRevokeRequest fields: 4 - name: OAuthServerMetadata fields: 14 - name: OAuthTokenResponse fields: 6 - name: OidcDiscoveryMetadata fields: 16 - name: OidcJwks fields: 1 - name: OidcUserInfo fields: 3 - name: OrgLicenseSummary fields: 10 - name: PublicCatalogField fields: 19 - name: SegmentObject fields: 36 - name: SegmentRefreshResult fields: 0 description: Response of `POST /v1/segments/{id}/refresh` — the full updated segment document plus refresh metadata. For the matched subtype the response additionally carries upload_url / upload_expires_at (24 h p - name: SegmentWebhookFailedPayload fields: 8 description: Canonical envelope posted to your webhook when an async segment build fails due to an enrichment or workflow error. - name: SegmentWebhookReadyPayload fields: 8 description: Canonical envelope posted to your webhook when an async segment (matched file upload, similarity, or propensity) completes successfully. - name: WebhookSubscription fields: 8 description: A durable event-trigger subscription (e.g. a Zap that is turned on). Delivery is retried with exponential backoff; see the Triggers tag for the ownership model. - name: WebhookSubscriptionCreated fields: 6 description: Response to POST /v1/webhook-subscriptions. `secret` is returned exactly once, in plaintext — it is never retrievable again after this response. relationships: - from: ContinuousPurchaseAuthorization to: ContinuousPurchaseScope type: has_many via: scopes - from: ContinuousPurchaseControlRead to: ContinuousPurchaseAuthorization type: has_one via: authorization - from: ContinuousPurchaseAuthorizationResult to: ContinuousPurchaseAuthorization type: has_one via: authorization - from: ContinuousPurchasePreview to: ContinuousPurchaseScope type: has_many via: scopes - from: MonthlyRenewalControlRead to: MonthlyRenewalAuthorization type: has_one via: authorization - from: IntegrationRun to: EnrichmentRelease type: has_one via: data_release - from: IntegrationRun to: IntegrationRunCounts type: has_one via: counts - from: IntegrationRunListResponse to: IntegrationRun type: has_many via: runs - from: IntegrationCollectionFilter to: IntegrationRun type: belongs_to via: integration_run_ids - from: IntegrationMaterializationPreviewRequest to: IntegrationCollectionFilter type: has_one via: filters - from: IntegrationMaterializationPreviewResponse to: IntegrationMaterializationPreview type: has_one via: preview - from: IntegrationMaterializationRequest to: IntegrationCollectionFilter type: has_one via: filters - from: IntegrationMaterialization to: IntegrationCollectionFilter type: has_one via: filters - from: IntegrationMaterialization to: IntegrationMaterializationPreview type: has_one via: preview - from: BillingContractProjection to: BillingScheduledContractChange type: has_one via: scheduled_change - from: BillingContractProjection to: BillingUsageRateProjection type: has_one via: usage_rates - from: BillingSnapshot to: BillingContractProjection type: has_one via: contract - from: BillingSnapshot to: BillingMoneyProjection type: has_one via: money - from: BillingSnapshot to: BillingAutoRechargeProjection type: has_one via: auto_recharge - from: BillingSnapshot to: BillingCollectionProjection type: has_one via: collection - from: AccountAutoRechargeResponse to: BillingAutoRechargeProjection type: has_one via: auto_recharge - from: NativeAccountBillingResponse to: BillingSnapshot type: has_one via: billing - from: NativeAccountBillingResponse to: BillingReadinessProjection type: has_one via: billing_readiness - from: NativeAccountBillingResponse to: AccountPaymentReceipt type: has_one via: latest_payment - from: AccountCreditsResponse to: BillingCreditBalance type: has_many via: balances - from: AccountInvoicesResponse to: BillingInvoice type: has_many via: invoices - from: MatchRun to: EnrichmentRelease type: has_one via: data_release - from: MatchRunList to: MatchRun type: has_many via: runs - from: FileMatchJob to: EnrichmentRelease type: has_one via: data_release - from: FileMatchJob to: IntegrationRun type: belongs_to via: integration_run_id - from: FileMatchJobList to: FileMatchJob type: has_many via: jobs - from: ErrorResponse to: FilterValidationIssue type: has_many via: issues - from: ExpandedSegment to: FilterGroup type: has_many via: filter_groups - from: AudienceObject to: EnrichmentRelease type: has_one via: data_release - from: AudienceObject to: ExpandedSegment type: has_many via: segments - from: AudienceObject to: ExpandedSegment type: has_many via: excluded_segments - from: AudienceObject to: Campaign type: belongs_to via: campaign_id - from: DeliveryObject to: EnrichmentRelease type: has_one via: data_release - from: DeliveryObject to: IntegrationRun type: belongs_to via: integration_run_id - from: FilterGroup to: Filter type: has_many via: filters - from: DiscoveryInput to: Filter type: has_many via: filters - from: DiscoveryInput to: FilterGroup type: has_many via: filter_groups - from: BulkCreateSegmentsResult to: SegmentObject type: has_many via: segments - from: SegmentObject to: EnrichmentRelease type: has_one via: data_release - from: SegmentObject to: IntegrationCollectionProvenance type: has_one via: integration_collection_provenance - from: SegmentObject to: FilterGroup type: has_many via: filter_groups