La búsqueda solo se carga cuando la usas. Explora todas las categorías a continuación.

Analítica y estadísticas

Exportar datos de análisis revisados

Preparar los datos de entrada de análisis revisados para el navegador o sosoapi report render. Utiliza el conjunto de datos y la versión revisados y seleccionados explícitamente; no actualiza las fuentes automáticamente. Los datos de entrada de renderizado se pueden pasar mediante una tubería a sosoapi report render --output FILE.

POST /analytics-api/reporting/export

Contrato revisado: · sha256:d6e85a113e8fb367

Descripción general

Preparar los datos de entrada de análisis revisados para el navegador o sosoapi report render. Utiliza el conjunto de datos y la versión revisados y seleccionados explícitamente; no actualiza las fuentes automáticamente. Los datos de entrada de renderizado se pueden pasar mediante una tubería a sosoapi report render --output FILE.

Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.

Autenticación y permisos

Clases de credenciales aceptadas
user_session, delegated_oauth, personal_access_token
Capacidad delegada
agent:operate
Rol mínimo del espacio de trabajo
viewer
Alcance del acceso
Recursos a los que este usuario está autorizado a acceder
Se requiere consentimiento para todos los espacios de trabajo
No
Cambia el estado
No
Cuando la operación se completa
synchronous_http_response

Un token solo puede usar los derechos de su propietario. Cada solicitud comprueba pertenencia al espacio, propiedad del recurso, espacios elegidos y capacidades concedidas. Los perfiles core y full cambian qué herramientas se muestran; no conceden acceso.

Campos de solicitud

Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.

Campos de solicitud
Campo / ramaTipo / obligatorioRestricciones
$objectObligatorio en el objeto principal
  • additionalProperties: false
workspace_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
datasetobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.contractVersionstringObligatorio en el objeto principal
  • const: "analytics-report/v1"
dataset.idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.reviewedAtstringObligatorio en el objeto principal
  • 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.selectionobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.selection.workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.selection.accountIdsarrayObligatorio en el objeto principal
  • minItems: 1
  • maxItems: 50
dataset.selection.accountIds[]stringOpcional / elemento
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.selection.platformsarrayObligatorio en el objeto principal
  • minItems: 1
  • maxItems: 4
dataset.selection.platforms[]stringOpcional / elemento
  • enum: ["facebook","instagram","threads","youtube"]
dataset.selection.startDatestringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.endDatestringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.timezonestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.accountsarrayObligatorio en el objeto principal
  • maxItems: 50
dataset.accounts[]objectOpcional / elemento
  • additionalProperties: false
dataset.accounts[].idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.accounts[].workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.accounts[].platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.accounts[].namestringObligatorio en el objeto principal
  • maxLength: 500
dataset.accounts[].connectionStatusstringOpcional / elemento
  • maxLength: 100
dataset.accounts[].healthMessagestringOpcional / elemento
  • maxLength: 1000
dataset.postsarrayObligatorio en el objeto principal
  • maxItems: 1000
dataset.posts[]objectOpcional / elemento
  • additionalProperties: false
dataset.posts[].social_post_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].workspace_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].social_account_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].platformstringObligatorio en el objeto principal
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provider_post_idstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 512
dataset.posts[].provider_published_atstring | nullObligatorio en el objeto principal—
dataset.posts[].provider_published_atanyOf 1stringObligatorio en el objeto principal
  • 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 2nullObligatorio en el objeto principal—
dataset.posts[].content_formatstring | nullObligatorio en el objeto principal—
dataset.posts[].content_formatanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.posts[].content_formatanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].permalinkstring | nullObligatorio en el objeto principal—
dataset.posts[].permalinkanyOf 1stringObligatorio en el objeto principal
  • format: "uri"
  • maxLength: 2048
dataset.posts[].permalinkanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provider_statestringObligatorio en el objeto principal
  • enum: ["available","deleted","unavailable","unknown"]
dataset.posts[].first_seen_atstringObligatorio en el objeto principal
  • 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_atstringObligatorio en el objeto principal
  • 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 | nullObligatorio en el objeto principal—
dataset.posts[].scheduled_post_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].scheduled_post_idanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provenanceobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.posts[].provenance.providerstringObligatorio en el objeto principal
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provenance.sourcestringObligatorio en el objeto principal
  • enum: ["provider_api","provider_webhook","publication_outcome","backfill"]
dataset.posts[].provenance.source_job_idstring | nullObligatorio en el objeto principal—
dataset.posts[].provenance.source_job_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].provenance.source_job_idanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provenance.provider_api_versionstring | nullObligatorio en el objeto principal—
dataset.posts[].provenance.provider_api_versionanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.provider_api_versionanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provenance.schema_versionstring | nullObligatorio en el objeto principal—
dataset.posts[].provenance.schema_versionanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.schema_versionanyOf 2nullObligatorio en el objeto principal—
dataset.sourcesarrayObligatorio en el objeto principal
  • maxItems: 30
dataset.sources[]objectOpcional / elemento
  • additionalProperties: false
dataset.sources[].accountIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].resourceKindstringObligatorio en el objeto principal
  • enum: ["account","post"]
