generated: '2026-09-04' method: derived source: openapi/_original/apicontext-apimetrics-openapi.json note: 'Entity graph derived mechanically from the published contract: every components.schemas object that carries an identifier field is treated as an entity, and every $ref from one entity into another is a relationship, typed has_many when the referencing property is an array. 560 schemas are declared; the 60 largest entities are listed. Identifier convention is version-split — the /api/2 surface uses opaque datastore keys named *_key_str (test_key_str, hook_key_str, result_key_str, sc_key_str) while /api/3 uses *_id (monitor_id, workflow_id, webhook_id, org_id, project_id). Project is the ownership root: the docs state that calls, authentication settings, insights and results are all owned by a Project.' root_entity: Project id_conventions: - surface: /api/2 pattern: '*_key_str' examples: - test_key_str - hook_key_str - result_key_str - sc_key_str - web_hook_key_str - surface: /api/3 pattern: '*_id' examples: - monitor_id - workflow_id - webhook_id - org_id - project_id - result_id - downtime_id entity_count: 203 schema_count: 560 relationship_count: 200 entities: - name: UserResponse id_fields: - api_auth_key - authy_id - id properties: 28 - name: WebhookParameters id_fields: - api_key - app_key - call_id - component_id - integration_id - integration_key - page_id - routing_key - token_id - user_key - workflow_id properties: 26 - name: InsightsReportApi id_fields: - call_id - id - project_id properties: 19 - name: ResultSynopsisMeta id_fields: - call_id - id - location_id - project_id properties: 18 - name: ReadAgentResponse id_fields: - id properties: 17 - name: CertificateMetadata id_fields: - id properties: 14 - name: RankResult id_fields: - id - insights_id properties: 14 - name: WorkflowResultMeta id_fields: - location_id - schedule_id - workflow_id properties: 13 - name: CallMetaResponse id_fields: - project_id properties: 12 - name: DiagnosticsGroup id_fields: - top_location_id properties: 12 - name: HookResponse id_fields: - id - project_id - target_id properties: 12 - name: NotificationResponse id_fields: - call_id - id - result_id - worfklow_id - worfklow_result_id properties: 12 - name: OrgResponse id_fields: - billing_admin_id - id properties: 12 - name: AccountInviteResponse id_fields: - id - org_id - project_id properties: 11 - name: InviteResponse id_fields: - id - org_id - project_id properties: 11 - name: EditableWebHookBody id_fields: - monitor_id properties: 10 - name: ProjectCall id_fields: - test_id properties: 10 - name: ProjectResponse id_fields: - id - org_id properties: 10 - name: _StatItem id_fields: - location_id properties: 10 - name: ApiWebHookMeta id_fields: - call_id properties: 9 - name: AuthConfigMeta id_fields: - project_id properties: 9 - name: OrgSlowCallMonthly id_fields: - project_id - test_id properties: 9 - name: WebHookMeta id_fields: - call_id properties: 9 - name: WorkflowRunPayload id_fields: - api_location_id - location_id - mcp_location_id - workflow_id - workflow_result_id - www_location_id properties: 9 - name: _FileMeta id_fields: - project_id properties: 9 - name: _StatListMeta id_fields: - call_id - location_id properties: 9 - name: api3__monitors__mcp__api_models__CreateRequest id_fields: - auth_id - token_id properties: 9 - name: api3__monitors__mcp__api_models__UpdateRequest id_fields: - auth_id - token_id properties: 9 - name: CallMeta id_fields: - project_id properties: 9 - name: AccountProjectAccessResponse id_fields: - account_id - id - role_id properties: 8 - name: ApiKeyResponse id_fields: - account_id - api_key - id - project_id properties: 8 - name: CallRequestResponse id_fields: - auth_id - file_id - token_id properties: 8 - name: ReportMetaResponse id_fields: - project_id properties: 8 - name: SessionRow id_fields: - location_id - monitor_id - result_id properties: 8 - name: SubDetail id_fields: - org_id properties: 8 - name: TokenMeta id_fields: - auth_id properties: 8 - name: _CallCreateRequest id_fields: - auth_id - file_id - token_id properties: 8 - name: _CallUpdateRequest id_fields: - auth_id - file_id - token_id properties: 8 - name: _RequestRepr id_fields: - auth_id - file_id - token_id properties: 8 - name: api3__billing__models__SubInfo id_fields: - org_id properties: 8 - name: api3__certificates__api_models__CreateRequest id_fields: - private_key properties: 8 - name: api3__certificates__api_models__UpdateRequest id_fields: - private_key properties: 8 - name: CallRequest id_fields: - auth_id - file_id - token_id properties: 8 - name: AuthMeta id_fields: - project_id properties: 8 - name: AccountAccessResponse id_fields: - account_id - id properties: 7 - name: AccountProjectsMeta id_fields: - account_id - current_project_id properties: 7 - name: DowntimeMetaResponse id_fields: - org_id - project_id - schedule_id properties: 7 - name: JsonPathRegexRule id_fields: - id properties: 7 - name: JsonPathSubstringRule id_fields: - id properties: 7 - name: JsonPathValueRule id_fields: - id properties: 7 - name: OrgSlowCallDaily id_fields: - project_id properties: 7 - name: ProjectSloResponse id_fields: - project_id properties: 7 - name: ReadIntegration id_fields: - id properties: 7 - name: ServiceAccountMeta id_fields: - account_id - org_id properties: 7 - name: VariableEntry id_fields: - id properties: 7 - name: api2__account__billing__QuotaResponse id_fields: - billing_admin_id properties: 7 - name: api2__projects__proj_access__ProjectAccessResponse id_fields: - account_id - id properties: 7 - name: api3__monitors__common__api_models__PerformanceMeta_Metric___1 id_fields: - monitor_id properties: 7 - name: api3__monitors__common__api_models__PerformanceMeta_Metric___2 id_fields: - monitor_id properties: 7 - name: api3__monitors__common__api_models__PerformanceMeta_Metric___3 id_fields: - monitor_id properties: 7 relationships: - from: AccountAccessResponse to: ProjectResponse kind: has_one via: project - from: AccountProjectAccessResponse to: ProjectResponse kind: has_one via: project - from: AccountProjectsMeta to: AccountInviteResponse kind: has_many via: invites - from: AgentResponse to: _AgentMeta kind: has_one via: meta - from: AgentResponse to: _AgentDetails kind: has_one via: agent - from: ApiWebHook to: ApiWebHookMeta kind: has_one via: meta - from: ApiWebHook to: EmailWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: EmailTextWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: EmailTemplateWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: GenericWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ApimetricsApiWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ApimetricsWorkflowWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ApimetricsTokenWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: SlackWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: PagerDutyWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: PagerDutyV2WebHookSpec kind: has_one via: webhook - from: ApiWebHook to: BigPandaWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: VictoropsWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: HipchatWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: MsteamsWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: NonameWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: NewrelicWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: DatadogWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: DatadogeventWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: DatadogintegrationWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: StatuspageWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: FlowdockWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: OpsgenieWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: OpsgenieeuWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: OpenTelemetryWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: OpenTelemetryAxiomWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: HydrolixWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceAxiomWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceDatadogWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceEmailWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceGenericWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceOpentelemetryWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceSlackWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceSummaryEmailWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceSummaryGenericWebHookSpec kind: has_one via: webhook - from: ApiWebHook to: ConformanceSummarySlackWebHookSpec kind: has_one via: webhook - from: AuthConfigMeta to: AuthDocumentation kind: has_one via: documentation - from: AuthConfigResponse to: AuthConfigMeta kind: has_one via: meta - from: AuthConfigResponse to: AuthConfigSettings kind: has_one via: settings - from: AuthConfigResponse to: AuthConfigKeys kind: has_one via: keys - from: BillingResult to: api2__account__billing__SubInfo kind: has_one via: sub_info - from: BrowserTestSetupRepr to: models__browser_call___MetaRepr kind: has_one via: meta - from: BrowserTestSetupRepr to: models__browser_call___SetupRepr kind: has_one via: setup - from: CallRequestResponse to: CallParameterResponse kind: has_many via: parameters - from: CallRequestResponse to: CallParameterResponse kind: has_many via: headers - from: CallResponse to: CallMetaResponse kind: has_one via: meta - from: CallResponse to: CallRequestResponse kind: has_one via: request - from: CertificateMetadata to: IntendedUse kind: has_one via: intended_use - from: CertificateMetadata to: KidAlg kind: has_one via: kid_alg - from: ConditionsResponse to: ConditionalModel kind: has_many via: conditions - from: ConditionsResponse to: ConditionsMeta kind: has_one via: meta - from: DiagnosticsGroup to: GroupKey kind: has_one via: key - from: DiagnosticsGroup to: RecordCount kind: has_many via: a_records - from: DiagnosticsGroup to: RecordCount kind: has_many via: cname_records - from: DiagnosticsGroup to: RecordCount kind: has_many via: ns_servers - from: DnsDiagnosticsMeta to: GroupByDimension kind: has_many via: group_by - from: DowntimeResponse to: DowntimeMetaResponse kind: has_one via: meta - from: DowntimeResponse to: DowntimeBodyResponse kind: has_one via: schedule - from: EditableWebHookBody to: WebHookType kind: has_one via: web_hook_type - from: EditableWebHookBody to: AlertCondition kind: has_many via: alerts - from: JsonPathGroupRule to: JsonPathValueRule kind: has_many via: sub_rules - from: JsonPathGroupRule to: JsonPathRegexRule kind: has_many via: sub_rules - from: JsonPathGroupRule to: JsonPathSubstringRule kind: has_many via: sub_rules - from: JsonPathGroupRule to: JsonPathCountRule kind: has_many via: sub_rules - from: McpTestSetupRepr to: models__mcp_test_setup___MetaRepr kind: has_one via: meta - from: McpTestSetupRepr to: models__mcp_test_setup___SetupRepr kind: has_one via: setup - from: ProjectRoleResponse to: ProjectResponse kind: has_one via: project - from: ProjectRollupResponse to: OrgSynopsisTimings kind: has_one via: timings - from: ProjectRollupResponse to: OrgSynopsisResultCounts kind: has_one via: result_counts - from: ProjectRollupResponse to: OrgSynopsisInsights kind: has_one via: insights - from: ProjectRollupResponse to: ProjectSloResponse kind: has_one via: slos - from: ProjectSloResponse to: ServiceLevelObjectiveResponse kind: has_many via: objectives - from: ProjectSloResponse to: ThresholdResponse kind: has_many via: thresholds - from: ReportResponse to: ReportMetaResponse kind: has_one via: meta - from: ReportResponse to: ReportAccessResponse kind: has_one via: access - from: ReportResponse to: ReportGroupResponse kind: has_many via: groups - from: ResultDetailResponse to: ResultDetailMeta kind: has_one via: meta - from: ResultSynopsisItem to: ResultSynopsisMeta kind: has_one via: meta - from: ResultSynopsisItem to: ResultSynopsisTiming kind: has_one via: timing - from: ScheduleResponse to: ScheduleMetaResponse kind: has_one via: meta - from: ScheduleResponse to: ScheduleBodyResponse kind: has_one via: schedule - from: ServiceAccountCreateResponse to: ServiceAccountMeta kind: has_one via: meta - from: ServiceAccountCreateResponse to: ServiceAccountSpec kind: has_one via: service_account - from: ServiceAccountResponse to: ServiceAccountMeta kind: has_one via: meta - from: ServiceAccountResponse to: ServiceAccountSpec kind: has_one via: service_account - from: SessionRow to: ResultCategory kind: has_one via: result_category - from: SessionRow to: api3__monitors__browser__stats__api_models__Metric kind: has_one via: metrics - from: StoredVariableResponse to: _VariableMeta kind: has_one via: meta - from: StoredVariableResponse to: _StoredVariablePayload kind: has_one via: setting_variable - from: TestSetup2Repr to: models__call___MetaRepr kind: has_one via: meta - from: TestSetup2Repr to: _RequestRepr kind: has_one via: request - from: TokenResponse to: TokenMeta kind: has_one via: meta - from: TokenResponse to: TokenData kind: has_one via: token - from: UsageCountsResponse to: MonthlyResultCounts kind: has_many via: months - from: VariableResponse to: VariableMeta kind: has_one via: meta - from: VariableResponse to: VariableFields kind: has_one via: workspace_variable - from: WebHookResponse to: WebHookMeta kind: has_one via: meta - from: WebHookResponse to: WebHookBody kind: has_one via: webhook - from: WorkflowResponse to: WorkflowMetaResponse kind: has_one via: meta - from: WorkflowResponse to: WorkflowDataResponse kind: has_one via: workflow - from: WorkflowResultResponse to: WorkflowResultMeta kind: has_one via: meta - from: WorkflowResultResponse to: WorkflowSubResult kind: has_many via: results - from: WorkspaceResponse to: WorkspaceMeta kind: has_one via: meta - from: WorkspaceResponse to: WorkspaceFields kind: has_one via: workspace - from: _CallCreateRequest to: CallParameterResponse kind: has_many via: parameters - from: _CallCreateRequest to: CallParameterResponse kind: has_many via: headers - from: _CallUpdateRequest to: CallParameterResponse kind: has_many via: parameters - from: _CallUpdateRequest to: CallParameterResponse kind: has_many via: headers - from: _FileResponse to: _FileMeta kind: has_one via: meta - from: _RequestRepr to: _TestParameterRepr kind: has_many via: parameters - from: _RequestRepr to: _TestParameterRepr kind: has_many via: headers - from: api2__account__billing__QuotaResponse to: SubDetail kind: has_one via: sub - from: api2__account__billing__QuotaResponse to: QuotaLimits kind: has_one via: quotas - from: api2__account__billing__QuotaResponse to: QuotaCounts kind: has_one via: counts - from: api2__projects__proj_access__ProjectAccessResponse to: ProjectResponse kind: has_one via: project - from: api3__certificates__api_models__CreateRequest to: IntendedUse kind: has_one via: intended_use - from: api3__certificates__api_models__CreateRequest to: KidAlg kind: has_one via: kid_alg - from: api3__certificates__api_models__UpdateRequest to: IntendedUse kind: has_one via: intended_use - from: api3__certificates__api_models__UpdateRequest to: KidAlg kind: has_one via: kid_alg - from: api3__monitors__common__api_models__PerformanceGroup_Metric___1 to: GroupKey kind: has_one via: key - from: api3__monitors__common__api_models__PerformanceGroup_Metric___1 to: MetricAggregate kind: has_one via: metrics - from: api3__monitors__common__api_models__PerformanceGroup_Metric___1 to: api3__monitors__api__stats__api_models__Metric kind: has_one via: metrics - from: api3__monitors__common__api_models__PerformanceGroup_Metric___2 to: GroupKey kind: has_one via: key - from: api3__monitors__common__api_models__PerformanceGroup_Metric___2 to: MetricAggregate kind: has_one via: metrics - from: api3__monitors__common__api_models__PerformanceGroup_Metric___2 to: api3__monitors__browser__stats__api_models__Metric kind: has_one via: metrics - from: api3__monitors__common__api_models__PerformanceGroup_Metric___3 to: GroupKey kind: has_one via: key - from: api3__monitors__common__api_models__PerformanceGroup_Metric___3 to: MetricAggregate kind: has_one via: metrics - from: api3__monitors__common__api_models__PerformanceGroup_Metric___3 to: api3__monitors__mcp__stats__api_models__Metric kind: has_one via: metrics - from: api3__monitors__common__api_models__PerformanceMeta_Metric___1 to: api3__monitors__api__stats__api_models__Metric kind: has_many via: metrics - from: api3__monitors__common__api_models__PerformanceMeta_Metric___1 to: Measure kind: has_many via: measures - from: api3__monitors__common__api_models__PerformanceMeta_Metric___1 to: GroupByDimension kind: has_many via: group_by - from: api3__monitors__common__api_models__PerformanceMeta_Metric___2 to: api3__monitors__browser__stats__api_models__Metric kind: has_many via: metrics - from: api3__monitors__common__api_models__PerformanceMeta_Metric___2 to: Measure kind: has_many via: measures - from: api3__monitors__common__api_models__PerformanceMeta_Metric___2 to: GroupByDimension kind: has_many via: group_by - from: api3__monitors__common__api_models__PerformanceMeta_Metric___3 to: api3__monitors__mcp__stats__api_models__Metric kind: has_many via: metrics - from: api3__monitors__common__api_models__PerformanceMeta_Metric___3 to: Measure kind: has_many via: measures - from: api3__monitors__common__api_models__PerformanceMeta_Metric___3 to: GroupByDimension kind: has_many via: group_by - from: api3__monitors__mcp__api_models__CreateRequest to: McpListToolsStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpCallToolStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpListResourcesStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpListResourceTemplatesStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpReadResourceStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpListPromptsStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpGetPromptStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__CreateRequest to: McpWaitStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpListToolsStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpCallToolStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpListResourcesStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpListResourceTemplatesStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpReadResourceStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpListPromptsStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpGetPromptStepRepr kind: has_many via: steps - from: api3__monitors__mcp__api_models__UpdateRequest to: McpWaitStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpListToolsStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpCallToolStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpListResourcesStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpListResourceTemplatesStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpReadResourceStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpListPromptsStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpGetPromptStepRepr kind: has_many via: steps - from: models__mcp_test_setup___SetupRepr to: McpWaitStepRepr kind: has_many via: steps - from: CallMeta to: KeyStr kind: has_one via: project_id - from: CallRequest to: ParameterList kind: has_one via: parameters - from: CallRequest to: ParameterList kind: has_one via: headers - from: CallRequest to: NullableKeyStr kind: has_one via: auth_id - from: CallRequest to: NullableKeyStr kind: has_one via: token_id - from: CallRequest to: NullableKeyStr kind: has_one via: file_id - from: CallRunOutput to: KeyStr kind: has_one via: call_id - from: CallRunOutput to: KeyStr kind: has_one via: result_id - from: ScheduleMeta to: KeyStr kind: has_one via: project_id - from: WebhookParameters to: NullableKeyStr kind: has_one via: workflow_id - from: WebhookParameters to: NullableKeyStr kind: has_one via: call_id - from: WebhookParameters to: NullableKeyStr kind: has_one via: token_id - from: AuthMeta to: AuthDocumentation kind: has_one via: documentation - from: AuthMeta to: KeyStr kind: has_one via: project_id - from: ResultOutput to: KeyStr kind: has_one via: id - from: ResultOutput to: KeyStr kind: has_one via: test - from: PassFailStats to: KeyStr kind: has_one via: id - from: FileMeta to: KeyStr kind: has_one via: project_id - from: FileOutput to: KeyStr kind: has_one via: id - from: FileOutput to: FileMeta kind: has_one via: meta - from: IncidentOutput to: KeyStr kind: has_one via: id - from: IncidentOutput to: KeyStr kind: has_one via: meta - from: ReportOutput to: KeyStr kind: has_one via: id - from: ReportOutput to: KeyStr kind: has_one via: meta - from: WorkflowOutput to: KeyStr kind: has_one via: id - from: WorkflowOutput to: KeyStr kind: has_many via: meta - from: WorkflowOutput to: KeyStr kind: has_many via: workflow - from: AgentOutput to: KeyStr kind: has_one via: id - from: AgentOutput to: KeyStr kind: has_one via: meta - from: AuditOutput to: KeyStr kind: has_one via: id - from: AuditOutput to: KeyStr kind: has_one via: resource_key - from: ProjectOutput to: KeyStr kind: has_one via: id - from: ApiKeyOutput to: KeyStr kind: has_one via: id - from: ListMeta to: KeyStr kind: has_one via: project_id