label, timezone, schedule and region are free to change and never start a run.
Sending any of competitors, providers, scopes or topicClusters makes it a settings update. Omitted settings fields keep the latest run's values. If the resulting settings are the same as the latest run's, in any order, nothing runs and nothing is charged. Otherwise a new run starts, replacing any run still in progress, and metadata.credits.cost quotes it. Pages never bill on an update; queries bill per provider.
topicClusters replaces the full set. Send the id a previous response returned to keep a cluster or prompt. One without an id keeps the current cluster with the same topic, or prompt with the same text; otherwise it is new and gets a fresh id. Ids are returned in topicClusters.
Updates are idempotent: repeating one that already applied resolves to the same settings, so it starts nothing and charges nothing.
402Not enough credits for the new run.
403Not permitted, or not entitled to the requested schedule or region.
404Analysis not found.
