Privacyvoorkeuren

Noodzakelijke functies

Vereist voor beveiliging en de basisfuncties van de website.

Altijd actief

Optionele gebruiksanalyse

PostHog-gebruiksanalyse toestaan? Je kunt je keuze altijd in de voettekst wijzigen.

Ook sessiereplay op deze openbare website toestaan

Replay toont openbare pagina’s en interacties, waarbij invoer en privé-inhoud worden gemaskeerd. App-replay is een afzonderlijke keuze.

Vereist analyses; websiteherhaling staat standaard uit.

Browseranalyses schakelen accountanalyses niet in.

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

MCP-tool

Onderzoeksverzamelgeschiedenis lezen

sosoapi_research_collection_history_query

Begrensde UTC-cohortwaarnemingen lezen; onbekend is geen nul. Gedeeltelijke HN-steekproeven zijn ongeschikt voor momentum of voorspellingen. Vereist agent:research.

Lezen als Markdown

Profielen en transporten

Profielen: full · Transporten: stdio, http

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

Machtigingen en neveneffecten

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

{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
  • /research-api/collection-history/query: agent:research · momenteel gemachtigde geaggregeerde verzamelgeschiedenis voor één exact broncohort; verzameltellingen zijn geen publicatievolume, marktgroei, momentum of voorspellingen

Invoervelden

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

Invoervelden
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
project_idstringVerplicht in bovenliggend object
  • format: "uuid"
project_revisionintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
corpus_snapshot_idstringVerplicht in bovenliggend object
  • format: "uuid"
bucketstringOptioneel / item
  • enum: ["hour","day"]
sincestringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
untilstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
Volledig JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "project_id": {
      "type": "string",
      "format": "uuid"
    },
    "project_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "corpus_snapshot_id": {
      "type": "string",
      "format": "uuid"
    },
    "bucket": {
      "type": "string",
      "enum": [
        "hour",
        "day"
      ]
    },
    "since": {
      "$ref": "#/$defs/s0"
    },
    "until": {
      "$ref": "#/$defs/s0"
    }
  },
  "required": [
    "workspace_id",
    "project_id",
    "project_revision",
    "corpus_snapshot_id",
    "since",
    "until"
  ],
  "additionalProperties": false,
  "$defs": {
    "s0": {
      "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"
    }
  }
}

Gestructureerde uitvoer

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

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

Gestructureerde uitvoer
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
project_idstringVerplicht in bovenliggend object
  • format: "uuid"
project_revisionintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
corpus_snapshot_idstringVerplicht in bovenliggend object
  • format: "uuid"
bucketstringVerplicht in bovenliggend object
  • enum: ["hour","day"]
sincestringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
untilstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
generated_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
statusstringVerplicht in bovenliggend object
  • enum: ["available","insufficient_history","not_applicable","incomparable"]
reasonstring | nullVerplicht in bovenliggend object—
reasonanyOf 1stringVerplicht in bovenliggend object
  • enum: ["no_listening_sources","mixed_sources","mixed_cohorts","mixed_methods","method_unavailable","unsupported_method","no_completed_observations","history_limit"]
reasonanyOf 2nullVerplicht in bovenliggend object—
cohortobject | nullVerplicht in bovenliggend object—
cohortanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
cohort.sourceanyOf 1stringVerplicht in bovenliggend object
  • const: "hacker_news"
cohort.query_revisionanyOf 1integerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
cohort.generationanyOf 1integerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
cohort.method_versionanyOf 1stringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
cohort.selected_listening_refsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 500
cohort.excluded_selected_itemsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 499
cohort.scopeanyOf 1stringVerplicht in bovenliggend object
  • const: "selected_listening_stream_cohort"
cohortanyOf 2nullVerplicht in bovenliggend object—
method_versionstringVerplicht in bovenliggend object
  • const: "listening-collection-history/v1"
time_basisstringVerplicht in bovenliggend object
  • const: "collection_completed_at_or_requested_at"
deduplicationstringVerplicht in bovenliggend object
  • const: "latest_observation_per_source_per_bin"
count_meaningstringVerplicht in bovenliggend object
  • const: "bounded_collection_observations"