dataset.sources[].providerResourceIdstring | nullObligatorio en el objeto principal—
dataset.sources[].providerResourceIdanyOf 1stringObligatorio en el objeto principal
  • maxLength: 512
dataset.sources[].providerResourceIdanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].requestIdstring | nullObligatorio en el objeto principal—
dataset.sources[].requestIdanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].requestIdanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].statusstringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].reasonstring | nullObligatorio en el objeto principal—
dataset.sources[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 8000
dataset.sources[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelopeobject | nullObligatorio en el objeto principal—
dataset.sources[].envelopeanyOf 1objectObligatorio en el objeto principal
  • additionalProperties: false
dataset.sources[].envelope.contract_versionanyOf 1stringObligatorio en el objeto principal
  • const: "provider-insights/v1"
dataset.sources[].envelope.request_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].envelope.platformanyOf 1stringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].envelope.resourceanyOf 1objectObligatorio en el objeto principal
  • additionalProperties: false
dataset.sources[].envelope.resource.kindanyOf 1stringObligatorio en el objeto principal
  • enum: ["account","post"]
dataset.sources[].envelope.resource.social_account_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].envelope.resource.provider_resource_idanyOf 1string | nullObligatorio en el objeto principal—
dataset.sources[].envelope.provider_api_versionanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.sources[].envelope.fetched_atanyOf 1stringObligatorio en el objeto principal
  • 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 1stringObligatorio en el objeto principal
  • enum: ["available","partial","unavailable"]
dataset.sources[].envelope.availabilityanyOf 1arrayObligatorio en el objeto principal
  • minItems: 1
  • maxItems: 64
dataset.sources[].envelope.availability[]anyOf 1objectOpcional / elemento
  • additionalProperties: false
dataset.sources[].envelope.availability[].scopeanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].statusanyOf 1stringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed"]
dataset.sources[].envelope.availability[].reasonanyOf 1stringOpcional / elemento
  • minLength: 1
  • maxLength: 2000
dataset.sources[].envelope.availability[].diagnosticsanyOf 1objectOpcional / elemento
  • additionalProperties: false
dataset.sources[].envelope.availability[].diagnostics.http_statusanyOf 1integerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 599
dataset.sources[].envelope.availability[].diagnostics.failed_stepanyOf 1stringOpcional / elemento
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1number | stringOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 1numberOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 2stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1number | stringOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 1numberOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 2stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_typeanyOf 1stringOpcional / elemento
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.is_transientanyOf 1booleanOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_request_idanyOf 1stringOpcional / elemento
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.accessanyOf 1objectOpcional / elemento
  • additionalProperties: false
dataset.sources[].envelope.availability[].diagnostics.access.login_modeanyOf 1stringObligatorio en el objeto principal
  • enum: ["instagram_login","facebook_login","threads_user"]
dataset.sources[].envelope.availability[].diagnostics.access.provider_hostanyOf 1stringObligatorio en el objeto principal
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.access.required_permissionsanyOf 1arrayObligatorio en el objeto principal
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.required_permissions[]anyOf 1stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissionsanyOf 1arrayObligatorio en el objeto principal
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissions[]anyOf 1stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1array | nullObligatorio en el objeto principal—
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 1arrayObligatorio en el objeto principal
  • maxItems: 128
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissions[]anyOf 1 / anyOf 1stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelope.availability[].diagnostics.access.grant_evidenceanyOf 1stringObligatorio en el objeto principal
  • enum: ["exact","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.permission_stateanyOf 1stringObligatorio en el objeto principal
  • enum: ["granted","missing","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.grant_observed_atanyOf 1stringOpcional / elemento
  • 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 1stringObligatorio en el objeto principal
  • const: "unverified"
dataset.sources[].envelope.availability[].diagnostics.access.next_stepanyOf 1stringObligatorio en el objeto principal
  • maxLength: 1500
dataset.sources[].envelope.provider_dataanyOf 1any JSON value | nullObligatorio en el objeto principal—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 1any JSON valueObligatorio en el objeto principal—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelope.requested_date_rangeanyOf 1object | nullObligatorio en el objeto principal—
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 1objectObligatorio en el objeto principal
  • additionalProperties: false
dataset.sources[].envelope.requested_date_range.start_dateanyOf 1 / anyOf 1stringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_range.end_dateanyOf 1 / anyOf 1stringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelope.cacheanyOf 1objectObligatorio en el objeto principal
  • additionalProperties: false
dataset.sources[].envelope.cache.authoritativeanyOf 1booleanObligatorio en el objeto principal
  • const: false
dataset.sources[].envelope.cache.statusanyOf 1stringObligatorio en el objeto principal
  • enum: ["stored","hit","bypassed"]
dataset.sources[].envelope.cache.expires_atanyOf 1stringObligatorio en el objeto principal
  • 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 2nullObligatorio en el objeto principal—
dataset.sources[].metricsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.sources[].metrics[]objectOpcional / elemento
  • additionalProperties: false
dataset.sources[].metrics[].keystringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 150
dataset.sources[].metrics[].definitionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.sources[].metrics[].unitstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.sources[].metrics[].grainstringObligatorio en el objeto principal
  • enum: ["post","account"]
dataset.sources[].metrics[].valuenumber | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].metrics[].reasonstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 4000
dataset.sources[].metrics[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurementobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.sources[].metrics[].measurement.kindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.sources[].metrics[].measurement.periodstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.periodanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.periodanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.startstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.startanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.startanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.endstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.endanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.endanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.timezonestring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.timezoneanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].sourcePathstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 2000
dataset.coverageobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.coverage.populationstringObligatorio en el objeto principal
  • const: "discovered_posts"
dataset.coverage.postsCompletebooleanObligatorio en el objeto principal—
dataset.coverage.nextCursorstring | nullObligatorio en el objeto principal—
dataset.coverage.nextCursoranyOf 1stringObligatorio en el objeto principal
  • maxLength: 16384
dataset.coverage.nextCursoranyOf 2nullObligatorio en el objeto principal—
dataset.coverage.postLimitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 1000
dataset.coverage.postInsightsLimitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 20
dataset.coverage.omittedPostInsightsintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
dataset.coverage.notesarrayObligatorio en el objeto principal
  • maxItems: 50
dataset.coverage.notes[]stringOpcional / elemento
  • maxLength: 2000
dataset.customMetricsarrayObligatorio en el objeto principal
  • maxItems: 50
dataset.customMetrics[]objectOpcional / elemento
  • additionalProperties: false
dataset.customMetrics[].idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].namestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].versionintegerObligatorio en el objeto principal
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].expressionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].definitionstringObligatorio en el objeto principal
  • maxLength: 1000
