generated: '2026-10-06' method: derived generator: derive-data-model.py source: - openapi/karma-domains-openapi.json notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 86 entities_in_spec: 86 relationships: 54 entities: - name: AhrefsData fields: 3 description: Ahrefs (domain) data model - name: AnchorTextCheckerResultSchema fields: 5 description: Aggregated backlink anchor analysis for a single domain - name: AnchorTextRowSchema fields: 4 description: Aggregated anchor text row - name: AnchorTextSummarySchema fields: 6 description: Link profile summary with derived dofollow count - name: AnchorWordSchema fields: 2 description: Word frequency for the anchor word cloud - name: BacklinkCheckerResultSchema fields: 3 description: Backlink data for a single domain - name: BacklinkItemSchema fields: 7 description: Single backlink row for the landing tool - name: BacklinkSummarySchema fields: 5 description: Flattened Moz metrics for the overview - name: BlacklistsData fields: 3 description: Blacklists data model - name: BrandscoreData fields: 5 description: Brandscore data model - name: CategoryData fields: 3 description: Category data model - name: CheckDomainResponseSchema fields: 2 description: Check domain response schema - name: CombineSEOCompactFilter fields: 2 description: Compact combined SEO field filter. - name: CombineSEOFilter fields: 11 description: Combined SEO filter with compact named parameters. - name: CountryFilterItem fields: 2 description: Single country filter item - name: CountryShare fields: 3 description: SimilarWeb country share data model - name: CreateShareLinkBody fields: 2 description: Create a guest share link for a bases report (Pro only). - name: DnsLookupResultSchema fields: 3 description: DNS lookup result for a single domain across public resolvers - name: DnsRecordItemSchema fields: 12 description: Single DNS resource record - name: DnsResolverResultSchema fields: 3 description: Full DNS snapshot from one public resolver - name: DnsTypeResultSchema fields: 3 description: DNS records for one type from one resolver - name: DomainAgeResultSchema fields: 5 description: Archive age data for a single domain - name: DomainAgeSparklineSchema fields: 3 description: Sparkline data for domain age checker - name: DomainAuthorityResultSchema fields: 2 description: Metrics for a single domain - name: DomainAvailabilityResponseSchema fields: 2 description: Live domain availability check (no report record updated). - name: DomainExpiryResultSchema fields: 6 description: WHOIS expiry data for a single domain - name: DomainMetrics fields: 15 description: Domain metrics data model - name: DomainMetricsSchema fields: 16 description: Flattened metrics for the DA checker frontend - name: DomainReportMatch fields: 4 description: Report reference found by exact domain match in one bases collection. - name: DomainReportsLookupResponse fields: 2 description: All bases reports matching a normalized domain (up to one per collection). - name: Engagements fields: 6 description: SimilarWeb engagements data model - name: EnrichSeoHintSchema fields: 3 description: Whether paid SEO enrich is available for this report. - name: EnrichSeoJobCreateResponseSchema fields: 1 description: Accepted enrich job. - name: EnrichSeoJobPollResponseSchema fields: 4 - name: EnrichSeoJobResultSchema fields: 4 - name: FavoriteReportBody fields: 2 - name: GoogleData fields: 2 description: Google data model - name: GoogleItem fields: 4 description: Google item data model - name: HTTPValidationError fields: 1 - name: KarmaMetricComponents fields: 5 description: Karma metric components model - name: KarmaMetricData fields: 3 description: Karma metric data model - name: KeywordItem fields: 3 description: Individual keyword data model - name: KeywordseverywhereData fields: 3 description: Keywords data model (from KeywordsEverywhere or similar) - name: LanguageFilterItem fields: 2 description: Single language filter item - name: MajesticData fields: 11 description: Majestic data model - name: MassageResponseSchema fields: 2 description: Massage response schema - name: MozBacklink fields: 7 description: Moz backlink data model - name: MozData fields: 16 description: Moz data model - name: PublicSubscriptionInfoSchema fields: 8 description: Subscription details exposed via Public API (no internal billing ids). - name: PublicUserProfileSchema fields: 16 description: Current user profile for Public API (sanitized subset of UserInfo). - name: ReportAnnotationData fields: 2 description: User note and tags attached to a report. - name: ReportAnnotationSchema fields: 2 description: Report annotation payload. - name: ReportAnnotationTagsResponseSchema fields: 1 description: Distinct annotation tags for the current user. - name: ReportAnnotationUpsertSchema fields: 4 description: Upsert report annotation request. - name: ReportFullResponseSchema fields: 25 description: Report full response schema - name: ReportItem fields: 59 - name: ReportListFilterSchema fields: 154 - name: ReportListResponseSchema fields: 2 description: Report list response schema - name: SemrushData fields: 2 description: Semrush OAuth API data model - name: SemrushTrafficSchema fields: 20 description: Semrush traffic analytics summary for the landing tool - name: ShareLinkResponseSchema fields: 3 description: Guest share link metadata with ready-to-send URL (Public API / MCP). - name: SimilarWebCountryShareSchema fields: 3 description: SimilarWeb country share row - name: SimilarWebData fields: 5 description: SimilarWeb data model - name: SimilarWebEngagementsSchema fields: 6 description: SimilarWeb engagement metrics - name: SimilarWebTrafficSchema fields: 5 description: SimilarWeb traffic payload for the landing tool - name: SpamScoreResultSchema fields: 5 description: Moz spam metrics for a single domain - name: TrafficSources fields: 6 description: SimilarWeb traffic sources data model - name: UserFilterCreateSchema fields: 3 description: Create a saved search filter. The server assigns id. - name: UserFilterPatchSchema fields: 3 description: Partial update of a saved search filter. - name: UserFiltersSchema fields: 4 description: User filters schema - name: UserNews fields: 4 - name: ValidationError fields: 3 - name: WebhookDeliveryResponse fields: 10 - name: WebhookReportRef fields: 3 - name: WebhookSubscriptionBody fields: 8 - name: WebhookSubscriptionPatch fields: 8 - name: WebhookSubscriptionResponse fields: 15 - name: WebsitePageCounterResponseSchema fields: 6 description: Website Page Counter response schema - name: WebsitePageCounterSitemapSchema fields: 5 description: One sitemap file in the scan tree - name: WebsitePageCounterUrlSchema fields: 3 description: Single page URL collected from a sitemap - name: WebsiteTrafficResultSchema fields: 3 description: Traffic data for a single domain - name: WhoisContactSchema fields: 10 description: Single WHOIS contact role (registrant / admin / tech / billing) - name: WhoisContactsSchema fields: 4 description: Contact roles present in the record - name: WhoisLookupResultSchema fields: 12 description: Structured WHOIS/RDAP result for a single domain - name: WhoisRawSchema fields: 2 description: Raw WHOIS text and RDAP JSON for power users - name: WhoisRegistrarSchema fields: 6 description: Registrar block for WHOIS lookup relationships: - from: AnchorTextCheckerResultSchema to: AnchorTextSummarySchema type: has_one via: summary - from: AnchorTextCheckerResultSchema to: AnchorTextRowSchema type: has_many via: anchors - from: AnchorTextCheckerResultSchema to: AnchorWordSchema type: has_many via: words - from: BacklinkCheckerResultSchema to: BacklinkSummarySchema type: has_one via: summary - from: BacklinkCheckerResultSchema to: BacklinkItemSchema type: has_many via: backlinks - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_authority_min - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_authority_max - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_backlinks_min - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_backlinks_max - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_refdomains_min - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_refdomains_max - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_traffic_min - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_traffic_max - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_keywords - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_backlink_url - from: CombineSEOFilter to: CombineSEOCompactFilter type: has_one via: combine_anchors - from: DnsTypeResultSchema to: DnsRecordItemSchema type: has_many via: records - from: DomainAgeResultSchema to: DomainAgeSparklineSchema type: has_one via: sparkline - from: DomainAuthorityResultSchema to: DomainMetricsSchema type: has_one via: metrics - from: DomainMetrics to: MajesticData type: has_one via: majestic - from: DomainMetrics to: MozData type: has_one via: moz - from: DomainMetrics to: AhrefsData type: has_one via: ahrefs - from: DomainMetrics to: SemrushData type: has_one via: semrush - from: DomainMetrics to: KeywordseverywhereData type: has_one via: keywordseverywhere - from: DomainMetrics to: SimilarWebData type: has_one via: similarweb - from: DomainMetrics to: BrandscoreData type: has_one via: brandscore - from: DomainMetrics to: KarmaMetricData type: has_one via: karma_metric - from: DomainMetrics to: GoogleData type: has_one via: google - from: DomainReportsLookupResponse to: DomainReportMatch type: has_many via: matches - from: EnrichSeoJobPollResponseSchema to: EnrichSeoJobResultSchema type: has_one via: result - from: HTTPValidationError to: ValidationError type: has_many via: detail - from: KarmaMetricData to: KarmaMetricComponents type: has_one via: components - from: PublicUserProfileSchema to: PublicSubscriptionInfoSchema type: has_one via: unlimited_subscription_info - from: PublicUserProfileSchema to: PublicSubscriptionInfoSchema type: has_one via: pro_subscription_info - from: ReportFullResponseSchema to: ReportAnnotationData type: has_one via: annotation - from: ReportFullResponseSchema to: DomainMetrics type: has_one via: metrics - from: ReportFullResponseSchema to: EnrichSeoHintSchema type: has_one via: enrich_seo - from: ReportItem to: ReportAnnotationSchema type: has_one via: annotation - from: ReportListFilterSchema to: CombineSEOFilter type: has_one via: combine_seo - from: ReportListResponseSchema to: ReportItem type: has_many via: report_list - from: SimilarWebData to: Engagements type: has_one via: engagments - from: SimilarWebData to: TrafficSources type: has_one via: traffic_sources - from: SimilarWebTrafficSchema to: SimilarWebEngagementsSchema type: has_one via: engagments - from: WebsitePageCounterResponseSchema to: WebsitePageCounterSitemapSchema type: has_many via: sitemaps - from: WebsitePageCounterResponseSchema to: WebsitePageCounterUrlSchema type: has_many via: urls - from: WebsiteTrafficResultSchema to: SimilarWebTrafficSchema type: has_one via: similarweb - from: WebsiteTrafficResultSchema to: SemrushTrafficSchema type: has_one via: semrush - from: WhoisContactsSchema to: WhoisContactSchema type: has_one via: registrant - from: WhoisContactsSchema to: WhoisContactSchema type: has_one via: administrative - from: WhoisContactsSchema to: WhoisContactSchema type: has_one via: technical - from: WhoisContactsSchema to: WhoisContactSchema type: has_one via: billing - from: WhoisLookupResultSchema to: WhoisRegistrarSchema type: has_one via: registrar - from: WhoisLookupResultSchema to: WhoisContactsSchema type: has_one via: contacts - from: WhoisLookupResultSchema to: WhoisRawSchema type: has_one via: raw