Zoeken wordt pas geladen wanneer je het gebruikt. Bekijk hieronder alle categorieën.

MCP-tool

Een beoordeeld rapportsjabloon renderen

sosoapi_render_report_template

Maak de renderinvoer van het beoordeelde sjabloon gereed voor de browser of sosoapi report render. Gebruikt de expliciet opgegeven, beoordeelde dataset en versie; de bron wordt niet automatisch vernieuwd. De renderinvoer kan via een pipe worden doorgegeven aan sosoapi report render --output FILE.

Lezen als Markdown

Profielen en transporten

Profielen: full · Transporten: stdio, http

Kies core of full om te bepalen welke tools je client ziet; dit verandert geen machtigingen. Lokale bestandsupload vereist stdio en is niet beschikbaar via HTTP. Stel SOSOAPI_OUTPUT_SCHEMAS=1 in om uitvoerschema's bij detectie op te nemen. Tools geven met en zonder die instelling gestructureerde resultaten terug.

Machtigingen en neveneffecten

Annotaties helpen clients een tool te beschrijven. Elke aanroep controleert nog steeds gebruikersauthenticatie, rol, resourcetoegang en verleende bevoegdheden.

{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}

Invoervelden

Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.

Invoervelden
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
idstringVerplicht in bovenliggend object
  • format: "uuid"
versionintegerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 1000000
datasetobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.contractVersionstringVerplicht in bovenliggend object
  • enum: ["analytics-report/v1"]
dataset.idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.reviewedAtstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.selectionobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.selection.workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.selection.accountIdsarrayVerplicht in bovenliggend object
  • minItems: 1
  • maxItems: 50
dataset.selection.accountIds[]stringOptioneel / item
  • format: "uuid"
dataset.selection.platformsarrayVerplicht in bovenliggend object
  • minItems: 1
  • maxItems: 4
dataset.selection.platforms[]stringOptioneel / item
  • enum: ["facebook","instagram","threads","youtube"]
dataset.selection.startDatestringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.endDatestringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.timezonestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.accountsarrayVerplicht in bovenliggend object
  • maxItems: 50
dataset.accounts[]objectOptioneel / item
  • additionalProperties: false
dataset.accounts[].idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.accounts[].workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.accounts[].platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.accounts[].namestringVerplicht in bovenliggend object
  • maxLength: 500
dataset.accounts[].connectionStatusstringOptioneel / item
  • maxLength: 100
dataset.accounts[].healthMessagestringOptioneel / item
  • maxLength: 1000
dataset.postsarrayVerplicht in bovenliggend object
  • maxItems: 1000
dataset.posts[]objectOptioneel / item
  • additionalProperties: false
dataset.posts[].social_post_idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].social_account_idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].platformstringVerplicht in bovenliggend object
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provider_post_idstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 512
dataset.posts[].provider_published_atstring | nullVerplicht in bovenliggend object—
dataset.posts[].provider_published_atanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.posts[].provider_published_atanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].content_formatstring | nullVerplicht in bovenliggend object—
dataset.posts[].content_formatanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.posts[].content_formatanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].permalinkstring | nullVerplicht in bovenliggend object—
dataset.posts[].permalinkanyOf 1stringVerplicht in bovenliggend object
  • format: "uri"
  • maxLength: 2048
dataset.posts[].permalinkanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provider_statestringVerplicht in bovenliggend object
  • enum: ["available","deleted","unavailable","unknown"]
dataset.posts[].first_seen_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.posts[].last_seen_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.posts[].scheduled_post_idstring | nullVerplicht in bovenliggend object—
dataset.posts[].scheduled_post_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].scheduled_post_idanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provenanceobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.posts[].provenance.providerstringVerplicht in bovenliggend object
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provenance.sourcestringVerplicht in bovenliggend object
  • enum: ["provider_api","provider_webhook","publication_outcome","backfill"]
dataset.posts[].provenance.source_job_idstring | nullVerplicht in bovenliggend object—
dataset.posts[].provenance.source_job_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].provenance.source_job_idanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provenance.provider_api_versionstring | nullVerplicht in bovenliggend object—
dataset.posts[].provenance.provider_api_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.provider_api_versionanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provenance.schema_versionstring | nullVerplicht in bovenliggend object—
dataset.posts[].provenance.schema_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.schema_versionanyOf 2nullVerplicht in bovenliggend object—
dataset.sourcesarrayVerplicht in bovenliggend object
  • maxItems: 30
dataset.sources[]objectOptioneel / item
  • additionalProperties: false
dataset.sources[].accountIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].resourceKindstringVerplicht in bovenliggend object
  • enum: ["account","post"]
dataset.sources[].providerResourceIdstring | nullVerplicht in bovenliggend object—
dataset.sources[].providerResourceIdanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 512
dataset.sources[].providerResourceIdanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].requestIdstring | nullVerplicht in bovenliggend object—
dataset.sources[].requestIdanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].requestIdanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].statusstringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].reasonstring | nullVerplicht in bovenliggend object—
dataset.sources[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 8000
dataset.sources[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelopeobject | nullVerplicht in bovenliggend object—
dataset.sources[].envelopeanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.contract_versionanyOf 1stringVerplicht in bovenliggend object
  • enum: ["provider-insights/v1"]
dataset.sources[].envelope.request_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].envelope.platformanyOf 1stringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].envelope.resourceanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.resource.kindanyOf 1stringVerplicht in bovenliggend object
  • enum: ["account","post"]
dataset.sources[].envelope.resource.social_account_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].envelope.resource.provider_resource_idanyOf 1string | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.provider_api_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.sources[].envelope.fetched_atanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.sources[].envelope.statusanyOf 1stringVerplicht in bovenliggend object
  • enum: ["available","partial","unavailable"]
dataset.sources[].envelope.availabilityanyOf 1arrayVerplicht in bovenliggend object
  • minItems: 1
  • maxItems: 64
dataset.sources[].envelope.availability[]anyOf 1objectOptioneel / item
  • additionalProperties: false
dataset.sources[].envelope.availability[].scopeanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].statusanyOf 1stringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed"]
dataset.sources[].envelope.availability[].reasonanyOf 1stringOptioneel / item
  • minLength: 1
  • maxLength: 2000
dataset.sources[].envelope.availability[].diagnosticsanyOf 1objectOptioneel / item
  • additionalProperties: false
dataset.sources[].envelope.availability[].diagnostics.http_statusanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 599
dataset.sources[].envelope.availability[].diagnostics.failed_stepanyOf 1stringOptioneel / item
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1number | stringOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 1numberOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 2stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1number | stringOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 1numberOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 2stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_typeanyOf 1stringOptioneel / item
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.is_transientanyOf 1booleanOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_request_idanyOf 1stringOptioneel / item
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.accessanyOf 1objectOptioneel / item
  • additionalProperties: false
dataset.sources[].envelope.availability[].diagnostics.access.login_modeanyOf 1stringVerplicht in bovenliggend object
  • enum: ["instagram_login","facebook_login","threads_user"]
dataset.sources[].envelope.availability[].diagnostics.access.provider_hostanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.access.required_permissionsanyOf 1arrayVerplicht in bovenliggend object
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.required_permissions[]anyOf 1stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissionsanyOf 1arrayVerplicht in bovenliggend object
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissions[]anyOf 1stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1array | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 1arrayVerplicht in bovenliggend object
  • maxItems: 128
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissions[]anyOf 1 / anyOf 1stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelope.availability[].diagnostics.access.grant_evidenceanyOf 1stringVerplicht in bovenliggend object
  • enum: ["exact","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.permission_stateanyOf 1stringVerplicht in bovenliggend object
  • enum: ["granted","missing","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.grant_observed_atanyOf 1stringOptioneel / item
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.sources[].envelope.availability[].diagnostics.access.app_accessanyOf 1stringVerplicht in bovenliggend object
  • enum: ["unverified"]
dataset.sources[].envelope.availability[].diagnostics.access.next_stepanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 1500
dataset.sources[].envelope.provider_dataanyOf 1any JSON value | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 1any JSON valueVerplicht in bovenliggend object—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelope.requested_date_rangeanyOf 1object | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.requested_date_range.start_dateanyOf 1 / anyOf 1stringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_range.end_dateanyOf 1 / anyOf 1stringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelope.cacheanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.cache.authoritativeanyOf 1booleanVerplicht in bovenliggend object
  • enum: [false]
dataset.sources[].envelope.cache.statusanyOf 1stringVerplicht in bovenliggend object
  • enum: ["stored","hit","bypassed"]
dataset.sources[].envelope.cache.expires_atanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.sources[].envelopeanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metricsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.sources[].metrics[]objectOptioneel / item
  • additionalProperties: false
dataset.sources[].metrics[].keystringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 150
dataset.sources[].metrics[].definitionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.sources[].metrics[].unitstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.sources[].metrics[].grainstringVerplicht in bovenliggend object
  • enum: ["post","account"]
dataset.sources[].metrics[].valuenumber | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].metrics[].reasonstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 4000
dataset.sources[].metrics[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurementobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].metrics[].measurement.kindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.sources[].metrics[].measurement.periodstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.periodanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.periodanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.startstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.startanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.startanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.endstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.endanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.endanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.timezonestring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.timezoneanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].sourcePathstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 2000
dataset.coverageobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.coverage.populationstringVerplicht in bovenliggend object
  • enum: ["discovered_posts"]