dataset.customMetrics[].unitstringObligatorio en el objeto principal
  • maxLength: 100
dataset.customMetrics[].grainstringObligatorio en el objeto principal
  • enum: ["post","account","compatible_sum"]
dataset.customMetrics[].roundingobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.customMetrics[].rounding.decimalPlacesintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].rounding.modestringObligatorio en el objeto principal
  • const: "half_away_from_zero"
dataset.customMetrics[].inputsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.customMetrics[].inputs[]objectOpcional / elemento
  • additionalProperties: false
dataset.customMetrics[].inputs[].requestIdstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].inputs[].requestIdanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].inputs[].requestIdanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].inputs[].sourcePathstringObligatorio en el objeto principal
  • maxLength: 2000
dataset.customMetrics[].inputs[].valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].inputs[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].reasonstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 4000
dataset.customMetrics[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].formulaobjectOpcional / elemento
  • additionalProperties: false
dataset.customMetrics[].formula.contractVersionstringObligatorio en el objeto principal
  • const: "analytics-metric/v1"
dataset.customMetrics[].formula.idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].formula.workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].formula.namestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.versionintegerObligatorio en el objeto principal
  • minimum: 1
  • maximum: 1000000
dataset.customMetrics[].formula.expressionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].formula.fieldsarrayObligatorio en el objeto principal
  • maxItems: 32
dataset.customMetrics[].formula.fields[]objectOpcional / elemento
  • additionalProperties: false
dataset.customMetrics[].formula.fields[].identifierstringObligatorio en el objeto principal
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].formula.fields[].selectorobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.customMetrics[].formula.fields[].selector.platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].formula.fields[].selector.keystringObligatorio en el objeto principal
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].formula.fields[].selector.definitionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].formula.fields[].selector.unitstringObligatorio en el objeto principal
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].formula.fields[].selector.grainstringObligatorio en el objeto principal
  • enum: ["post","account"]
dataset.customMetrics[].formula.fields[].selector.measurementKindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].formula.fields[].selector.nativePeriodstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.timezonestring | nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].aggregationstringObligatorio en el objeto principal
  • enum: ["single","sum"]
dataset.customMetrics[].formula.roundingobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.customMetrics[].formula.rounding.decimalPlacesintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].formula.rounding.modestringObligatorio en el objeto principal
  • const: "half_away_from_zero"
dataset.customMetrics[].calculationobjectOpcional / elemento
  • additionalProperties: false
dataset.customMetrics[].calculation.contractVersionstringObligatorio en el objeto principal
  • const: "analytics-metric/v1"
dataset.customMetrics[].calculation.workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.datasetIdstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.formulaIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.namestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.versionintegerObligatorio en el objeto principal
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].calculation.expressionstringObligatorio en el objeto principal
  • maxLength: 1000
dataset.customMetrics[].calculation.roundingobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.customMetrics[].calculation.rounding.decimalPlacesintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].calculation.rounding.modestringObligatorio en el objeto principal
  • const: "half_away_from_zero"
dataset.customMetrics[].calculation.valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.unitstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.customMetrics[].calculation.statusstringObligatorio en el objeto principal
  • enum: ["available","not_returned"]
dataset.customMetrics[].calculation.codestringObligatorio en el objeto principal
  • enum: ["ok","invalid_expression","missing_input","incompatible_input","zero_denominator","numeric_limit","workspace_mismatch","ambiguous_input","unknown_exclusion"]
dataset.customMetrics[].calculation.reasonstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.reasonanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.reasonanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.excludedInputIdsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.customMetrics[].calculation.excludedInputIds[]stringOpcional / elemento
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.customMetrics[].calculation.inputs[]objectOpcional / elemento
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].inputIdstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputs[].selectorobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].selector.platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].calculation.inputs[].selector.keystringObligatorio en el objeto principal
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].calculation.inputs[].selector.definitionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.inputs[].selector.unitstringObligatorio en el objeto principal
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].calculation.inputs[].selector.grainstringObligatorio en el objeto principal
  • enum: ["post","account"]
