africanmarketos-com · Schema
DecisionCheckRequest
CompanyMarket IntelligenceAI AgentsAPIAfrican Markets
Properties
| Name | Type | Description |
|---|---|---|
| attestation_refs | array | Case-bound reviewer assertions, not proof, scoring or permission. Keep bearer references host-private; reattach only for the same case. |
| review_case_ref | object | Host-private, case-bound read reference. Never put its secret into prompts, URLs, logs or exports. Grants no write or action authority. |
| passage_interpretations | array | Attributed model readings of claim_review.interpretation_tasks. They route review and never set a value. |
| claims | array | Optional explicit target claims and source-specific support links. Reuses the governed claim-audit vocabulary. Public links are caller declarations, never authenticated reviewer attestations. |
| target_claim | string | |
| target_use | string | |
| requested_use | string | |
| decision_use | string | |
| output_use | string | |
| decision_stage | string | |
| decision_context | string | |
| analysis_date | string | Declared analysis calendar date or ISO timestamp with timezone. No later than today in analysis_timezone. |
| analysis_timezone | string | IANA analysis timezone; defaults to UTC. |
| context_freshness_window_days | integer | Caller-declared maximum evidence age, not a calibrated universal cutoff. |
| entity_name | string | |
| entity_archetype | string | |
| country | string | |
| sector | string | |
| use_case | string | |
| maturity_level | string | |
| workflow_id | string | Caller-carried operational correlation only, not authenticated lineage or authority. |
| workflow_expires_at | string | |
| mode | string | |
| sensitivity | boolean | Optional bounded pre-kernel scoring diagnostics: item removal, fixed 1/3/5-point adverse-value changes and one-item cap-to-20 scenario. Does not retest authorization, prove robustness or authenticate |
| case_type | string | Use a canonical case type. market_entry is an accepted compatibility alias for greenfield_entry and is disclosed as the original input in internal audit metadata. |
| subject | object | |
| market_scope | object | |
| stakeholder_scope | array | |
| evidence_pack | array | |
| compiled_pack | object | |
| unit_economics | objectnull | |
| financial_context | objectnull | |
| competitive_context | objectnull | |
| behavioral_signals | objectnull | |
| operational_readiness | objectnull | |
| sentiment_velocity | objectnull | |
| network_economics | objectnull | Presence-only declared context in the current kernel; no metric keys are independently evaluated. |
| b2b_context | objectnull | Presence-only declared context in the current kernel; no procurement authorization is inferred. |
| scaling_physics | objectnull | |
| market_education_profile | objectnull | |
| mvr_scores | object | |
| case_id | string | |
| allow_non_decisive_operator_review | boolean | |
| baseline_period | string | |
| backtest_window | object | |
| sector_metrics | objectnull | |
| project_id | string | Tenant/workspace project context. Equivalent to subject.project_id; conflicting identifiers are rejected. Memory never supplies evidence or permission. |
| use_project_memory | boolean | Defaults to true when a project ID is supplied. Set false to disable contextual defaults. |
| project_memory | boolean | Compatibility alias for use_project_memory; either false disables loading. |
| backtest_mode | boolean | When true, response echoes backtest_mode and optional t0_date for replay transparency. |
| t0_date | string | Backtest as-of date echoed when backtest_mode is true. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/africanmarketos-com/json-schema/africanmarketos-com-decision-check-request-schema.json",
"title": "DecisionCheckRequest",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/africanmarketos-com-openapi.yml#/components/schemas/DecisionCheckRequest",
"type": "object",
"not": {
"required": [
"evidence_pack",
"compiled_pack"
]
},
"properties": {
"attestation_refs": {
"type": "array",
"maxItems": 3,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"attestation_id",
"tenant_id",
"workspace_id",
"reference_secret"
],
"properties": {
"attestation_id": {
"type": "string",
"pattern": "^ATT-[a-f0-9]{64}$"
},
"tenant_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"workspace_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reference_secret": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"writeOnly": true,
"description": "256-bit random bearer secret. Keep host-private, out of URLs/logs/prompts/exports; grants shared context, not authority."
}
}
},
"description": "Case-bound reviewer assertions, not proof, scoring or permission. Keep bearer references host-private; reattach only for the same case."
},
"review_case_ref": {
"type": "object",
"additionalProperties": false,
"required": [
"case_id",
"tenant_id",
"workspace_id",
"reference_secret"
],
"properties": {
"case_id": {
"type": "string",
"pattern": "^RC-[a-f0-9]{64}$"
},
"tenant_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"workspace_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"reference_secret": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"writeOnly": true
}
},
"description": "Host-private, case-bound read reference. Never put its secret into prompts, URLs, logs or exports. Grants no write or action authority."
},
"passage_interpretations": {
"type": "array",
"maxItems": 40,
"description": "Attributed model readings of claim_review.interpretation_tasks. They route review and never set a value.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"task_id",
"stance",
"source",
"attribution"
],
"properties": {
"task_id": {
"type": "string",
"pattern": "^PT-[a-f0-9]{48}$"
},
"stance": {
"enum": [
"supports",
"qualifies",
"adverse",
"unrelated"
]
},
"source": {
"enum": [
"model"
]
},
"attribution": {
"type": "object",
"required": [
"provider",
"model",
"model_version",
"prompt_sha256",
"output_sha256"
]
}
}
}
},
"claims": {
"type": "array",
"description": "Optional explicit target claims and source-specific support links. Reuses the governed claim-audit vocabulary. Public links are caller declarations, never authenticated reviewer attestations.",
"items": {
"type": "object",
"required": [
"claim_id",
"claim"
],
"properties": {
"claim_id": {
"type": "string",
"description": "Opaque claim identifier."
},
"claim": {
"type": "string",
"description": "Minimal public-safe target proposition."
},
"support_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"claim_id",
"evidence_id",
"relationship",
"locator"
],
"properties": {
"claim_id": {
"type": "string",
"description": "Must match the containing claim."
},
"evidence_id": {
"type": "string",
"description": "Must identify an item in this complete evidence pack."
},
"relationship": {
"type": "string",
"enum": [
"direct_support",
"qualifies",
"contradicts",
"context_only"
]
},
"locator": {
"type": "string",
"description": "Specific page, cell or section. A locator is not proof."
},
"review_event_id": {
"type": "string",
"description": "Only the licensed review service can check this event; ignored as authority by public preflight."
}
}
}
}
}
}
},
"target_claim": {
"type": "string"
},
"target_use": {
"type": "string"
},
"requested_use": {
"type": "string"
},
"decision_use": {
"type": "string"
},
"output_use": {
"type": "string"
},
"decision_stage": {
"type": "string"
},
"decision_context": {
"type": "string"
},
"analysis_date": {
"type": "string",
"description": "Declared analysis calendar date or ISO timestamp with timezone. No later than today in analysis_timezone."
},
"analysis_timezone": {
"type": "string",
"description": "IANA analysis timezone; defaults to UTC."
},
"context_freshness_window_days": {
"type": "integer",
"minimum": 1,
"description": "Caller-declared maximum evidence age, not a calibrated universal cutoff."
},
"entity_name": {
"type": "string"
},
"entity_archetype": {
"type": "string"
},
"country": {
"type": "string"
},
"sector": {
"type": "string"
},
"use_case": {
"type": "string"
},
"maturity_level": {
"type": "string",
"enum": [
"startup",
"mature",
"scaled",
"seed"
]
},
"workflow_id": {
"type": "string",
"pattern": "^MVRWF-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
"description": "Caller-carried operational correlation only, not authenticated lineage or authority."
},
"workflow_expires_at": {
"type": "string"
},
"mode": {
"type": "string",
"enum": [
"exploratory",
"evidence_backed",
"score_direct",
"compiled_evidence",
"backtest",
"backtest_demo",
"synthetic_fixture"
]
},
"sensitivity": {
"type": "boolean",
"default": false,
"description": "Optional bounded pre-kernel scoring diagnostics: item removal, fixed 1/3/5-point adverse-value changes and one-item cap-to-20 scenario. Does not retest authorization, prove robustness or authenticate evidence. Public output exposes a privacy-minimized sensitivity_summary."
},
"case_type": {
"type": "string",
"enum": [
"greenfield_entry",
"partnership_trust_transfer",
"scaling",
"test_market",
"fmcg_rollout",
"channel_choice",
"startup_readiness",
"market_entry"
],
"description": "Use a canonical case type. market_entry is an accepted compatibility alias for greenfield_entry and is disclosed as the original input in internal audit metadata."
},
"subject": {
"type": "object",
"properties": {
"entity_name": {
"type": "string"
},
"entity_id": {
"type": "string"
},
"name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"entity_archetype": {
"type": "string"
},
"category": {
"type": "string"
},
"country": {
"type": "string"
},
"sector": {
"type": "string"
},
"maturity": {
"type": "string"
},
"project_id": {
"type": "string"
}
},
"additionalProperties": true
},
"market_scope": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"region": {
"type": "string"
},
"city": {
"type": "string"
},
"district": {
"type": "string",
"pattern": "\\S"
},
"districts": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\S"
}
},
"decision_scope_level": {
"type": "string",
"enum": [
"country",
"subnational"
],
"description": "Explicit decision extent. Alternatively supply district(s). Subnational scope also requires local geography. Do not relabel or widen the decision to pass."
},
"town_or_zone": {
"type": "string"
},
"micro_context": {
"type": "string"
},
"corridor": {
"type": "string"
},
"sector": {
"type": "string"
},
"analysis_date": {
"type": "string"
},
"geo_match_tolerance": {
"type": "string",
"enum": [
"strict",
"same_city",
"region",
"country"
],
"default": "strict",
"description": "Declare the actual decision geography. Do not widen it to obtain a verdict."
}
},
"additionalProperties": true
},
"stakeholder_scope": {
"type": "array",
"items": {
"type": "string",
"enum": [
"agent",
"anchor_customer",
"bank_lender",
"beneficiary",
"board",
"board_member",
"chama_member",
"channel_gatekeeper",
"chief",
"civil_society_org",
"clinic",
"community_guardian",
"community_leader",
"competitor",
"competitors",
"consumer",
"cooperative_member",
"court",
"courts",
"creditor",
"creditors",
"customary_land_authority",
"customer",
"customs",
"customs_authority",
"distributor",
"donor",
"donor_guardian",
"enumerator",
"farmer",
"field_agent",
"field_supervisor",
"gatekeeper",
"guarantor",
"guardian",
"guardian_node",
"implementing_partner",
"incumbent",
"incumbent_competitor",
"incumbents",
"influencer",
"informal_logistics",
"informal_logistics_partner",
"institutional_guardian",
"internal_operations",
"internal_operator",
"investor",
"investor_board",
"investors",
"journalist",
"journalists",
"judiciary",
"judiciary_court",
"labor_union",
"labour_union",
"land_custodian",
"land_owner",
"landlord",
"landowner",
"lender",
"lender_creditor",
"lenders",
"market_queen",
"media",
"media_press",
"member",
"micro_logistics",
"mobile_money_agent",
"organized_labour",
"platform_partner",
"political_guardian",
"press",
"public_official",
"regulator",
"regulatory_body",
"religious_leader",
"research_respondent_group",
"retail_partner",
"retailer",
"retailer_partner",
"revenue_authority",
"sacco_member",
"school",
"service_provider",
"shareholder",
"shareholders",
"supplier",
"suppliers",
"tax_authority",
"tax_revenue_authority",
"teacher",
"traditional_chief",
"union",
"upstream_supplier",
"upstream_vendor",
"vc",
"vendor",
"vendors",
"venture_capital",
"worker_association",
"works_council"
]
}
},
"evidence_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"compiled_pack": {
"type": "object",
"properties": {
"public_reality_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"telemetry_proxy_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"localized_observed_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"survey_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"retail_audit_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"ngo_program_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"evaluation_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"administrative_data_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"partner_network_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
},
"social_listening_pack": {
"type": "array",
"items": {
"$ref": "#/$defs/EvidenceItem"
}
}
}
},
"unit_economics": {
"type": [
"object",
"null"
],
"properties": {
"ltv_cac_ratio": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
},
"cac_ltv_ratio": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
},
"payback_period_months": {
"type": [
"number",
"null"
],
"minimum": 0
},
"gross_margin_percent": {
"type": [
"number",
"null"
],
"minimum": -100,
"maximum": 100
},
"capital_runway_months": {
"type": [
"number",
"null"
],
"minimum": 0
},
"monthly_burn_usd": {
"type": [
"number",
"null"
],
"minimum": 0,
"not": {
"maximum": 0
}
},
"cash_conversion_cycle_days": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 730
},
"data_confidence": {
"type": [
"string",
"null"
],
"enum": [
"audited_financials",
"projected",
"management_estimate"
]
}
},
"additionalProperties": true
},
"financial_context": {
"type": [
"object",
"null"
],
"properties": {
"runway_months": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1200
},
"ltv_cac_ratio": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
},
"gross_margin_pct": {
"type": [
"number",
"null"
],
"minimum": -100,
"maximum": 100
},
"monthly_burn_local_currency": {
"type": [
"number",
"null"
],
"minimum": 0
}
},
"additionalProperties": true
},
"competitive_context": {
"type": [
"object",
"null"
],
"properties": {
"incumbent_share_pct": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
},
"switching_cost_index_0_100": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
},
"price_war_risk": {
"type": [
"string",
"null"
],
"enum": [
"low",
"moderate",
"high",
"extreme"
]
}
},
"additionalProperties": true
},
"behavioral_signals": {
"type": [
"object",
"null"
],
"properties": {
"monthly_churn_rate": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
},
"dau": {
"type": [
"number",
"null"
],
"minimum": 0
}
},
"additionalProperties": true
},
"operational_readiness": {
"type": [
"object",
"null"
],
"properties": {
"sla_uptime_pct_90d": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": true
},
"sentiment_velocity": {
"type": [
"object",
"null"
],
"properties": {
"delta_trust": {
"type": [
"number",
"null"
],
"minimum": -100,
"maximum": 100
},
"delta_permission": {
"type": [
"number",
"null"
],
"minimum": -100,
"maximum": 100
}
},
"additionalProperties": true
},
"network_economics": {
"type": [
"object",
"null"
],
"additionalProperties": true,
"description": "Presence-only declared context in the current kernel; no metric keys are independently evaluated."
},
"b2b_context": {
"type": [
"object",
"null"
],
"additionalProperties": true,
"description": "Presence-only declared context in the current kernel; no procurement authorization is inferred."
},
"scaling_physics": {
"type": [
"object",
"null"
],
"properties": {
"expected_embeddedness_decay_at_scale_pct": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": true
},
"market_education_profile": {
"type": [
"object",
"null"
],
"properties": {
"phase": {
"type": [
"string",
"null"
],
"enum": [
"discovery",
"education",
"early_adoption",
"mainstream"
]
}
},
"additionalProperties": true
},
"mvr_scores": {
"type": "object",
"properties": {
"executive": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
{
"type": "number",
"minimum": 0,
"maximum": 100
}
],
"description": "Prefer dimension-keyed scores. Legacy bounded scalar executive score is normalized separately and cannot fill missing evidence dimensions."
},
"dimensions": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"permission": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"trust": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"belonging": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"embeddedness": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"reciprocity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"cultural_fit": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"guardian_strength": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"continuity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"channel_permission": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"infrastructural_intimacy": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"absence_sensitivity": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"narrative_looping": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"whispered_credibility": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"fractal_trust": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"cultural_calibration": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": true
},
"case_id": {
"type": "string"
},
"allow_non_decisive_operator_review": {
"type": "boolean"
},
"baseline_period": {
"type": "string",
"enum": [
"12m",
"24m",
"36m"
]
},
"backtest_window": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "ISO calendar date or timestamp."
},
"end": {
"type": "string",
"description": "ISO calendar date or timestamp."
}
},
"additionalProperties": true,
"required": [
"start",
"end"
]
},
"sector_metrics": {
"type": [
"object",
"null"
],
"properties": {
"sector": {
"type": "string",
"maxLength": 96
},
"metrics": {
"type": "object",
"maxProperties": 60,
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
],
"nullable": true
}
}
},
"additionalProperties": true,
"required": [
"metrics"
]
},
"project_id": {
"type": "string",
"minLength": 1,
"description": "Tenant/workspace project context. Equivalent to subject.project_id; conflicting identifiers are rejected. Memory never supplies evidence or permission."
},
"use_project_memory": {
"type": "boolean",
"description": "Defaults to true when a project ID is supplied. Set false to disable contextual defaults."
},
"project_memory": {
"type": "boolean",
"description": "Compatibility alias for use_project_memory; either false disables loading."
},
"backtest_mode": {
"type": "boolean",
"description": "When true, response echoes backtest_mode and optional t0_date for replay transparency."
},
"t0_date": {
"type": "string",
"description": "Backtest as-of date echoed when backtest_mode is true."
}
},
"$defs": {
"EvidenceItem": {
"type": "object",
"additionalProperties": true,
"description": "Extensible source metadata. Unknown item-level field names receive non-blocking input_interpretation notices on successful licensed evidence responses; acceptance is not proof that a control was evaluated. Suggested names require checking source facts and are never applied automatically. Nested open metadata is not recursively classified by this notice mechanism. Recovery: Codes: FIELD_PROVENANCE_REQUIRED,FIELD_PROVENANCE_CONFLICT,FIELDWORK_CAPACITY_CONTRADICTION,SOURCE_INDEPENDENCE_CONTRADICTION,SOURCE_VERIFICATION_CONTRADICTION,FIELD_SOURCE_MODALITY_CONFLICT,DECISION_GEOGRAPHY_SCOPE_REQUIRED,DECISION_SCOPE_REQUIRED,DECISION_SCOPE_REVIEW_REQUIRED,DECISION_SCOPE_CROSS_CHECK_LIMIT,SOURCE_EXTRACTION_INVALID,SOURCE_EXTRACTION_REFERENCE_CONFLICT,ADVERSE_SOURCE_REVIEW_REQUIRED,INVALID_CLAIM_INPUT,OUTPUT_RECEIPT_NOT_REQUEST_AUTHORITY,ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. HTTP 422: details/validation_errors; fix missing_fields. Never invent facts. These codes do not authenticate sources or authorize action. /docs/mcp-integration.md.",
"x-compatible-item-field-names": [
"provenance",
"privacy",
"modality",
"pack_type",
"source_type",
"source_family",
"source_locator",
"source_hash",
"upstream_source_ids",
"parent_source_ids",
"support_links",
"source_relationship",
"claim_id",
"collected_at",
"submitted_at",
"public_metric_period_end",
"collection_period_start",
"collection_period_end",
"score_scale",
"value_scale",
"scale",
"category",
"subject",
"demographics",
"independence_metadata",
"dependence_metadata",
"independence_group_id",
"dependency_group_id",
"independence_basis",
"event_id",
"dataset_id",
"method_id",
"instrument_id",
"collector_id",
"error_process_id",
"source_review",
"review",
"reviewer_id",
"extraction_method",
"extraction_confidence"
],
"properties": {
"id": {
"type": "string"
},
"evidence_id": {
"type": "string"
},
"claim": {
"type": "string"
},
"load_bearing": {
"type": "boolean"
},
"is_load_bearing": {
"type": "boolean"
},
"source_date": {
"type": "string",
"minLength": 4,
"maxLength": 32,
"description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified. Metadata only: typed scoring still requires an exact freshness date and excludes partial-date or range-bearing items."
},
"source_date_range": {
"type": "object",
"additionalProperties": false,
"required": [
"earliest",
"latest"
],
"properties": {
"earliest": {
"type": "string",
"minLength": 4,
"maxLength": 32,
"description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified."
},
"latest": {
"type": "string",
"minLength": 4,
"maxLength": 32,
"description": "Declared source date at its actual precision: YYYY, YYYY-MM, YYYY-MM-DD, or ISO timestamp with seconds and timezone (up to 6 fractional digits). Years 0001-9999; real calendar dates only. Partial dates describe inclusive calendar bounds, never an invented day. Source truth and current applicability remain unverified."
}
},
"description": "Optional inclusive declared bounds, usable without source_date. Both endpoints must have the same precision and be ordered. Every supplied source_date/freshness_date must contain the whole range; an exact timestamp cannot be widened. Aliases must agree before narrowing. Unknown dates are not clipped to the analysis date. Bounds are declarations, not source verification."
},
"source_url": {
"type": "string"
},
"source_doc_id": {
"type": "string"
},
"sample_size": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "Actual sample for collector-administered evidence, including groups. Sample aliases must agree; never invent counts for documentary or self-administered sources."
},
"population_size": {
"type": "integer",
"minimum": 1
},
"population_definition": {
"type": "string"
},
"sampling_method": {
"type": "string",
"description": "Use census for a declared complete finite population; this does not override weighted sample admission."
},
"is_complete_population": {
"type": "boolean"
},
"census": {
"type": "boolean",
"description": "Alias for is_complete_population. Only literal true with consistent positive integer sample_size = population_size enables the disclosure."
},
"collection_context": {
"type": "object",
"additionalProperties": true,
"description": "Source-grounded collection declarations, not source authentication. Unknown facts must remain missing; do not invent values to pass. Field decision use requires source modality, collector relationship, interview mode, source-document identity and an explicit parent-source list. Collector-administered modes require staffing, duration, available minutes per collector and sample size. Group modes additionally require session_count, participants_per_session, session_duration_minutes and collectors_per_session, never inferred from an individual interview duration. Online, observation and administrative_record modes require collection_administration; self-administered online and automated observation/record sources do not need invented collector capacity. Explicit public/documentary origins are not caller fieldwork solely because evidence_type is survey; conflicting explicit field origins still block. Independent verification labels require a separate reviewer relationship; persisted review is still checked separately.",
"properties": {
"source_modality": {
"type": "string",
"enum": [
"direct_observation",
"documentary",
"secondary_summary",
"unknown"
]
},
"collector_relationship": {
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://artifacts.apis.io/africanmarketos-com/json-schema/africanmarketos-com-decision-check-request-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/africanmarketos-com-decision-check-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.