dataset.coverage.postsCompletebooleanVerplicht in bovenliggend object—
dataset.coverage.nextCursorstring | nullVerplicht in bovenliggend object—
dataset.coverage.nextCursoranyOf 1stringVerplicht in bovenliggend object
  • maxLength: 16384
dataset.coverage.nextCursoranyOf 2nullVerplicht in bovenliggend object—
dataset.coverage.postLimitintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 1000
dataset.coverage.postInsightsLimitintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 20
dataset.coverage.omittedPostInsightsintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 9007199254740991
dataset.coverage.notesarrayVerplicht in bovenliggend object
  • maxItems: 50
dataset.coverage.notes[]stringOptioneel / item
  • maxLength: 2000
dataset.customMetricsarrayVerplicht in bovenliggend object
  • maxItems: 50
dataset.customMetrics[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].versionintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].expressionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].definitionstringVerplicht in bovenliggend object
  • maxLength: 1000
dataset.customMetrics[].unitstringVerplicht in bovenliggend object
  • maxLength: 100
dataset.customMetrics[].grainstringVerplicht in bovenliggend object
  • enum: ["post","account","compatible_sum"]
dataset.customMetrics[].roundingobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].rounding.decimalPlacesintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].rounding.modestringVerplicht in bovenliggend object
  • enum: ["half_away_from_zero"]
dataset.customMetrics[].inputsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.customMetrics[].inputs[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].inputs[].requestIdstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].inputs[].requestIdanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].inputs[].requestIdanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].inputs[].sourcePathstringVerplicht in bovenliggend object
  • maxLength: 2000
dataset.customMetrics[].inputs[].valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].inputs[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].reasonstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 4000
dataset.customMetrics[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].formulaobjectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].formula.contractVersionstringVerplicht in bovenliggend object
  • enum: ["analytics-metric/v1"]
dataset.customMetrics[].formula.idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].formula.workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].formula.namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.versionintegerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 1000000
dataset.customMetrics[].formula.expressionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].formula.fieldsarrayVerplicht in bovenliggend object
  • maxItems: 32
dataset.customMetrics[].formula.fields[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].formula.fields[].identifierstringVerplicht in bovenliggend object
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].formula.fields[].selectorobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].formula.fields[].selector.platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].formula.fields[].selector.keystringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].formula.fields[].selector.definitionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].formula.fields[].selector.unitstringVerplicht in bovenliggend object
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].formula.fields[].selector.grainstringVerplicht in bovenliggend object
  • enum: ["post","account"]
dataset.customMetrics[].formula.fields[].selector.measurementKindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].formula.fields[].selector.nativePeriodstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].selector.timezonestring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].aggregationstringVerplicht in bovenliggend object
  • enum: ["single","sum"]
dataset.customMetrics[].formula.roundingobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].formula.rounding.decimalPlacesintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].formula.rounding.modestringVerplicht in bovenliggend object
  • enum: ["half_away_from_zero"]
dataset.customMetrics[].calculationobjectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].calculation.contractVersionstringVerplicht in bovenliggend object
  • enum: ["analytics-metric/v1"]
dataset.customMetrics[].calculation.workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.datasetIdstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.formulaIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.versionintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].calculation.expressionstringVerplicht in bovenliggend object
  • maxLength: 1000
dataset.customMetrics[].calculation.roundingobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].calculation.rounding.decimalPlacesintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].calculation.rounding.modestringVerplicht in bovenliggend object
  • enum: ["half_away_from_zero"]
dataset.customMetrics[].calculation.valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.unitstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.customMetrics[].calculation.statusstringVerplicht in bovenliggend object
  • enum: ["available","not_returned"]
dataset.customMetrics[].calculation.codestringVerplicht in bovenliggend object
  • enum: ["ok","invalid_expression","missing_input","incompatible_input","zero_denominator","numeric_limit","workspace_mismatch","ambiguous_input","unknown_exclusion"]
dataset.customMetrics[].calculation.reasonstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.reasonanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.excludedInputIdsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.customMetrics[].calculation.excludedInputIds[]stringOptioneel / item
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.customMetrics[].calculation.inputs[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].inputIdstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputs[].selectorobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].selector.platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].calculation.inputs[].selector.keystringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].calculation.inputs[].selector.definitionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.inputs[].selector.unitstringVerplicht in bovenliggend object
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].calculation.inputs[].selector.grainstringVerplicht in bovenliggend object
  • enum: ["post","account"]
dataset.customMetrics[].calculation.inputs[].selector.measurementKindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].selector.timezonestring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].calculation.inputs[].reasonstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 8000
dataset.customMetrics[].calculation.inputs[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurementobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].measurement.kindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].measurement.periodstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.startstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.endstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.timezonestring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].requestIdstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].sourcePathstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].calculation.inputs[].accountIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.inputs[].providerResourceIdstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 512
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].fetchedAtstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].fetchedAtanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.customMetrics[].calculation.inputs[].fetchedAtanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].identifierstringVerplicht in bovenliggend object
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].calculation.inputs[].includedbooleanVerplicht in bovenliggend object—
reviewed_fingerprintstringVerplicht in bovenliggend object
  • pattern: "^[a-f0-9]{64}$"
outputstringOptioneel / item
  • enum: ["native","pdf"]
localestringOptioneel / item
  • enum: ["en","zh-Hant"]