dataset.customMetrics[].calculation.inputs[].selector.measurementKindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.timezonestring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].calculation.inputs[].reasonstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 8000
dataset.customMetrics[].calculation.inputs[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurementobjectObligatorio en el objeto principal
  • additionalProperties: false
dataset.customMetrics[].calculation.inputs[].measurement.kindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].measurement.periodstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.startstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.endstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.timezonestring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].requestIdstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].sourcePathstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].calculation.inputs[].accountIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.inputs[].providerResourceIdstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 512
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].fetchedAtstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].fetchedAtanyOf 1stringObligatorio en el objeto principal
  • 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 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].identifierstringObligatorio en el objeto principal
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].calculation.inputs[].includedbooleanObligatorio en el objeto principal—
formatstringObligatorio en el objeto principal
  • enum: ["csv","xlsx","pdf"]
localestringOpcional / elemento
  • enum: ["en","zh-Hant"]
  • default: "en"
titlestringOpcional / elemento
  • maxLength: 160
JSON Schema completo
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "dataset": {
      "type": "object",
      "properties": {
        "contractVersion": {
          "type": "string",
          "const": "analytics-report/v1"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "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",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "accountIds": {
              "minItems": 1,
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            },
            "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",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "workspace_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "social_account_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "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",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      {
                        "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",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "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",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "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",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "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",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        {
                          "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "datasetId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "formulaId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "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",
                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourcePath": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "accountId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "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": [
        "csv",
        "xlsx",
        "pdf"
      ]
    },
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "zh-Hant"
      ]
    },
    "title": {
      "type": "string",
      "maxLength": 160
    }
  },
  "required": [
    "workspace_id",
    "dataset",
    "format"
  ],
  "additionalProperties": false
}

Respuesta y finalización

Estados HTTP de éxito: 200. Cuando la operación se completa: synchronous_http_response.

Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.

Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.

Respuesta y finalización
Campo / ramaTipo / obligatorioRestricciones
$objectObligatorio en el objeto principal—
contract_versionstringObligatorio en el objeto principal
  • const: "analytics-render-input/v1"
kindstringObligatorio en el objeto principal
  • const: "standard"
datasetobjectObligatorio en el objeto principal—
dataset.contractVersionstringObligatorio en el objeto principal
  • const: "analytics-report/v1"
dataset.idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.reviewedAtstringObligatorio en el objeto principal
  • 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.selectionobjectObligatorio en el objeto principal—
dataset.selection.workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.selection.accountIdsarrayObligatorio en el objeto principal
  • minItems: 1
  • maxItems: 50
dataset.selection.accountIds[]stringOpcional / elemento
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.selection.platformsarrayObligatorio en el objeto principal
  • minItems: 1
  • maxItems: 4
dataset.selection.platforms[]stringOpcional / elemento
  • enum: ["facebook","instagram","threads","youtube"]
dataset.selection.startDatestringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.endDatestringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.selection.timezonestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.accountsarrayObligatorio en el objeto principal
  • maxItems: 50
dataset.accounts[]objectOpcional / elemento—
dataset.accounts[].idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.accounts[].workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.accounts[].platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.accounts[].namestringObligatorio en el objeto principal
  • maxLength: 500
dataset.accounts[].connectionStatusstringOpcional / elemento
  • maxLength: 100
dataset.accounts[].healthMessagestringOpcional / elemento
  • maxLength: 1000
dataset.postsarrayObligatorio en el objeto principal
  • maxItems: 1000
dataset.posts[]objectOpcional / elemento—
dataset.posts[].social_post_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].workspace_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].social_account_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].platformstringObligatorio en el objeto principal
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provider_post_idstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 512
dataset.posts[].provider_published_atstring | nullObligatorio en el objeto principal—
dataset.posts[].provider_published_atanyOf 1stringObligatorio en el objeto principal
  • 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 2nullObligatorio en el objeto principal—
dataset.posts[].content_formatstring | nullObligatorio en el objeto principal—
dataset.posts[].content_formatanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.posts[].content_formatanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].permalinkstring | nullObligatorio en el objeto principal—
dataset.posts[].permalinkanyOf 1stringObligatorio en el objeto principal
  • format: "uri"
  • maxLength: 2048
dataset.posts[].permalinkanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provider_statestringObligatorio en el objeto principal
  • enum: ["available","deleted","unavailable","unknown"]
dataset.posts[].first_seen_atstringObligatorio en el objeto principal
  • 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_atstringObligatorio en el objeto principal
  • 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 | nullObligatorio en el objeto principal—
dataset.posts[].scheduled_post_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].scheduled_post_idanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provenanceobjectObligatorio en el objeto principal—
dataset.posts[].provenance.providerstringObligatorio en el objeto principal
  • enum: ["instagram","facebook","threads","youtube"]
dataset.posts[].provenance.sourcestringObligatorio en el objeto principal
  • enum: ["provider_api","provider_webhook","publication_outcome","backfill"]
