Skip to main content

Import Measurement Observations

Import Measurement Observations

Observation imports are bounded to 5,000 rows or 10 MB per request. HTTP 202 only means the import request was processed; callers must inspect every row result.

const result = await client.admin.measurement.projects.submitObservations(
"checkout-runway",
{
rows: [{
seriesSlug: "completed-work",
observedAt: "2026-07-01T00:00:00Z",
value: 42,
idempotencyKey: "completed-work-2026-07-01",
}],
},
);

CSV imports use the same row-result contract:

const csv = "seriesSlug,observedAt,value\ncompleted-work,2026-07-01T00:00:00Z,42\n";
const result = await client.admin.measurement.projects.importCSVString(
"checkout-runway",
csv,
1,
);

Fail the workflow if the response row count differs from the submitted row count, a valid import row has success: false, or a successful row is missing observationUuid. Failed rows preserve problem fields such as title and detail.