Volledig JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "version": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000000
    },
    "dataset": {
      "type": "object",
      "properties": {
        "contractVersion": {
          "type": "string",
          "enum": [
            "analytics-report/v1"
          ]
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "reviewedAt": {
          "type": "string",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "format": "date-time"
        },
        "selection": {
          "type": "object",
          "properties": {
            "workspaceId": {
              "type": "string",
              "format": "uuid"
            },
            "accountIds": {
              "minItems": 1,
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "platforms": {
              "minItems": 1,
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facebook",
                  "instagram",
                  "threads",
                  "youtube"
                ]
              }
            },
            "startDate": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "endDate": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "timezone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "required": [
            "workspaceId",
            "accountIds",
            "platforms",
            "startDate",
            "endDate",
            "timezone"
          ],
          "additionalProperties": false
        },
        "accounts": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid"
              },
              "platform": {
                "type": "string",
                "enum": [
                  "facebook",
                  "instagram",
                  "threads",
                  "youtube"
                ]
              },
              "name": {
                "type": "string",
                "maxLength": 500
              },
              "connectionStatus": {
                "type": "string",
                "maxLength": 100
              },
              "healthMessage": {
                "type": "string",
                "maxLength": 1000
              }
            },
            "required": [
              "id",
              "workspaceId",
              "platform",
              "name"
            ],
            "additionalProperties": false
          }
        },
        "posts": {
          "maxItems": 1000,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "social_post_id": {
                "type": "string",
                "format": "uuid"
              },
              "workspace_id": {
                "type": "string",
                "format": "uuid"
              },
              "social_account_id": {
                "type": "string",
                "format": "uuid"
              },
              "platform": {
                "type": "string",
                "enum": [
                  "instagram",
                  "facebook",
                  "threads",
                  "youtube"
                ]
              },
              "provider_post_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "provider_published_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "content_format": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "permalink": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "provider_state": {
                "type": "string",
                "enum": [
                  "available",
                  "deleted",
                  "unavailable",
                  "unknown"
                ]
              },
              "first_seen_at": {
                "type": "string",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "format": "date-time"
              },
              "last_seen_at": {
                "type": "string",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "format": "date-time"
              },
              "scheduled_post_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "provenance": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "instagram",
                      "facebook",
                      "threads",
                      "youtube"
                    ]
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "provider_api",
                      "provider_webhook",
                      "publication_outcome",
                      "backfill"
                    ]
                  },
                  "source_job_id": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "provider_api_version": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "schema_version": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "provider",
                  "source",
                  "source_job_id",
                  "provider_api_version",
                  "schema_version"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "social_post_id",
              "workspace_id",
              "social_account_id",
              "platform",
              "provider_post_id",
              "provider_published_at",
              "content_format",
              "permalink",
              "provider_state",
              "first_seen_at",
              "last_seen_at",
              "scheduled_post_id",
              "provenance"
            ],
            "additionalProperties": false
          }
        },
        "sources": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accountId": {
                "type": "string",
                "format": "uuid"
              },
              "platform": {
                "type": "string",
                "enum": [
                  "facebook",
                  "instagram",
                  "threads",
                  "youtube"
                ]
              },
              "resourceKind": {
                "type": "string",
                "enum": [
                  "account",
                  "post"
                ]
              },
              "providerResourceId": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 512
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "requestId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "partial",
                  "not_returned",
                  "unsupported",
                  "permission_required",
                  "threshold_not_met",
                  "no_data",
                  "failed",
                  "pending",
                  "stale"
                ]
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 8000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "envelope": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "contract_version": {
                        "type": "string",
                        "enum": [
                          "provider-insights/v1"
                        ]
                      },
                      "request_id": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "platform": {
                        "type": "string",
                        "enum": [
                          "facebook",
                          "instagram",
                          "threads",
                          "youtube"
                        ]
                      },
                      "resource": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "account",
                              "post"
                            ]
                          },
                          "social_account_id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "provider_resource_id": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "social_account_id",
                          "provider_resource_id"
                        ],
                        "additionalProperties": false
                      },
                      "provider_api_version": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "fetched_at": {
                        "type": "string",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "format": "date-time"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "available",
                          "partial",
                          "unavailable"
                        ]
                      },
                      "availability": {
                        "minItems": 1,
                        "maxItems": 64,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "status": {
                              "type": "string",
                              "enum": [
                                "available",
                                "partial",
                                "not_returned",
                                "unsupported",
                                "permission_required",
                                "threshold_not_met",
                                "no_data",
                                "failed"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "diagnostics": {
                              "type": "object",
                              "properties": {
                                "http_status": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 599
                                },
                                "failed_step": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "provider_code": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string",
                                      "maxLength": 100
                                    }
                                  ]
                                },
                                "provider_subcode": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string",
                                      "maxLength": 100
                                    }
                                  ]
                                },
                                "provider_type": {
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "is_transient": {
                                  "type": "boolean"
                                },
                                "provider_request_id": {
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "access": {
                                  "type": "object",
                                  "properties": {
                                    "login_mode": {
                                      "type": "string",
                                      "enum": [
                                        "instagram_login",
                                        "facebook_login",
                                        "threads_user"
                                      ]
                                    },
                                    "provider_host": {
                                      "type": "string",
                                      "maxLength": 200
                                    },
                                    "required_permissions": {
                                      "maxItems": 16,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "maxLength": 100
                                      }
                                    },
                                    "current_connection_policy_permissions": {
                                      "maxItems": 16,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "maxLength": 100
                                      }
                                    },
                                    "granted_permissions": {
                                      "anyOf": [
                                        {
                                          "maxItems": 128,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "maxLength": 100
                                          }
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "grant_evidence": {
                                      "type": "string",
                                      "enum": [
                                        "exact",
                                        "unknown"
                                      ]
                                    },
                                    "permission_state": {
                                      "type": "string",
                                      "enum": [
                                        "granted",
                                        "missing",
                                        "unknown"
                                      ]
                                    },
                                    "grant_observed_at": {
                                      "type": "string",
                                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                                      "format": "date-time"
                                    },
                                    "app_access": {
                                      "type": "string",
                                      "enum": [
                                        "unverified"
                                      ]
                                    },
                                    "next_step": {
                                      "type": "string",
                                      "maxLength": 1500
                                    }
                                  },
                                  "required": [
                                    "login_mode",
                                    "provider_host",
                                    "required_permissions",
                                    "current_connection_policy_permissions",
                                    "granted_permissions",
                                    "grant_evidence",
                                    "permission_state",
                                    "app_access",
                                    "next_step"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "http_status"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "scope",
                            "status"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "provider_data": {
                        "anyOf": [
                          {},
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "requested_date_range": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "start_date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              "end_date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              }
                            },
                            "required": [
                              "start_date",
                              "end_date"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "cache": {
                        "type": "object",
                        "properties": {
                          "authoritative": {
                            "type": "boolean",
                            "enum": [
                              false
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "stored",
                              "hit",
                              "bypassed"
                            ]
                          },
                          "expires_at": {
                            "type": "string",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "authoritative",
                          "status",
                          "expires_at"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "contract_version",
                      "request_id",
                      "platform",
                      "resource",
                      "provider_api_version",
                      "fetched_at",
                      "status",
                      "availability",
                      "provider_data",
                      "requested_date_range",
                      "cache"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metrics": {
                "maxItems": 5000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 150
                    },
                    "definition": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    },
                    "unit": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "grain": {
                      "type": "string",
                      "enum": [
                        "post",
                        "account"
                      ]
                    },
                    "value": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "availability": {
                      "type": "string",
                      "enum": [
                        "available",
                        "partial",
                        "not_returned",
                        "unsupported",
                        "permission_required",
                        "threshold_not_met",
                        "no_data",
                        "failed",
                        "pending",
                        "stale"
                      ]
                    },
                    "reason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "maxLength": 4000
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "measurement": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "lifetime",
                            "snapshot",
                            "period",
                            "unknown"
                          ]
                        },
                        "period": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "start": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "end": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "timezone": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "kind",
                        "period",
                        "start",
                        "end",
                        "timezone"
                      ],
                      "additionalProperties": false
                    },
                    "sourcePath": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "key",
                    "definition",
                    "unit",
                    "grain",
                    "value",
                    "availability",
                    "reason",
                    "measurement",
                    "sourcePath"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "accountId",
              "platform",
              "resourceKind",
              "providerResourceId",
              "requestId",
              "status",
              "reason",
              "envelope",
              "metrics"
            ],
            "additionalProperties": false
          }
        },
        "coverage": {
          "type": "object",
          "properties": {
            "population": {
              "type": "string",
              "enum": [
                "discovered_posts"
              ]
            },
            "postsComplete": {
              "type": "boolean"
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 16384
                },
                {
                  "type": "null"
                }
              ]
            },
            "postLimit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000
            },
            "postInsightsLimit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "omittedPostInsights": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "notes": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 2000
              }
            }
          },
          "required": [
            "population",
            "postsComplete",
            "nextCursor",
            "postLimit",
            "postInsightsLimit",
            "omittedPostInsights",
            "notes"
          ],
          "additionalProperties": false
        },
        "customMetrics": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "version": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "expression": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1000
              },
              "definition": {
                "type": "string",
                "maxLength": 1000
              },
              "unit": {
                "type": "string",
                "maxLength": 100
              },
              "grain": {
                "type": "string",
                "enum": [
                  "post",
                  "account",
                  "compatible_sum"
                ]
              },
              "rounding": {
                "type": "object",
                "properties": {
                  "decimalPlaces": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "half_away_from_zero"
                    ]
                  }
                },
                "required": [
                  "decimalPlaces",
                  "mode"
                ],
                "additionalProperties": false
              },
              "inputs": {
                "maxItems": 5000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uuid"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "sourcePath": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "value": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "availability": {
                      "type": "string",
                      "enum": [
                        "available",
                        "partial",
                        "not_returned",
                        "unsupported",
                        "permission_required",
                        "threshold_not_met",
                        "no_data",
                        "failed",
                        "pending",
                        "stale"
                      ]
                    }
                  },
                  "required": [
                    "requestId",
                    "sourcePath",
                    "value",
                    "availability"
                  ],
                  "additionalProperties": false
                }
              },
              "value": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "availability": {
                "type": "string",
                "enum": [
                  "available",
                  "partial",
                  "not_returned",
                  "unsupported",
                  "permission_required",
                  "threshold_not_met",
                  "no_data",
                  "failed",
                  "pending",
                  "stale"
                ]
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 4000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "formula": {
                "type": "object",
                "properties": {
                  "contractVersion": {
                    "type": "string",
                    "enum": [
                      "analytics-metric/v1"
                    ]
                  },
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "expression": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "fields": {
                    "maxItems": 32,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "identifier": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9_]{0,63}$"
                        },
                        "selector": {
                          "type": "object",
                          "properties": {
                            "platform": {
                              "type": "string",
                              "enum": [
                                "facebook",
                                "instagram",
                                "threads",
                                "youtube"
                              ]
                            },
                            "key": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,100}$"
                            },
                            "definition": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "unit": {
                              "type": "string",
                              "enum": [
                                "count",
                                "seconds",
                                "minutes",
                                "percent",
                                "ratio"
                              ]
                            },
                            "grain": {
                              "type": "string",
                              "enum": [
                                "post",
                                "account"
                              ]
                            },
                            "measurementKind": {
                              "type": "string",
                              "enum": [
                                "lifetime",
                                "snapshot",
                                "period",
                                "unknown"
                              ]
                            },
                            "nativePeriod": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "timezone": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "platform",
                            "key",
                            "definition",
                            "unit",
                            "grain",
                            "measurementKind",
                            "nativePeriod",
                            "timezone"
                          ],
                          "additionalProperties": false
                        },
                        "aggregation": {
                          "type": "string",
                          "enum": [
                            "single",
                            "sum"
                          ]
                        }
                      },
                      "required": [
                        "identifier",
                        "selector",
                        "aggregation"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "rounding": {
                    "type": "object",
                    "properties": {
                      "decimalPlaces": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                      },
                      "mode": {
                        "type": "string",
                        "enum": [
                          "half_away_from_zero"
                        ]
                      }
                    },
                    "required": [
                      "decimalPlaces",
                      "mode"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "contractVersion",
                  "id",
                  "workspaceId",
                  "name",
                  "version",
                  "expression",
                  "fields",
                  "rounding"
                ],
                "additionalProperties": false
              },
              "calculation": {
                "type": "object",
                "properties": {
                  "contractVersion": {
                    "type": "string",
                    "enum": [
                      "analytics-metric/v1"
                    ]
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "datasetId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "formulaId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "version": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "expression": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "rounding": {
                    "type": "object",
                    "properties": {
                      "decimalPlaces": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                      },
                      "mode": {
                        "type": "string",
                        "enum": [
                          "half_away_from_zero"
                        ]
                      }
                    },
                    "required": [
                      "decimalPlaces",
                      "mode"
                    ],
                    "additionalProperties": false
                  },
                  "value": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "unit": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "available",
                      "not_returned"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "enum": [
                      "ok",
                      "invalid_expression",
                      "missing_input",
                      "incompatible_input",
                      "zero_denominator",
                      "numeric_limit",
                      "workspace_mismatch",
                      "ambiguous_input",
                      "unknown_exclusion"
                    ]
                  },
                  "reason": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "excludedInputIds": {
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1500
                    }
                  },
                  "inputs": {
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "inputId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1500
                        },
                        "selector": {
                          "type": "object",
                          "properties": {
                            "platform": {
                              "type": "string",
                              "enum": [
                                "facebook",
                                "instagram",
                                "threads",
                                "youtube"
                              ]
                            },
                            "key": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,100}$"
                            },
                            "definition": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "unit": {
                              "type": "string",
                              "enum": [
                                "count",
                                "seconds",
                                "minutes",
                                "percent",
                                "ratio"
                              ]
                            },
                            "grain": {
                              "type": "string",
                              "enum": [
                                "post",
                                "account"
                              ]
                            },
                            "measurementKind": {
                              "type": "string",
                              "enum": [
                                "lifetime",
                                "snapshot",
                                "period",
                                "unknown"
                              ]
                            },
                            "nativePeriod": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "timezone": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "platform",
                            "key",
                            "definition",
                            "unit",
                            "grain",
                            "measurementKind",
                            "nativePeriod",
                            "timezone"
                          ],
                          "additionalProperties": false
                        },
                        "value": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "availability": {
                          "type": "string",
                          "enum": [
                            "available",
                            "partial",
                            "not_returned",
                            "unsupported",
                            "permission_required",
                            "threshold_not_met",
                            "no_data",
                            "failed",
                            "pending",
                            "stale"
                          ]
                        },
                        "reason": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 8000
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "measurement": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "lifetime",
                                "snapshot",
                                "period",
                                "unknown"
                              ]
                            },
                            "period": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "start": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "end": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "timezone": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "kind",
                            "period",
                            "start",
                            "end",
                            "timezone"
                          ],
                          "additionalProperties": false
                        },
                        "requestId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uuid"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourcePath": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "accountId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "providerResourceId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "fetchedAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                              "format": "date-time"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "identifier": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9_]{0,63}$"
                        },
                        "included": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "inputId",
                        "selector",
                        "value",
                        "availability",
                        "reason",
                        "measurement",
                        "requestId",
                        "sourcePath",
                        "accountId",
                        "providerResourceId",
                        "fetchedAt",
                        "identifier",
                        "included"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "contractVersion",
                  "workspaceId",
                  "datasetId",
                  "formulaId",
                  "name",
                  "version",
                  "expression",
                  "rounding",
                  "value",
                  "unit",
                  "status",
                  "code",
                  "reason",
                  "excludedInputIds",
                  "inputs"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "name",
              "version",
              "expression",
              "definition",
              "unit",
              "grain",
              "rounding",
              "inputs",
              "value",
              "availability",
              "reason"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "contractVersion",
        "id",
        "reviewedAt",
        "selection",
        "accounts",
        "posts",
        "sources",
        "coverage",
        "customMetrics"
      ],
      "additionalProperties": false
    },
    "reviewed_fingerprint": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "output": {
      "type": "string",
      "enum": [
        "native",
        "pdf"
      ]
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "zh-Hant"
      ]
    }
  },
  "required": [
    "workspace_id",
    "id",
    "version",
    "dataset",
    "reviewed_fingerprint"
  ],
  "additionalProperties": false
}