dataset.posts[].provenance.source_job_idstring | nullObligatorio en el objeto principal—
dataset.posts[].provenance.source_job_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.posts[].provenance.source_job_idanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provenance.provider_api_versionstring | nullObligatorio en el objeto principal—
dataset.posts[].provenance.provider_api_versionanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.provider_api_versionanyOf 2nullObligatorio en el objeto principal—
dataset.posts[].provenance.schema_versionstring | nullObligatorio en el objeto principal—
dataset.posts[].provenance.schema_versionanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.posts[].provenance.schema_versionanyOf 2nullObligatorio en el objeto principal—
dataset.sourcesarrayObligatorio en el objeto principal
  • maxItems: 30
dataset.sources[]objectOpcional / elemento—
dataset.sources[].accountIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].resourceKindstringObligatorio en el objeto principal
  • enum: ["account","post"]
dataset.sources[].providerResourceIdstring | nullObligatorio en el objeto principal—
dataset.sources[].providerResourceIdanyOf 1stringObligatorio en el objeto principal
  • maxLength: 512
dataset.sources[].providerResourceIdanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].requestIdstring | nullObligatorio en el objeto principal—
dataset.sources[].requestIdanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].requestIdanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].statusstringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].reasonstring | nullObligatorio en el objeto principal—
dataset.sources[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 8000
dataset.sources[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelopeobject | nullObligatorio en el objeto principal—
dataset.sources[].envelopeanyOf 1objectObligatorio en el objeto principal—
dataset.sources[].envelope.contract_versionanyOf 1stringObligatorio en el objeto principal
  • const: "provider-insights/v1"
dataset.sources[].envelope.request_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].envelope.platformanyOf 1stringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.sources[].envelope.resourceanyOf 1objectObligatorio en el objeto principal—
dataset.sources[].envelope.resource.kindanyOf 1stringObligatorio en el objeto principal
  • enum: ["account","post"]
dataset.sources[].envelope.resource.social_account_idanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.sources[].envelope.resource.provider_resource_idanyOf 1string | nullObligatorio en el objeto principal—
dataset.sources[].envelope.provider_api_versionanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.sources[].envelope.fetched_atanyOf 1stringObligatorio en el objeto principal
  • 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 1stringObligatorio en el objeto principal
  • enum: ["available","partial","unavailable"]
dataset.sources[].envelope.availabilityanyOf 1arrayObligatorio en el objeto principal
  • minItems: 1
  • maxItems: 64
dataset.sources[].envelope.availability[]anyOf 1objectOpcional / elemento—
dataset.sources[].envelope.availability[].scopeanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].statusanyOf 1stringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed"]
dataset.sources[].envelope.availability[].reasonanyOf 1stringOpcional / elemento
  • minLength: 1
  • maxLength: 2000
dataset.sources[].envelope.availability[].diagnosticsanyOf 1objectOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.http_statusanyOf 1integerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 599
dataset.sources[].envelope.availability[].diagnostics.failed_stepanyOf 1stringOpcional / elemento
  • minLength: 1
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1number | stringOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 1numberOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_codeanyOf 1 / anyOf 2stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1number | stringOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 1numberOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_subcodeanyOf 1 / anyOf 2stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.provider_typeanyOf 1stringOpcional / elemento
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.is_transientanyOf 1booleanOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.provider_request_idanyOf 1stringOpcional / elemento
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.accessanyOf 1objectOpcional / elemento—
dataset.sources[].envelope.availability[].diagnostics.access.login_modeanyOf 1stringObligatorio en el objeto principal
  • enum: ["instagram_login","facebook_login","threads_user"]
dataset.sources[].envelope.availability[].diagnostics.access.provider_hostanyOf 1stringObligatorio en el objeto principal
  • maxLength: 200
dataset.sources[].envelope.availability[].diagnostics.access.required_permissionsanyOf 1arrayObligatorio en el objeto principal
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.required_permissions[]anyOf 1stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissionsanyOf 1arrayObligatorio en el objeto principal
  • maxItems: 16
dataset.sources[].envelope.availability[].diagnostics.access.current_connection_policy_permissions[]anyOf 1stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1array | nullObligatorio en el objeto principal—
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 1arrayObligatorio en el objeto principal
  • maxItems: 128
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissions[]anyOf 1 / anyOf 1stringOpcional / elemento
  • maxLength: 100