momentum_eligiblebooleanVerplicht in bovenliggend object
  • const: false
forecast_eligiblebooleanVerplicht in bovenliggend object
  • const: false
qualification_reasonstringVerplicht in bovenliggend object
  • enum: ["hn_partial_overlapping_sample_unqualified","no_qualified_cohort"]
observed_binsintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 24
unknown_binsintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 24
binsarrayVerplicht in bovenliggend object
  • maxItems: 24
bins[]objectOptioneel / item
  • additionalProperties: false
bins[].startstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
bins[].endstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
bins[].period_partialbooleanVerplicht in bovenliggend object—
bins[].statestringVerplicht in bovenliggend object
  • enum: ["observed","unknown"]
bins[].countsobject | nullVerplicht in bovenliggend object—
bins[].countsanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
bins[].counts.source_itemsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 10240
bins[].counts.matched_itemsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 10240
bins[].counts.removed_itemsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 10240
bins[].counts.unavailable_itemsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 10240
bins[].countsanyOf 2nullVerplicht in bovenliggend object—
bins[].runsobjectVerplicht in bovenliggend object
  • additionalProperties: false
bins[].runs.totalintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.completedintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.successfulintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.succeededintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.partialintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.failedintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.cancelledintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].runs.pendingintegerVerplicht in bovenliggend object
  • minimum: 0
  • maximum: 512
bins[].source_windowsobject | nullVerplicht in bovenliggend object—
bins[].source_windowsanyOf 1objectVerplicht in bovenliggend object
  • additionalProperties: false
bins[].source_windows.sinceanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
bins[].source_windows.untilanyOf 1stringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
bins[].source_windows.distinct_windowsanyOf 1integerVerplicht in bovenliggend object
  • minimum: 1
  • maximum: 512
bins[].source_windowsanyOf 2nullVerplicht in bovenliggend object—
bins[].gapsarrayVerplicht in bovenliggend object
  • maxItems: 5
bins[].gaps[]stringOptioneel / item
  • enum: ["unobserved","incomplete_collection","failed_collection","cancelled_collection","partial_period"]
bins[].coveragestringVerplicht in bovenliggend object
  • const: "partial_indexed_sample"