Gestructureerde uitvoer

Dit schema beschrijft structuredContent in een geslaagd toolresultaat. Het MCP-antwoord bevat ook content en kan isError instellen wanneer een aanroep mislukt. Lees bij publiceren het definitieve berichtresultaat; beschouw een geaccepteerd verzoek of tekstantwoord niet als bevestiging. De gekoppelde API-bewerking beschrijft machtigingen en regels voor opnieuw proberen.

Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.

Gestructureerde uitvoer
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
contract_versionstringVerplicht in bovenliggend object
  • const: "analytics-render-input/v1"
kindstringVerplicht in bovenliggend object
  • const: "template"
datasetobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.contractVersionstringVerplicht in bovenliggend object
  • const: "analytics-report/v1"
dataset.idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.reviewedAtstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.selectionobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.selection.workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.selection.accountIdsarrayVerplicht in bovenliggend object
  • minItems: 1
  • maxItems: 50
dataset.selection.accountIds[]stringOptioneel / item
  • format: "uuid"
dataset.selection.platformsarrayVerplicht in bovenliggend object
  • minItems: 1
  • maxItems: 4
dataset.selection.platforms[]stringOptioneel / item
  • enum: ["facebook","instagram","threads","youtube"]
dataset.selection.startDatestringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.endDatestringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.timezonestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.accountsarrayVerplicht in bovenliggend object
  • maxItems: 50
dataset.accounts[]objectOptioneel / item
  • additionalProperties: false
dataset.accounts[].idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.accounts[].workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.accounts[].platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.accounts[].namestringVerplicht in bovenliggend object
  • maxLength: 500
dataset.accounts[].connectionStatusstringOptioneel / item
  • maxLength: 100
dataset.accounts[].healthMessagestringOptioneel / item
  • maxLength: 1000
dataset.postsarrayVerplicht in bovenliggend object
  • maxItems: 1000
dataset.posts[]objectOptioneel / item
  • additionalProperties: false
dataset.posts[].social_post_idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].social_account_idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].platformstringVerplicht in bovenliggend object
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provider_post_idstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 512
dataset.posts[].provider_published_atstring | nullVerplicht in bovenliggend object—
dataset.posts[].provider_published_atanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.posts[].provider_published_atanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].content_formatstring | nullVerplicht in bovenliggend object—
dataset.posts[].content_formatanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.posts[].content_formatanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].permalinkstring | nullVerplicht in bovenliggend object—
dataset.posts[].permalinkanyOf 1stringVerplicht in bovenliggend object
  • format: "uri"
  • maxLength: 2048
dataset.posts[].permalinkanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provider_statestringVerplicht in bovenliggend object
  • enum: ["available","deleted","unavailable","unknown"]
dataset.posts[].first_seen_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.posts[].last_seen_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.posts[].scheduled_post_idstring | nullVerplicht in bovenliggend object—
dataset.posts[].scheduled_post_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].scheduled_post_idanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provenanceobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.posts[].provenance.providerstringVerplicht in bovenliggend object
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provenance.sourcestringVerplicht in bovenliggend object
  • enum: ["provider_api","provider_webhook","publication_outcome","backfill"]
dataset.posts[].provenance.source_job_idstring | nullVerplicht in bovenliggend object—
dataset.posts[].provenance.source_job_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.posts[].provenance.source_job_idanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provenance.provider_api_versionstring | nullVerplicht in bovenliggend object—
dataset.posts[].provenance.provider_api_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.provider_api_versionanyOf 2nullVerplicht in bovenliggend object—
dataset.posts[].provenance.schema_versionstring | nullVerplicht in bovenliggend object—
dataset.posts[].provenance.schema_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.schema_versionanyOf 2nullVerplicht in bovenliggend object—
dataset.sourcesarrayVerplicht in bovenliggend object
  • maxItems: 30
dataset.sources[]objectOptioneel / item
  • additionalProperties: false
dataset.sources[].accountIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].resourceKindstringVerplicht in bovenliggend object
  • enum: ["account","post"]
dataset.sources[].providerResourceIdstring | nullVerplicht in bovenliggend object—
dataset.sources[].providerResourceIdanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 512
dataset.sources[].providerResourceIdanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].requestIdstring | nullVerplicht in bovenliggend object—
dataset.sources[].requestIdanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].requestIdanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].statusstringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].reasonstring | nullVerplicht in bovenliggend object—
dataset.sources[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 8000
dataset.sources[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelopeobject | nullVerplicht in bovenliggend object—
dataset.sources[].envelopeanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.contract_versionanyOf 1stringVerplicht in bovenliggend object
  • const: "provider-insights/v1"
dataset.sources[].envelope.request_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].envelope.platformanyOf 1stringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].envelope.resourceanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.resource.kindanyOf 1stringVerplicht in bovenliggend object
  • enum: ["account","post"]
dataset.sources[].envelope.resource.social_account_idanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.sources[].envelope.resource.provider_resource_idanyOf 1string | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.provider_api_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.sources[].envelope.fetched_atanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.sources[].envelope.statusanyOf 1stringVerplicht in bovenliggend object
  • enum: ["available","partial","unavailable"]
dataset.sources[].envelope.availabilityanyOf 1arrayVerplicht in bovenliggend object
  • minItems: 1
  • maxItems: 64
dataset.sources[].envelope.availability[]anyOf 1objectOptioneel / item
  • additionalProperties: false