dataset.sources[].envelope.availability[].diagnostics.access.granted_permissionsanyOf 1 / anyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelope.availability[].diagnostics.access.grant_evidenceanyOf 1stringObligatorio en el objeto principal
  • enum: ["exact","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.permission_stateanyOf 1stringObligatorio en el objeto principal
  • enum: ["granted","missing","unknown"]
dataset.sources[].envelope.availability[].diagnostics.access.grant_observed_atanyOf 1stringOpcional / elemento
  • 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 1stringObligatorio en el objeto principal
  • const: "unverified"
dataset.sources[].envelope.availability[].diagnostics.access.next_stepanyOf 1stringObligatorio en el objeto principal
  • maxLength: 1500
dataset.sources[].envelope.provider_dataanyOf 1any JSON value | nullObligatorio en el objeto principal—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 1any JSON valueObligatorio en el objeto principal—
dataset.sources[].envelope.provider_dataanyOf 1 / anyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelope.requested_date_rangeanyOf 1object | nullObligatorio en el objeto principal—
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 1objectObligatorio en el objeto principal—
dataset.sources[].envelope.requested_date_range.start_dateanyOf 1 / anyOf 1stringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_range.end_dateanyOf 1 / anyOf 1stringObligatorio en el objeto principal
  • pattern: "^\\d{4}-\\d{2}-\\d{2}$"
dataset.sources[].envelope.requested_date_rangeanyOf 1 / anyOf 2nullObligatorio en el objeto principal—
dataset.sources[].envelope.cacheanyOf 1objectObligatorio en el objeto principal—
dataset.sources[].envelope.cache.authoritativeanyOf 1booleanObligatorio en el objeto principal
  • const: false
dataset.sources[].envelope.cache.statusanyOf 1stringObligatorio en el objeto principal
  • enum: ["stored","hit","bypassed"]
dataset.sources[].envelope.cache.expires_atanyOf 1stringObligatorio en el objeto principal
  • 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 2nullObligatorio en el objeto principal—
dataset.sources[].metricsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.sources[].metrics[]objectOpcional / elemento—
dataset.sources[].metrics[].keystringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 150
dataset.sources[].metrics[].definitionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.sources[].metrics[].unitstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.sources[].metrics[].grainstringObligatorio en el objeto principal
  • enum: ["post","account"]
dataset.sources[].metrics[].valuenumber | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.sources[].metrics[].reasonstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 4000
dataset.sources[].metrics[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurementobjectObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.kindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.sources[].metrics[].measurement.periodstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.periodanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.periodanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.startstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.startanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.startanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.endstring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.endanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.endanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.timezonestring | nullObligatorio en el objeto principal—
dataset.sources[].metrics[].measurement.timezoneanyOf 1stringObligatorio en el objeto principal
  • maxLength: 100
dataset.sources[].metrics[].measurement.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.sources[].metrics[].sourcePathstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 2000
dataset.coverageobjectObligatorio en el objeto principal—
dataset.coverage.populationstringObligatorio en el objeto principal
  • const: "discovered_posts"
dataset.coverage.postsCompletebooleanObligatorio en el objeto principal—
dataset.coverage.nextCursorstring | nullObligatorio en el objeto principal—
dataset.coverage.nextCursoranyOf 1stringObligatorio en el objeto principal
  • maxLength: 16384
dataset.coverage.nextCursoranyOf 2nullObligatorio en el objeto principal—
dataset.coverage.postLimitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 1000
dataset.coverage.postInsightsLimitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 20
dataset.coverage.omittedPostInsightsintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
dataset.coverage.notesarrayObligatorio en el objeto principal
  • maxItems: 50
dataset.coverage.notes[]stringOpcional / elemento
  • maxLength: 2000
dataset.customMetricsarrayObligatorio en el objeto principal
  • maxItems: 50
dataset.customMetrics[]objectOpcional / elemento—
dataset.customMetrics[].idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].namestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].versionintegerObligatorio en el objeto principal
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].expressionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].definitionstringObligatorio en el objeto principal
  • maxLength: 1000
dataset.customMetrics[].unitstringObligatorio en el objeto principal
  • maxLength: 100
dataset.customMetrics[].grainstringObligatorio en el objeto principal
  • enum: ["post","account","compatible_sum"]
dataset.customMetrics[].roundingobjectObligatorio en el objeto principal—
dataset.customMetrics[].rounding.decimalPlacesintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].rounding.modestringObligatorio en el objeto principal
  • const: "half_away_from_zero"
dataset.customMetrics[].inputsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.customMetrics[].inputs[]objectOpcional / elemento—
dataset.customMetrics[].inputs[].requestIdstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].inputs[].requestIdanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].inputs[].requestIdanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].inputs[].sourcePathstringObligatorio en el objeto principal
  • maxLength: 2000
dataset.customMetrics[].inputs[].valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].inputs[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].reasonstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 4000
dataset.customMetrics[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].formulaobjectOpcional / elemento—
dataset.customMetrics[].formula.contractVersionstringObligatorio en el objeto principal
  • const: "analytics-metric/v1"
dataset.customMetrics[].formula.idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].formula.workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].formula.namestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.versionintegerObligatorio en el objeto principal
  • minimum: 1
  • maximum: 1000000
dataset.customMetrics[].formula.expressionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].formula.fieldsarrayObligatorio en el objeto principal
  • maxItems: 32
dataset.customMetrics[].formula.fields[]objectOpcional / elemento—
dataset.customMetrics[].formula.fields[].identifierstringObligatorio en el objeto principal
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].formula.fields[].selectorobjectObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].formula.fields[].selector.keystringObligatorio en el objeto principal
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].formula.fields[].selector.definitionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].formula.fields[].selector.unitstringObligatorio en el objeto principal
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].formula.fields[].selector.grainstringObligatorio en el objeto principal
  • enum: ["post","account"]
dataset.customMetrics[].formula.fields[].selector.measurementKindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].formula.fields[].selector.nativePeriodstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].formula.fields[].selector.nativePeriodanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.timezonestring | nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].formula.fields[].selector.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].formula.fields[].aggregationstringObligatorio en el objeto principal
  • enum: ["single","sum"]
