generated: '2026-10-07' method: derived generator: derive-data-model.py source: - openapi/ploid-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 57 entities_in_spec: 57 relationships: 31 entities: - name: AccountAcuSummary fields: 5 - name: AccountCreditSummary fields: 3 - name: AccountCreditsResponse fields: 2 - name: AccountKeyRevocationResponse fields: 2 - name: AccountProfile fields: 7 - name: AccountProfileResponse fields: 2 - name: AccountProfileUpdate fields: 6 - name: AccountUsageResponse fields: 2 - name: ApiKeyBudgetState fields: 8 - name: EnrichContact fields: 3 - name: EnrichContactRequest fields: 9 - name: EnrichContactResponse fields: 2 - name: EnrichFieldResult fields: 5 - name: EnrichLegacyRequest fields: 5 - name: EnrichLegacyResponse fields: 2 - name: EnrichLinkedInProfile fields: 13 - name: HarnessChatCompletionRequest fields: 14 - name: HarnessChatCompletionResponse fields: 0 description: OpenAI-compatible completion payload with internal model/provider routing metadata removed. - name: LinkedInPost fields: 10 - name: LinkedInPostAuthor fields: 5 - name: LinkedInPostsResponse fields: 2 - name: LinkedInProfile fields: 21 - name: LinkedInProfileEducation fields: 5 - name: LinkedInProfilePosition fields: 8 - name: LinkedInProfileResponse fields: 2 - name: LinkedInReadResponse fields: 2 - name: LinkedInSearchFilters fields: 5 - name: LinkedInSearchItem fields: 9 - name: LinkedInSearchRequest fields: 3 - name: LinkedInSearchResponse fields: 2 - name: Monitor fields: 16 - name: MonitorCompilation fields: 5 - name: MonitorCompileRequest fields: 2 - name: MonitorCreateRequest fields: 7 - name: MonitorItem fields: 14 description: 'Webhook events: monitor.run.completed, monitor.run.failed, monitor.run.skipped. monitor.run.completed is sent only when a run emits items and carries up to 100 of them.' - name: MonitorOutput fields: 3 - name: MonitorPlan fields: 2 - name: MonitorRun fields: 12 - name: MonitorTarget fields: 4 - name: MonitorUpdateRequest fields: 8 - name: PersonFieldProvenance fields: 5 - name: PersonRecord fields: 9 - name: PersonRequest fields: 1 - name: PersonRunResponse fields: 2 - name: PublicApiError fields: 1 - name: PublicCreditsResponseMeta fields: 5 - name: PublicResponseMeta fields: 1 - name: ResolveRequest fields: 8 - name: ResolveResponse fields: 2 - name: SearchHandoffResponse fields: 2 - name: SocialsRequest fields: 2 - name: SocialsResponse fields: 2 - name: SyncSearchGroundingResult fields: 6 - name: SyncSearchPerson fields: 11 description: Only resolved people are returned. Requested profile fields are present when selected and may be null when the people index has no value. - name: SyncSearchRequest fields: 9 - name: SyncSearchResponse fields: 2 - name: SyncSearchResult fields: 5 relationships: - from: SyncSearchResult to: SyncSearchPerson type: has_one via: person - from: SyncSearchResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: SearchHandoffResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: ResolveResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: SocialsResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: LinkedInProfile to: LinkedInProfilePosition type: has_one via: currentPosition - from: LinkedInProfile to: LinkedInProfilePosition type: has_many via: positions - from: LinkedInProfile to: LinkedInProfileEducation type: has_many via: education - from: LinkedInProfileResponse to: LinkedInProfile type: has_one via: data - from: LinkedInProfileResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: LinkedInSearchResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: LinkedInPost to: LinkedInPostAuthor type: has_one via: author - from: LinkedInPostsResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: LinkedInReadResponse to: PublicCreditsResponseMeta type: has_one via: meta - from: AccountCreditSummary to: AccountAcuSummary type: has_one via: acu - from: AccountCreditsResponse to: PublicResponseMeta type: has_one via: meta - from: AccountUsageResponse to: PublicResponseMeta type: has_one via: meta - from: AccountKeyRevocationResponse to: PublicResponseMeta type: has_one via: meta - from: AccountProfileResponse to: AccountProfile type: has_one via: data - from: AccountProfileResponse to: PublicResponseMeta type: has_one via: meta - from: LinkedInSearchRequest to: LinkedInSearchFilters type: has_one via: filters - from: MonitorPlan to: MonitorTarget type: has_many via: targets - from: MonitorCompileRequest to: MonitorOutput type: has_one via: output - from: MonitorCreateRequest to: MonitorOutput type: has_one via: output - from: MonitorCreateRequest to: MonitorPlan type: has_one via: plan - from: MonitorUpdateRequest to: MonitorOutput type: has_one via: output - from: MonitorUpdateRequest to: MonitorPlan type: has_one via: plan - from: MonitorCompilation to: MonitorPlan type: has_one via: plan - from: Monitor to: MonitorTarget type: has_many via: targets - from: MonitorRun to: Monitor type: belongs_to via: monitor_id - from: MonitorItem to: Monitor type: belongs_to via: monitor_id