dataset.sources[].envelope.availability[].scopeanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].statusanyOf 1stringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed"]
dataset.sources[].envelope.availability[].reasonanyOf 1stringOptioneel / item
  • minLength: 1
  • maxLength: 2000
dataset.sources[].envelope.availability[].diagnosticsanyOf 1objectOptioneel / item
  • additionalProperties: false
dataset.sources[].envelope.availability[].diagnostics.http_statusanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 599
dataset.sources[].envelope.availability[].diagnostics.failed_stepanyOf 1stringOptioneel / item
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1number | stringOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 1numberOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 2stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1number | stringOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 1numberOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 2stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_typeanyOf 1stringOptioneel / item
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.is_transientanyOf 1booleanOptioneel / item—
dataset.sources[].envelope.availability[].diagnostics.provider_request_idanyOf 1stringOptioneel / item
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.accessanyOf 1objectOptioneel / item
  • additionalProperties: false
dataset.sources[].envelope.availability[].diagnostics.access.login_modeanyOf 1stringVerplicht in bovenliggend object
  • enum: ["instagram_login","facebook_login","threads_user"]
dataset.sources[].envelope.availability[].diagnostics.access.provider_hostanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.access.required_permissionsanyOf 1arrayVerplicht in bovenliggend object
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.required_permissions[]anyOf 1stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissionsanyOf 1arrayVerplicht in bovenliggend object
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissions[]anyOf 1stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1array | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 1arrayVerplicht in bovenliggend object
  • maxItems: 128
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissions[]anyOf 1 / anyOf 1stringOptioneel / item
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelope.availability[].diagnostics.access.grant_evidenceanyOf 1stringVerplicht in bovenliggend object
  • enum: ["exact","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.permission_stateanyOf 1stringVerplicht in bovenliggend object
  • enum: ["granted","missing","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.grant_observed_atanyOf 1stringOptioneel / item
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.sources[].envelope.availability[].diagnostics.access.app_accessanyOf 1stringVerplicht in bovenliggend object
  • const: "unverified"
dataset.sources[].envelope.availability[].diagnostics.access.next_stepanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 1500
dataset.sources[].envelope.provider_dataanyOf 1any JSON value | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 1any JSON valueVerplicht in bovenliggend object—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelope.requested_date_rangeanyOf 1object | nullVerplicht in bovenliggend object—
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.requested_date_range.start_dateanyOf 1 / anyOf 1stringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_range.end_dateanyOf 1 / anyOf 1stringVerplicht in bovenliggend object
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].envelope.cacheanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].envelope.cache.authoritativeanyOf 1booleanVerplicht in bovenliggend object
  • const: false
dataset.sources[].envelope.cache.statusanyOf 1stringVerplicht in bovenliggend object
  • enum: ["stored","hit","bypassed"]
dataset.sources[].envelope.cache.expires_atanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.sources[].envelopeanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metricsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.sources[].metrics[]objectOptioneel / item
  • additionalProperties: false
dataset.sources[].metrics[].keystringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 150
dataset.sources[].metrics[].definitionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.sources[].metrics[].unitstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.sources[].metrics[].grainstringVerplicht in bovenliggend object
  • enum: ["post","account"]
dataset.sources[].metrics[].valuenumber | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].metrics[].reasonstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 4000
dataset.sources[].metrics[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurementobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.sources[].metrics[].measurement.kindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.sources[].metrics[].measurement.periodstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.periodanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.periodanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.startstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.startanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.startanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.endstring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.endanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.endanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.timezonestring | nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].measurement.timezoneanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 100
dataset.sources[].metrics[].measurement.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.sources[].metrics[].sourcePathstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 2000
dataset.coverageobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.coverage.populationstringVerplicht in bovenliggend object
  • const: "discovered_posts"
dataset.coverage.postsCompletebooleanVerplicht in bovenliggend object—
dataset.coverage.nextCursorstring | nullVerplicht in bovenliggend object—
dataset.coverage.nextCursoranyOf 1stringVerplicht in bovenliggend object
  • maxLength: 16384
dataset.coverage.nextCursoranyOf 2nullVerplicht in bovenliggend object—
dataset.coverage.postLimitintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 1000
dataset.coverage.postInsightsLimitintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 20
dataset.coverage.omittedPostInsightsintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 9007199254740991
dataset.coverage.notesarrayVerplicht in bovenliggend object
  • maxItems: 50
dataset.coverage.notes[]stringOptioneel / item
  • maxLength: 2000
dataset.customMetricsarrayVerplicht in bovenliggend object
  • maxItems: 50
dataset.customMetrics[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].versionintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].expressionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].definitionstringVerplicht in bovenliggend object
  • maxLength: 1000
dataset.customMetrics[].unitstringVerplicht in bovenliggend object
  • maxLength: 100
dataset.customMetrics[].grainstringVerplicht in bovenliggend object
  • enum: ["post","account","compatible_sum"]
dataset.customMetrics[].roundingobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].rounding.decimalPlacesintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].rounding.modestringVerplicht in bovenliggend object
  • const: "half_away_from_zero"
dataset.customMetrics[].inputsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.customMetrics[].inputs[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].inputs[].requestIdstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].inputs[].requestIdanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].inputs[].requestIdanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].inputs[].sourcePathstringVerplicht in bovenliggend object
  • maxLength: 2000
dataset.customMetrics[].inputs[].valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].inputs[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].reasonstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 4000
dataset.customMetrics[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].formulaobjectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].formula.contractVersionstringVerplicht in bovenliggend object
  • const: "analytics-metric/v1"
dataset.customMetrics[].formula.idstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].formula.workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].formula.namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.versionintegerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 1000000
dataset.customMetrics[].formula.expressionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].formula.fieldsarrayVerplicht in bovenliggend object
  • maxItems: 32
dataset.customMetrics[].formula.fields[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].formula.fields[].identifierstringVerplicht in bovenliggend object
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].formula.fields[].selectorobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].formula.fields[].selector.platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].formula.fields[].selector.keystringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].formula.fields[].selector.definitionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].formula.fields[].selector.unitstringVerplicht in bovenliggend object
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].formula.fields[].selector.grainstringVerplicht in bovenliggend object
  • enum: ["post","account"]
dataset.customMetrics[].formula.fields[].selector.measurementKindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].formula.fields[].selector.nativePeriodstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].selector.timezonestring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].formula.fields[].aggregationstringVerplicht in bovenliggend object
  • enum: ["single","sum"]
dataset.customMetrics[].formula.roundingobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].formula.rounding.decimalPlacesintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].formula.rounding.modestringVerplicht in bovenliggend object
  • const: "half_away_from_zero"
dataset.customMetrics[].calculationobjectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].calculation.contractVersionstringVerplicht in bovenliggend object
  • const: "analytics-metric/v1"
dataset.customMetrics[].calculation.workspaceIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.datasetIdstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.formulaIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.versionintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].calculation.expressionstringVerplicht in bovenliggend object
  • maxLength: 1000
dataset.customMetrics[].calculation.roundingobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].calculation.rounding.decimalPlacesintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].calculation.rounding.modestringVerplicht in bovenliggend object
  • const: "half_away_from_zero"
dataset.customMetrics[].calculation.valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.unitstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
dataset.customMetrics[].calculation.statusstringVerplicht in bovenliggend object
  • enum: ["available","not_returned"]
dataset.customMetrics[].calculation.codestringVerplicht in bovenliggend object
  • enum: ["ok","invalid_expression","missing_input","incompatible_input","zero_denominator","numeric_limit","workspace_mismatch","ambiguous_input","unknown_exclusion"]
dataset.customMetrics[].calculation.reasonstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.reasonanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.excludedInputIdsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.customMetrics[].calculation.excludedInputIds[]stringOptioneel / item
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputsarrayVerplicht in bovenliggend object
  • maxItems: 5000
dataset.customMetrics[].calculation.inputs[]objectOptioneel / item
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].inputIdstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputs[].selectorobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].selector.platformstringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].calculation.inputs[].selector.keystringVerplicht in bovenliggend object
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].calculation.inputs[].selector.definitionstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.inputs[].selector.unitstringVerplicht in bovenliggend object
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].calculation.inputs[].selector.grainstringVerplicht in bovenliggend object
  • enum: ["post","account"]
dataset.customMetrics[].calculation.inputs[].selector.measurementKindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].selector.timezonestring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].valuenumber | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].availabilitystringVerplicht in bovenliggend object
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].calculation.inputs[].reasonstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].reasonanyOf 1stringVerplicht in bovenliggend object
  • maxLength: 8000
dataset.customMetrics[].calculation.inputs[].reasonanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurementobjectVerplicht in bovenliggend object
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].measurement.kindstringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].measurement.periodstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.startstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.endstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.timezonestring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].requestIdstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 1stringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].sourcePathstringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].calculation.inputs[].accountIdstringVerplicht in bovenliggend object
  • format: "uuid"