dataset.customMetrics[].formula.roundingobjectObligatorio en el objeto principal—
dataset.customMetrics[].formula.rounding.decimalPlacesintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].formula.rounding.modestringObligatorio en el objeto principal
  • const: "half_away_from_zero"
dataset.customMetrics[].calculationobjectOpcional / elemento—
dataset.customMetrics[].calculation.contractVersionstringObligatorio en el objeto principal
  • const: "analytics-metric/v1"
dataset.customMetrics[].calculation.workspaceIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.datasetIdstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.formulaIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.namestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.versionintegerObligatorio en el objeto principal
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
dataset.customMetrics[].calculation.expressionstringObligatorio en el objeto principal
  • maxLength: 1000
dataset.customMetrics[].calculation.roundingobjectObligatorio en el objeto principal—
dataset.customMetrics[].calculation.rounding.decimalPlacesintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 8
dataset.customMetrics[].calculation.rounding.modestringObligatorio en el objeto principal
  • const: "half_away_from_zero"
dataset.customMetrics[].calculation.valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.unitstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 200
dataset.customMetrics[].calculation.statusstringObligatorio en el objeto principal
  • enum: ["available","not_returned"]
dataset.customMetrics[].calculation.codestringObligatorio en el objeto principal
  • enum: ["ok","invalid_expression","missing_input","incompatible_input","zero_denominator","numeric_limit","workspace_mismatch","ambiguous_input","unknown_exclusion"]
dataset.customMetrics[].calculation.reasonstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.reasonanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.reasonanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.excludedInputIdsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.customMetrics[].calculation.excludedInputIds[]stringOpcional / elemento
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputsarrayObligatorio en el objeto principal
  • maxItems: 5000
dataset.customMetrics[].calculation.inputs[]objectOpcional / elemento—
dataset.customMetrics[].calculation.inputs[].inputIdstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1500
dataset.customMetrics[].calculation.inputs[].selectorobjectObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.platformstringObligatorio en el objeto principal
  • enum: ["facebook","instagram","threads","youtube"]
dataset.customMetrics[].calculation.inputs[].selector.keystringObligatorio en el objeto principal
  • pattern: "^[A-Za-z][A-Za-z0-9_]{0,100}$"
dataset.customMetrics[].calculation.inputs[].selector.definitionstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 500
dataset.customMetrics[].calculation.inputs[].selector.unitstringObligatorio en el objeto principal
  • enum: ["count","seconds","minutes","percent","ratio"]
dataset.customMetrics[].calculation.inputs[].selector.grainstringObligatorio en el objeto principal
  • enum: ["post","account"]
dataset.customMetrics[].calculation.inputs[].selector.measurementKindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].selector.nativePeriodanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.timezonestring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].selector.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].valuenumber | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].availabilitystringObligatorio en el objeto principal
  • enum: ["available","partial","not_returned","unsupported","permission_required","threshold_not_met","no_data","failed","pending","stale"]
dataset.customMetrics[].calculation.inputs[].reasonstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].reasonanyOf 1stringObligatorio en el objeto principal
  • maxLength: 8000
dataset.customMetrics[].calculation.inputs[].reasonanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurementobjectObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.kindstringObligatorio en el objeto principal
  • enum: ["lifetime","snapshot","period","unknown"]
dataset.customMetrics[].calculation.inputs[].measurement.periodstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.periodanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.startstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.startanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.endstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
dataset.customMetrics[].calculation.inputs[].measurement.endanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.timezonestring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 100
dataset.customMetrics[].calculation.inputs[].measurement.timezoneanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].requestIdstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 1stringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.inputs[].requestIdanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].sourcePathstringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 1000
dataset.customMetrics[].calculation.inputs[].accountIdstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
dataset.customMetrics[].calculation.inputs[].providerResourceIdstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 1stringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 512
dataset.customMetrics[].calculation.inputs[].providerResourceIdanyOf 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].fetchedAtstring | nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].fetchedAtanyOf 1stringObligatorio en el objeto principal
  • 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 2nullObligatorio en el objeto principal—
dataset.customMetrics[].calculation.inputs[].identifierstringObligatorio en el objeto principal
  • pattern: "^[a-z][a-z0-9_]{0,63}$"
dataset.customMetrics[].calculation.inputs[].includedbooleanObligatorio en el objeto principal—
formatstringObligatorio en el objeto principal
  • enum: ["csv","xlsx","pdf"]
localestringObligatorio en el objeto principal
  • enum: ["en","zh-Hant"]
titlestringOpcional / elemento
  • maxLength: 160