Volledig JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "project_id": {
      "type": "string",
      "format": "uuid"
    },
    "project_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "corpus_snapshot_id": {
      "type": "string",
      "format": "uuid"
    },
    "bucket": {
      "type": "string",
      "enum": [
        "hour",
        "day"
      ]
    },
    "since": {
      "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"
    },
    "until": {
      "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"
    },
    "generated_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",
        "insufficient_history",
        "not_applicable",
        "incomparable"
      ]
    },
    "reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "no_listening_sources",
            "mixed_sources",
            "mixed_cohorts",
            "mixed_methods",
            "method_unavailable",
            "unsupported_method",
            "no_completed_observations",
            "history_limit"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "cohort": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "const": "hacker_news"
            },
            "query_revision": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "generation": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "method_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "selected_listening_refs": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500
            },
            "excluded_selected_items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 499
            },
            "scope": {
              "type": "string",
              "const": "selected_listening_stream_cohort"
            }
          },
          "required": [
            "source",
            "query_revision",
            "generation",
            "method_version",
            "selected_listening_refs",
            "excluded_selected_items",
            "scope"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "method_version": {
      "type": "string",
      "const": "listening-collection-history/v1"
    },
    "time_basis": {
      "type": "string",
      "const": "collection_completed_at_or_requested_at"
    },
    "deduplication": {
      "type": "string",
      "const": "latest_observation_per_source_per_bin"
    },
    "count_meaning": {
      "type": "string",
      "const": "bounded_collection_observations"
    },
    "momentum_eligible": {
      "type": "boolean",
      "const": false
    },
    "forecast_eligible": {
      "type": "boolean",
      "const": false
    },
    "qualification_reason": {
      "type": "string",
      "enum": [
        "hn_partial_overlapping_sample_unqualified",
        "no_qualified_cohort"
      ]
    },
    "observed_bins": {
      "type": "integer",
      "minimum": 0,
      "maximum": 24
    },
    "unknown_bins": {
      "type": "integer",
      "minimum": 0,
      "maximum": 24
    },
    "bins": {
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "start": {
            "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"
          },
          "end": {
            "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"
          },
          "period_partial": {
            "type": "boolean"
          },
          "state": {
            "type": "string",
            "enum": [
              "observed",
              "unknown"
            ]
          },
          "counts": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "source_items": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10240
                  },
                  "matched_items": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10240
                  },
                  "removed_items": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10240
                  },
                  "unavailable_items": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10240
                  }
                },
                "required": [
                  "source_items",
                  "matched_items",
                  "removed_items",
                  "unavailable_items"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "runs": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "completed": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "successful": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "succeeded": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "partial": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "failed": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "cancelled": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              },
              "pending": {
                "type": "integer",
                "minimum": 0,
                "maximum": 512
              }
            },
            "required": [
              "total",
              "completed",
              "successful",
              "succeeded",
              "partial",
              "failed",
              "cancelled",
              "pending"
            ],
            "additionalProperties": false
          },
          "source_windows": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "since": {
                    "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"
                  },
                  "until": {
                    "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"
                  },
                  "distinct_windows": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 512
                  }
                },
                "required": [
                  "since",
                  "until",
                  "distinct_windows"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "gaps": {
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "unobserved",
                "incomplete_collection",
                "failed_collection",
                "cancelled_collection",
                "partial_period"
              ]
            }
          },
          "coverage": {
            "type": "string",
            "const": "partial_indexed_sample"
          }
        },
        "required": [
          "start",
          "end",
          "period_partial",
          "state",
          "counts",
          "runs",
          "source_windows",
          "gaps",
          "coverage"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "workspace_id",
    "project_id",
    "project_revision",
    "corpus_snapshot_id",
    "bucket",
    "since",
    "until",
    "generated_at",
    "status",
    "reason",
    "cohort",
    "method_version",
    "time_basis",
    "deduplication",
    "count_meaning",
    "momentum_eligible",
    "forecast_eligible",
    "qualification_reason",
    "observed_bins",
    "unknown_bins",
    "bins"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Voorbeeld van een toolaanroep

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

{
  "name": "sosoapi_research_collection_history_query",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "project_id": "30000000-0000-4000-8000-000000000001",
    "project_revision": 1,
    "corpus_snapshot_id": "30000000-0000-4000-8000-000000000002",
    "bucket": "day",
    "since": "2026-11-01T00:00:00Z",
    "until": "2026-11-02T00:00:00Z"
  }
}

structuredContent

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "project_id": "30000000-0000-4000-8000-000000000001",
  "project_revision": 1,
  "corpus_snapshot_id": "30000000-0000-4000-8000-000000000002",
  "bucket": "day",
  "since": "2026-11-01T00:00:00Z",
  "until": "2026-11-02T00:00:00Z",
  "generated_at": "2026-11-03T00:00:00Z",
  "status": "insufficient_history",
  "reason": "no_completed_observations",
  "cohort": {
    "source": "hacker_news",
    "query_revision": 1,
    "generation": 1,
    "method_version": "hn-indexed-literal-sample/v1",
    "selected_listening_refs": 1,
    "excluded_selected_items": 0,
    "scope": "selected_listening_stream_cohort"
  },
  "method_version": "listening-collection-history/v1",
  "time_basis": "collection_completed_at_or_requested_at",
  "deduplication": "latest_observation_per_source_per_bin",
  "count_meaning": "bounded_collection_observations",
  "momentum_eligible": false,
  "forecast_eligible": false,
  "qualification_reason": "hn_partial_overlapping_sample_unqualified",
  "observed_bins": 0,
  "unknown_bins": 1,
  "bins": [
    {
      "start": "2026-11-01T00:00:00Z",
      "end": "2026-11-02T00:00:00Z",
      "period_partial": false,
      "state": "unknown",
      "counts": null,
      "runs": {
        "total": 0,
        "completed": 0,
        "successful": 0,
        "succeeded": 0,
        "partial": 0,
        "failed": 0,
        "cancelled": 0,
        "pending": 0
      },
      "source_windows": null,
      "gaps": [
        "unobserved"
      ],
      "coverage": "partial_indexed_sample"
    }
  ]
}
Installeer of verbind MCP