dataset.customMetrics[].calculation.inputs[].providerResourceIdstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 512
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].fetchedAtstring | nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].fetchedAtanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
dataset.customMetrics[].calculation.inputs[].fetchedAtanyOf 2nullVerplicht in bovenliggend object—
dataset.customMetrics[].calculation.inputs[].identifierstringVerplicht in bovenliggend object
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].calculation.inputs[].includedbooleanVerplicht in bovenliggend object—
formatstringVerplicht in bovenliggend object
  • enum: ["pptx","docx","xlsx"]
outputstringVerplicht in bovenliggend object
  • enum: ["native","pdf"]
localestringVerplicht in bovenliggend object
  • enum: ["en","zh-Hant"]
templateobjectVerplicht in bovenliggend object
  • additionalProperties: false
template.idstringVerplicht in bovenliggend object
  • format: "uuid"
template.versionintegerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 1000000
template.source_base64stringVerplicht in bovenliggend object
  • maxLength: 12582912
template.source_sha256stringVerplicht in bovenliggend object
  • pattern: "^[a-f0-9]{64}$"
template.mappingsobjectVerplicht in bovenliggend object
  • additionalProperties: {"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"text"},"value":{"type":"string","maxLength":2000}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"selection"},"field":{"type":"string","enum":["accounts","period","timezone","platforms","dataset","reviewed","coverage"]}},"required":["kind","field"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"metric"},"platform":{"type":"string","enum":["facebook","instagram","threads","youtube"]},"key":{"type":"string","minLength":1,"maxLength":150},"unit":{"type":"string","minLength":1,"maxLength":100},"grain":{"type":"string","enum":["post","account"]},"measurementKind":{"type":"string","enum":["lifetime","snapshot","period","unknown"]},"accountId":{"type":"string","format":"uuid"},"providerResourceId":{"anyOf":[{"type":"string","minLength":1,"maxLength":512},{"type":"null"}]},"sourcePath":{"type":"string","maxLength":2000},"requestId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["kind","platform","key","unit","grain","measurementKind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"formula"},"id":{"type":"string","format":"uuid"},"version":{"type":"integer","minimum":1,"maximum":1000000}},"required":["kind","id","version"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"table"},"source":{"type":"string","enum":["measurements","formulas"]},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":["kind","source","limit"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"chart"},"source":{"type":"string","const":"publication_by_platform"}},"required":["kind","source"],"additionalProperties":false}]}
template.mappings.*objectOptioneel / item—
template.mappings.*oneOf 1objectOptioneel / item
  • additionalProperties: false
template.mappings.*.kindoneOf 1stringVerplicht in bovenliggend object
  • const: "text"
template.mappings.*.valueoneOf 1stringVerplicht in bovenliggend object
  • maxLength: 2000
template.mappings.*oneOf 2objectOptioneel / item
  • additionalProperties: false
template.mappings.*.kindoneOf 2stringVerplicht in bovenliggend object
  • const: "selection"
template.mappings.*.fieldoneOf 2stringVerplicht in bovenliggend object
  • enum: ["accounts","period","timezone","platforms","dataset","reviewed","coverage"]
template.mappings.*oneOf 3objectOptioneel / item
  • additionalProperties: false
template.mappings.*.kindoneOf 3stringVerplicht in bovenliggend object
  • const: "metric"
template.mappings.*.platformoneOf 3stringVerplicht in bovenliggend object
  • enum: ["facebook","instagram","threads","youtube"]
template.mappings.*.keyoneOf 3stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 150
template.mappings.*.unitoneOf 3stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
template.mappings.*.grainoneOf 3stringVerplicht in bovenliggend object
  • enum: ["post","account"]
template.mappings.*.measurementKindoneOf 3stringVerplicht in bovenliggend object
  • enum: ["lifetime","snapshot","period","unknown"]
template.mappings.*.accountIdoneOf 3stringOptioneel / item
  • format: "uuid"
template.mappings.*.providerResourceIdoneOf 3string | nullOptioneel / item—
template.mappings.*.providerResourceIdoneOf 3 / anyOf 1stringOptioneel / item
  • minLength: 1
  • maxLength: 512
template.mappings.*.providerResourceIdoneOf 3 / anyOf 2nullOptioneel / item—
template.mappings.*.sourcePathoneOf 3stringOptioneel / item
  • maxLength: 2000
template.mappings.*.requestIdoneOf 3string | nullOptioneel / item—
template.mappings.*.requestIdoneOf 3 / anyOf 1stringOptioneel / item
  • format: "uuid"
template.mappings.*.requestIdoneOf 3 / anyOf 2nullOptioneel / item—
template.mappings.*oneOf 4objectOptioneel / item
  • additionalProperties: false
template.mappings.*.kindoneOf 4stringVerplicht in bovenliggend object
  • const: "formula"
template.mappings.*.idoneOf 4stringVerplicht in bovenliggend object
  • format: "uuid"
template.mappings.*.versiononeOf 4integerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 1000000
template.mappings.*oneOf 5objectOptioneel / item
  • additionalProperties: false
template.mappings.*.kindoneOf 5stringVerplicht in bovenliggend object
  • const: "table"
template.mappings.*.sourceoneOf 5stringVerplicht in bovenliggend object
  • enum: ["measurements","formulas"]
template.mappings.*.limitoneOf 5integerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 100
template.mappings.*oneOf 6objectOptioneel / item
  • additionalProperties: false
template.mappings.*.kindoneOf 6stringVerplicht in bovenliggend object
  • const: "chart"
template.mappings.*.sourceoneOf 6stringVerplicht in bovenliggend object
  • const: "publication_by_platform"
reviewed_fingerprintstringVerplicht in bovenliggend object
  • pattern: "^[a-f0-9]{64}$"