JSON Schema completo
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "analytics-render-input/v1"
    },
    "kind": {
      "type": "string",
      "const": "standard"
    },
    "dataset": {
      "type": "object",
      "properties": {
        "contractVersion": {
          "type": "string",
          "const": "analytics-report/v1"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "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",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "accountIds": {
              "minItems": 1,
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            },
            "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"
          ]
        },
        "accounts": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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"
            ]
          }
        },
        "posts": {
          "maxItems": 1000,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "social_post_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "workspace_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "social_account_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "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",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      {
                        "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"
                ]
              }
            },
            "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"
            ]
          }
        },
        "sources": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accountId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "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",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "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",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "provider_resource_id": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "social_account_id",
                          "provider_resource_id"
                        ]
                      },
                      "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"
                                  ]
                                }
                              },
                              "required": [
                                "http_status"
                              ]
                            }
                          },
                          "required": [
                            "scope",
                            "status"
                          ]
                        }
                      },
                      "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"
                            ]
                          },
                          {
                            "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"
                        ]
                      }
                    },
                    "required": [
                      "contract_version",
                      "request_id",
                      "platform",
                      "resource",
                      "provider_api_version",
                      "fetched_at",
                      "status",
                      "availability",
                      "provider_data",
                      "requested_date_range",
                      "cache"
                    ]
                  },
                  {
                    "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"
                      ]
                    },
                    "sourcePath": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "key",
                    "definition",
                    "unit",
                    "grain",
                    "value",
                    "availability",
                    "reason",
                    "measurement",
                    "sourcePath"
                  ]
                }
              }
            },
            "required": [
              "accountId",
              "platform",
              "resourceKind",
              "providerResourceId",
              "requestId",
              "status",
              "reason",
              "envelope",
              "metrics"
            ]
          }
        },
        "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"
          ]
        },
        "customMetrics": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "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"
                ]
              },
              "inputs": {
                "maxItems": 5000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        {
                          "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"
                  ]
                }
              },
              "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",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "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"
                          ]
                        },
                        "aggregation": {
                          "type": "string",
                          "enum": [
                            "single",
                            "sum"
                          ]
                        }
                      },
                      "required": [
                        "identifier",
                        "selector",
                        "aggregation"
                      ]
                    }
                  },
                  "rounding": {
                    "type": "object",
                    "properties": {
                      "decimalPlaces": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 8
                      },
                      "mode": {
                        "type": "string",
                        "const": "half_away_from_zero"
                      }
                    },
                    "required": [
                      "decimalPlaces",
                      "mode"
                    ]
                  }
                },
                "required": [
                  "contractVersion",
                  "id",
                  "workspaceId",
                  "name",
                  "version",
                  "expression",
                  "fields",
                  "rounding"
                ]
              },
              "calculation": {
                "type": "object",
                "properties": {
                  "contractVersion": {
                    "type": "string",
                    "const": "analytics-metric/v1"
                  },
                  "workspaceId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "datasetId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "formulaId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "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"
                    ]
                  },
                  "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"
                          ]
                        },
                        "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"
                          ]
                        },
                        "requestId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uuid",
                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourcePath": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 1000
                        },
                        "accountId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "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"
                      ]
                    }
                  }
                },
                "required": [
                  "contractVersion",
                  "workspaceId",
                  "datasetId",
                  "formulaId",
                  "name",
                  "version",
                  "expression",
                  "rounding",
                  "value",
                  "unit",
                  "status",
                  "code",
                  "reason",
                  "excludedInputIds",
                  "inputs"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "version",
              "expression",
              "definition",
              "unit",
              "grain",
              "rounding",
              "inputs",
              "value",
              "availability",
              "reason"
            ]
          }
        }
      },
      "required": [
        "contractVersion",
        "id",
        "reviewedAt",
        "selection",
        "accounts",
        "posts",
        "sources",
        "coverage",
        "customMetrics"
      ]
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "xlsx",
        "pdf"
      ]
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "zh-Hant"
      ]
    },
    "title": {
      "type": "string",
      "maxLength": 160
    }
  },
  "required": [
    "contract_version",
    "kind",
    "dataset",
    "format",
    "locale"
  ]
}

Errores y reintentos seguros

Comprueba el estado HTTP y el cuerpo de respuesta. Un error de validación 400 puede contener un ZodError; los errores del controlador usan los campos error, message y code. Conserva request_id o x-request-id para el diagnóstico, sin credenciales. Corrige los errores de acceso 401/403 antes de reintentar y respeta Retry-After para 429. Si una escritura es incierta o devuelve 5xx, consulta primero el resultado existente. Reutiliza una clave de idempotencia solo donde se admita; el comportamiento de reintento varía por operación y no garantiza una entrega exactamente una vez.

Guía de solución de problemas

Ejemplos

Estos ejemplos usan valores ficticios comprobados con los esquemas. Sustituye los IDs por otros autorizados, los archivos multimedia por recursos listos y las fechas por tu hora de publicación confirmada. Comprueba la elegibilidad de la cuenta antes de enviar una escritura. Esta página no envía solicitudes API.

Establece SOSOAPI_ACCESS_TOKEN en tu servidor con una credencial aceptada por esta operación y mantenla fuera del código del navegador. Para un agente, usa sosoapi auth login para iniciar sesión en el navegador y deja a la CLI renovar sus credenciales.

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "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": "csv"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/analytics-api/reporting/export" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/analytics-api/reporting/export", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "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": "csv"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /analytics-api/reporting/export < request.json

Ejemplo de respuesta sintética

{
  "contract_version": "analytics-render-input/v1",
  "kind": "standard",
  "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": "csv",
  "locale": "en"
}

MCP: sosoapi_export_analytics_report