Volledig JSON Schema
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "analytics-render-input/v1"
    },
    "kind": {
      "type": "string",
      "const": "template"
    },
    "dataset": {
      "type": "object",
      "properties": {
        "contractVersion": {
          "type": "string",
          "const": "analytics-report/v1"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "reviewedAt": {
          "type": "string",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "format": "date-time"
        },
        "selection": {
          "type": "object",
          "properties": {
            "workspaceId": {
              "type": "string",
              "format": "uuid"
            },
            "accountIds": {
              "minItems": 1,
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "platforms": {
              "minItems": 1,
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facebook",
                  "instagram",
                  "threads",
                  "youtube"
                ]
              }
            },
            "startDate": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "endDate": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "timezone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "required": [
            "workspaceId",
            "accountIds",
            "platforms",
            "startDate",
            "endDate",
            "timezone"
          ],
          "additionalProperties": false
        },
        "accounts": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid"
              },
              "platform": {
                "type": "string",
                "enum": [
                  "facebook",
                  "instagram",
                  "threads",
                  "youtube"
                ]
              },
              "name": {
                "type": "string",
                "maxLength": 500
              },
              "connectionStatus": {
                "type": "string",
                "maxLength": 100
              },
              "healthMessage": {
                "type": "string",
                "maxLength": 1000
              }
            },
            "required": [
              "id",
              "workspaceId",
              "platform",
              "name"
            ],
            "additionalProperties": false
          }
        },
        "posts": {
          "maxItems": 1000,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "social_post_id": {
                "type": "string",
                "format": "uuid"
              },
              "workspace_id": {
                "type": "string",
                "format": "uuid"
              },
              "social_account_id": {
                "type": "string",
                "format": "uuid"
              },
              "platform": {
                "type": "string",
                "enum": [
                  "instagram",
                  "facebook",
                  "threads",
                  "youtube"
                ]
              },
              "provider_post_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "provider_published_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "content_format": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "permalink": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "provider_state": {
                "type": "string",
                "enum": [
                  "available",
                  "deleted",
                  "unavailable",
                  "unknown"
                ]
              },
              "first_seen_at": {
                "type": "string",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "format": "date-time"
              },
              "last_seen_at": {
                "type": "string",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                "format": "date-time"
              },
              "scheduled_post_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "provenance": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "instagram",
                      "facebook",
                      "threads",
                      "youtube"
                    ]
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "provider_api",
                      "provider_webhook",
                      "publication_outcome",
                      "backfill"
                    ]
                  },
                  "source_job_id": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "provider_api_version": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "schema_version": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "provider",
                  "source",
                  "source_job_id",
                  "provider_api_version",
                  "schema_version"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "social_post_id",
              "workspace_id",
              "social_account_id",
              "platform",
              "provider_post_id",
              "provider_published_at",
              "content_format",
              "permalink",
              "provider_state",
              "first_seen_at",
              "last_seen_at",
              "scheduled_post_id",
              "provenance"
            ],
            "additionalProperties": false
          }
        },
        "sources": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accountId": {
                "type": "string",
                "format": "uuid"
              },
              "platform": {
                "type": "string",
                "enum": [
                  "facebook",
                  "instagram",
                  "threads",
                  "youtube"
                ]
              },
              "resourceKind": {
                "type": "string",
                "enum": [
                  "account",
                  "post"
                ]
              },
              "providerResourceId": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 512
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "requestId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "partial",
                  "not_returned",
                  "unsupported",
                  "permission_required",
                  "threshold_not_met",
                  "no_data",
                  "failed",
                  "pending",
                  "stale"
                ]
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 8000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "envelope": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "contract_version": {
                        "type": "string",
                        "const": "provider-insights/v1"
                      },
                      "request_id": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "platform": {
                        "type": "string",
                        "enum": [
                          "facebook",
                          "instagram",
                          "threads",
                          "youtube"
                        ]
                      },
                      "resource": {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "enum": [
                              "account",
                              "post"
                            ]
                          },
                          "social_account_id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "provider_resource_id": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "social_account_id",
                          "provider_resource_id"
                        ],
                        "additionalProperties": false
                      },
                      "provider_api_version": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "fetched_at": {
                        "type": "string",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                        "format": "date-time"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "available",
                          "partial",
                          "unavailable"
                        ]
                      },
                      "availability": {
                        "minItems": 1,
                        "maxItems": 64,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "status": {
                              "type": "string",
                              "enum": [
                                "available",
                                "partial",
                                "not_returned",
                                "unsupported",
                                "permission_required",
                                "threshold_not_met",
                                "no_data",
                                "failed"
                              ]
                            },
                            "reason": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "diagnostics": {
                              "type": "object",
                              "properties": {
                                "http_status": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 599
                                },
                                "failed_step": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "provider_code": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string",
                                      "maxLength": 100
                                    }
                                  ]
                                },
                                "provider_subcode": {
                                  "anyOf": [
                                    {
                                      "type": "number"
                                    },
                                    {
                                      "type": "string",
                                      "maxLength": 100
                                    }
                                  ]
                                },
                                "provider_type": {
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "is_transient": {
                                  "type": "boolean"
                                },
                                "provider_request_id": {
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "access": {
                                  "type": "object",
                                  "properties": {
                                    "login_mode": {
                                      "type": "string",
                                      "enum": [
                                        "instagram_login",
                                        "facebook_login",
                                        "threads_user"
                                      ]
                                    },
                                    "provider_host": {
                                      "type": "string",
                                      "maxLength": 200
                                    },
                                    "required_permissions": {
                                      "maxItems": 16,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "maxLength": 100
                                      }
                                    },
                                    "current_connection_policy_permissions": {
                                      "maxItems": 16,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "maxLength": 100
                                      }
                                    },
                                    "granted_permissions": {
                                      "anyOf": [
                                        {
                                          "maxItems": 128,
                                          "type": "array",
                                          "items": {
                                            "type": "string",
                                            "maxLength": 100
                                          }
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "grant_evidence": {
                                      "type": "string",
                                      "enum": [
                                        "exact",
                                        "unknown"
                                      ]
                                    },
                                    "permission_state": {
                                      "type": "string",
                                      "enum": [
                                        "granted",
                                        "missing",
                                        "unknown"
                                      ]
                                    },
                                    "grant_observed_at": {
                                      "type": "string",
                                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                                      "format": "date-time"
                                    },
                                    "app_access": {
                                      "type": "string",
                                      "const": "unverified"
                                    },
                                    "next_step": {
                                      "type": "string",
                                      "maxLength": 1500
                                    }
                                  },
                                  "required": [
                                    "login_mode",
                                    "provider_host",
                                    "required_permissions",
                                    "current_connection_policy_permissions",
                                    "granted_permissions",
                                    "grant_evidence",
                                    "permission_state",
                                    "app_access",
                                    "next_step"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "http_status"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "scope",
                            "status"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "provider_data": {
                        "anyOf": [
                          {},
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "requested_date_range": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "start_date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              "end_date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              }
                            },
                            "required": [
                              "start_date",
                              "end_date"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "cache": {
                        "type": "object",
                        "properties": {
                          "authoritative": {
                            "type": "boolean",
                            "const": false
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "stored",
                              "hit",
                              "bypassed"
                            ]
                          },
                          "expires_at": {
                            "type": "string",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "authoritative",
                          "status",
                          "expires_at"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "contract_version",
                      "request_id",
                      "platform",
                      "resource",
                      "provider_api_version",
                      "fetched_at",
                      "status",
                      "availability",
                      "provider_data",
                      "requested_date_range",
                      "cache"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metrics": {
                "maxItems": 5000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 150
                    },
                    "definition": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1000
                    },
                    "unit": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "grain": {
                      "type": "string",
                      "enum": [
                        "post",
                        "account"
                      ]
                    },
                    "value": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "availability": {
                      "type": "string",
                      "enum": [
                        "available",
                        "partial",
                        "not_returned",
                        "unsupported",
                        "permission_required",
                        "threshold_not_met",
                        "no_data",
                        "failed",
                        "pending",
                        "stale"
                      ]
                    },
                    "reason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "maxLength": 4000
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "measurement": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "lifetime",
                            "snapshot",
                            "period",
                            "unknown"
                          ]
                        },
                        "period": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "start": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "end": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "timezone": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 100
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "kind",
                        "period",
                        "start",
                        "end",
                        "timezone"
                      ],
                      "additionalProperties": false
                    },
                    "sourcePath": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "key",
                    "definition",
                    "unit",
                    "grain",
                    "value",
                    "availability",
                    "reason",
                    "measurement",
                    "sourcePath"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "accountId",
              "platform",
              "resourceKind",
              "providerResourceId",
              "requestId",
              "status",
              "reason",
              "envelope",
              "metrics"
            ],
            "additionalProperties": false
          }
        },
        "coverage": {
          "type": "object",
          "properties": {
            "population": {
              "type": "string",
              "const": "discovered_posts"
            },
            "postsComplete": {
              "type": "boolean"
            },
            "nextCursor": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 16384
                },
                {
                  "type": "null"
                }
              ]
            },
            "postLimit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000
            },
            "postInsightsLimit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "omittedPostInsights": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "notes": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 2000
              }
            }
          },
          "required": [
            "population",
            "postsComplete",
            "nextCursor",
            "postLimit",
            "postInsightsLimit",
            "omittedPostInsights",
            "notes"
          ],
          "additionalProperties": false
        },
        "customMetrics": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "version": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "expression": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1000
              },
              "definition": {
                "type": "string",
                "maxLength": 1000
              },
              "unit": {
                "type": "string",
                "maxLength": 100
              },
              "grain": {
                "type": "string",
                "enum": [
                  "post",
                  "account",
                  "compatible_sum"
                ]
              },
              "rounding": {
                "type": "object",
                "properties": {
                  "decimalPlaces": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "mode": {
                    "type": "string",
                    "const": "half_away_from_zero"
                  }
                },
                "required": [
                  "decimalPlaces",
                  "mode"
                ],
                "additionalProperties": false
              },
              "inputs": {
                "maxItems": 5000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uuid"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "sourcePath": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "value": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "availability": {
                      "type": "string",
                      "enum": [
                        "available",
                        "partial",
                        "not_returned",
                        "unsupported",
                        "permission_required",
                        "threshold_not_met",
                        "no_data",
                        "failed",
                        "pending",
                        "stale"
                      ]
                    }
                  },
                  "required": [
                    "requestId",
                    "sourcePath",
                    "value",
                    "availability"
                  ],
                  "additionalProperties": false
                }
              },
              "value": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "availability": {
                "type": "string",
                "enum": [
                  "available",
                  "partial",
                  "not_returned",
                  "unsupported",
                  "permission_required",
                  "threshold_not_met",
                  "no_data",
                  "failed",
                  "pending",
                  "stale"
                ]
              },
              "reason": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 4000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "formula": {
                "type": "object",
                "properties": {
                  "contractVersion": {
                    "type": "string",
                    "const": "analytics-metric/v1"
                  },
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "expression": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "fields": {
                    "maxItems": 32,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "identifier": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9_]{0,63}$"
                        },
                        "selector": {
                          "type": "object",
                          "properties": {
                            "platform": {
                              "type": "string",
                              "enum": [
                                "facebook",
                                "instagram",
                                "threads",
                                "youtube"
                              ]
                            },
                            "key": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,100}$"
                            },
                            "definition": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "unit": {
                              "type": "string",
                              "enum": [
                                "count",
                                "seconds",
                                "minutes",
                                "percent",
                                "ratio"
                              ]
                            },
                            "grain": {
                              "type": "string",
                              "enum": [
                                "post",
                                "account"
                              ]
                            },
                            "measurementKind": {
                              "type": "string",
                              "enum": [
                                "lifetime",
                                "snapshot",
                                "period",
                                "unknown"
                              ]
                            },
                            "nativePeriod": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "timezone": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "platform",
                            "key",
                            "definition",
                            "unit",
                            "grain",
                            "measurementKind",
                            "nativePeriod",
                            "timezone"
                          ],
                          "additionalProperties": false
                        },
                        "aggregation": {
                          "type": "string",
                          "enum": [
                            "single",
                            "sum"
                          ]
                        }
                      },
                      "required": [
                        "identifier",
                        "selector",
                        "aggregation"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "rounding": {
                    "type": "object",
                    "properties": {
                      "decimalPlaces": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                      },
                      "mode": {
                        "type": "string",
                        "const": "half_away_from_zero"
                      }
                    },
                    "required": [
                      "decimalPlaces",
                      "mode"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "contractVersion",
                  "id",
                  "workspaceId",
                  "name",
                  "version",
                  "expression",
                  "fields",
                  "rounding"
                ],
                "additionalProperties": false
              },
              "calculation": {
                "type": "object",
                "properties": {
                  "contractVersion": {
                    "type": "string",
                    "const": "analytics-metric/v1"
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "datasetId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "formulaId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "version": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "expression": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "rounding": {
                    "type": "object",
                    "properties": {
                      "decimalPlaces": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                      },
                      "mode": {
                        "type": "string",
                        "const": "half_away_from_zero"
                      }
                    },
                    "required": [
                      "decimalPlaces",
                      "mode"
                    ],
                    "additionalProperties": false
                  },
                  "value": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "unit": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "available",
                      "not_returned"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "enum": [
                      "ok",
                      "invalid_expression",
                      "missing_input",
                      "incompatible_input",
                      "zero_denominator",
                      "numeric_limit",
                      "workspace_mismatch",
                      "ambiguous_input",
                      "unknown_exclusion"
                    ]
                  },
                  "reason": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "excludedInputIds": {
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 1500
                    }
                  },
                  "inputs": {
                    "maxItems": 5000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "inputId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1500
                        },
                        "selector": {
                          "type": "object",
                          "properties": {
                            "platform": {
                              "type": "string",
                              "enum": [
                                "facebook",
                                "instagram",
                                "threads",
                                "youtube"
                              ]
                            },
                            "key": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,100}$"
                            },
                            "definition": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "unit": {
                              "type": "string",
                              "enum": [
                                "count",
                                "seconds",
                                "minutes",
                                "percent",
                                "ratio"
                              ]
                            },
                            "grain": {
                              "type": "string",
                              "enum": [
                                "post",
                                "account"
                              ]
                            },
                            "measurementKind": {
                              "type": "string",
                              "enum": [
                                "lifetime",
                                "snapshot",
                                "period",
                                "unknown"
                              ]
                            },
                            "nativePeriod": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "timezone": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "platform",
                            "key",
                            "definition",
                            "unit",
                            "grain",
                            "measurementKind",
                            "nativePeriod",
                            "timezone"
                          ],
                          "additionalProperties": false
                        },
                        "value": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "availability": {
                          "type": "string",
                          "enum": [
                            "available",
                            "partial",
                            "not_returned",
                            "unsupported",
                            "permission_required",
                            "threshold_not_met",
                            "no_data",
                            "failed",
                            "pending",
                            "stale"
                          ]
                        },
                        "reason": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 8000
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "measurement": {
                          "type": "object",
                          "properties": {
                            "kind": {
                              "type": "string",
                              "enum": [
                                "lifetime",
                                "snapshot",
                                "period",
                                "unknown"
                              ]
                            },
                            "period": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "start": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "end": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "timezone": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "kind",
                            "period",
                            "start",
                            "end",
                            "timezone"
                          ],
                          "additionalProperties": false
                        },
                        "requestId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uuid"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourcePath": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "accountId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "providerResourceId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 512
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "fetchedAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                              "format": "date-time"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "identifier": {
                          "type": "string",
                          "pattern": "^[a-z][a-z0-9_]{0,63}$"
                        },
                        "included": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "inputId",
                        "selector",
                        "value",
                        "availability",
                        "reason",
                        "measurement",
                        "requestId",
                        "sourcePath",
                        "accountId",
                        "providerResourceId",
                        "fetchedAt",
                        "identifier",
                        "included"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "contractVersion",
                  "workspaceId",
                  "datasetId",
                  "formulaId",
                  "name",
                  "version",
                  "expression",
                  "rounding",
                  "value",
                  "unit",
                  "status",
                  "code",
                  "reason",
                  "excludedInputIds",
                  "inputs"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "name",
              "version",
              "expression",
              "definition",
              "unit",
              "grain",
              "rounding",
              "inputs",
              "value",
              "availability",
              "reason"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "contractVersion",
        "id",
        "reviewedAt",
        "selection",
        "accounts",
        "posts",
        "sources",
        "coverage",
        "customMetrics"
      ],
      "additionalProperties": false
    },
    "format": {
      "type": "string",
      "enum": [
        "pptx",
        "docx",
        "xlsx"
      ]
    },
    "output": {
      "type": "string",
      "enum": [
        "native",
        "pdf"
      ]
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "zh-Hant"
      ]
    },
    "template": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000
        },
        "source_base64": {
          "type": "string",
          "maxLength": 12582912
        },
        "source_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "mappings": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,63}$"
          },
          "additionalProperties": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "text"
                  },
                  "value": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "required": [
                  "kind",
                  "value"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "selection"
                  },
                  "field": {
                    "type": "string",
                    "enum": [
                      "accounts",
                      "period",
                      "timezone",
                      "platforms",
                      "dataset",
                      "reviewed",
                      "coverage"
                    ]
                  }
                },
                "required": [
                  "kind",
                  "field"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "metric"
                  },
                  "platform": {
                    "type": "string",
                    "enum": [
                      "facebook",
                      "instagram",
                      "threads",
                      "youtube"
                    ]
                  },
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 150
                  },
                  "unit": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "grain": {
                    "type": "string",
                    "enum": [
                      "post",
                      "account"
                    ]
                  },
                  "measurementKind": {
                    "type": "string",
                    "enum": [
                      "lifetime",
                      "snapshot",
                      "period",
                      "unknown"
                    ]
                  },
                  "accountId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "providerResourceId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 512
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "sourcePath": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "requestId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "kind",
                  "platform",
                  "key",
                  "unit",
                  "grain",
                  "measurementKind"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "formula"
                  },
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  }
                },
                "required": [
                  "kind",
                  "id",
                  "version"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "table"
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "measurements",
                      "formulas"
                    ]
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                  }
                },
                "required": [
                  "kind",
                  "source",
                  "limit"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "chart"
                  },
                  "source": {
                    "type": "string",
                    "const": "publication_by_platform"
                  }
                },
                "required": [
                  "kind",
                  "source"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      },
      "required": [
        "id",
        "version",
        "source_base64",
        "source_sha256",
        "mappings"
      ],
      "additionalProperties": false
    },
    "reviewed_fingerprint": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "contract_version",
    "kind",
    "dataset",
    "format",
    "output",
    "locale",
    "template",
    "reviewed_fingerprint"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Voorbeeld van een toolaanroep

Deze voorbeelden gebruiken fictieve waarden die tegen de schema's zijn gecontroleerd. Vervang IDs door toegestane IDs, media door gereedstaande bestanden en datums door je bevestigde publicatietijd. Controleer accountgeschiktheid vóór een schrijfhandeling. Deze pagina verstuurt geen API-verzoeken.

{
  "name": "sosoapi_render_report_template",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "id": "11111111-1111-4111-8111-111111111111",
    "version": 1,
    "dataset": {
      "contractVersion": "analytics-report/v1",
      "id": "11111111-1111-4111-8111-111111111111",
      "reviewedAt": "2099-01-15T09:00:00Z",
      "selection": {
        "workspaceId": "11111111-1111-4111-8111-111111111111",
        "accountIds": [
          "11111111-1111-4111-8111-111111111111"
        ],
        "platforms": [
          "facebook"
        ],
        "startDate": "2099-01-15",
        "endDate": "2099-01-15",
        "timezone": "UTC"
      },
      "accounts": [
        {
          "id": "11111111-1111-4111-8111-111111111111",
          "workspaceId": "11111111-1111-4111-8111-111111111111",
          "platform": "facebook",
          "name": "Fictional report account"
        }
      ],
      "posts": [],
      "sources": [],
      "coverage": {
        "population": "discovered_posts",
        "postsComplete": false,
        "nextCursor": null,
        "postLimit": 0,
        "postInsightsLimit": 0,
        "omittedPostInsights": 0,
        "notes": []
      },
      "customMetrics": []
    },
    "reviewed_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  }
}

structuredContent

{
  "contract_version": "analytics-render-input/v1",
  "kind": "template",
  "dataset": {
    "contractVersion": "analytics-report/v1",
    "id": "11111111-1111-4111-8111-111111111111",
    "reviewedAt": "2099-01-15T09:00:00Z",
    "selection": {
      "workspaceId": "11111111-1111-4111-8111-111111111111",
      "accountIds": [
        "11111111-1111-4111-8111-111111111111"
      ],
      "platforms": [
        "facebook"
      ],
      "startDate": "2099-01-15",
      "endDate": "2099-01-15",
      "timezone": "UTC"
    },
    "accounts": [
      {
        "id": "11111111-1111-4111-8111-111111111111",
        "workspaceId": "11111111-1111-4111-8111-111111111111",
        "platform": "facebook",
        "name": "Fictional report account"
      }
    ],
    "posts": [],
    "sources": [],
    "coverage": {
      "population": "discovered_posts",
      "postsComplete": false,
      "nextCursor": null,
      "postLimit": 0,
      "postInsightsLimit": 0,
      "omittedPostInsights": 0,
      "notes": []
    },
    "customMetrics": []
  },
  "format": "pptx",
  "output": "native",
  "locale": "en",
  "template": {
    "id": "11111111-1111-4111-8111-111111111111",
    "version": 1,
    "source_base64": "example",
    "source_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "mappings": {}
  },
  "reviewed_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
Installeer of verbind MCP