---
title: "Build Chart"
method: POST
path: "/measurement/build-chart"
tags: ["measurement", "chat_explore"]
---

# Build Chart

`POST /measurement/build-chart`

## Request body

- BuildChartPayload
  - `filters` MeasurementFilters, required — Measurement filter with dynamic field support for hierarchy-based filtering
    - `timeframe` MeasurementTimeframe
      - `start_date` integer, nullable — start date of the query in unix epoch milliseconds
      - `end_date` integer, nullable — end date of the query in unix epoch milliseconds
    - `comparison_timeframe` MeasurementTimeframe
      - `start_date` integer, nullable — start date of the query in unix epoch milliseconds
      - `end_date` integer, nullable — end date of the query in unix epoch milliseconds
    - `drilldown` DrilldownConfig — Configuration for drill-down navigation in charts
      - `current_level` string — Current drill-down level
      - `next_level` string, nullable — Next drill-down level to navigate to
      - `drill_context` object — Context for drill-down (parent selections)
    - `raw_measurement_filter` object
  - `chart_type` 'creative_performance' | 'pacing_campaign' | 'pacing_channel' | 'pacing_partner' | 'kpi_timeline' | 'kpi_scorecard' | 'pacing_topline' | 'campaign_drilldown' | 'impressions_vs_spend' | 'clicks_vs_spend' | 'total_contribution_to_impressions' | 'clicks_per_impression' | 'total_cost_per_thousand_impressions' | 'campaign_impressions_comparison' | 'campaign_spend_comparison' | 'channel_impression_metrics' | 'partner_performance_comparison' | 'weekly_performance_by_partner' | 'weekly_performance_rankings_by_partner', required

## Response `200`

Successful Response

- SrcAsyncJobServiceBuildConcreteAsyncJobRecordClassLocalsConcreteAsyncJobRecord2
  - `id` integer, nullable — ID of this object.
  - `created_at` string, date-time, nullable — datetime object representing when this object was created.
  - `updated_at` string, date-time, nullable — datetime object representing when this object was updated.
  - `deleted_at` string, date-time, nullable — datetime object representing when this object was deleted.
  - `status` 'RUNNING' | 'COMPLETED' | 'FAILED'
  - `endpoint` string — Endpoint spawning async job
  - `request` union — request sent to endpoint
    - object
    - unknown[]
      - unknown
  - `sync_response` union — sync response
    - object
    - unknown[]
      - unknown
  - `error` string, nullable — error message
  - `response` MeasurementChartResult
    - `chart_metadata_id` integer, required
    - `chart_data_id` integer, required
    - `chart_id` integer, required
    - `data` union, required
      - Render
        - `type` string, required
        - `chart_filter` object
        - `sql_metadata` object
        - `title` string
        - `description` string
        - `data` unknown
        - `download_path` string, nullable
        - `transformed_data` object, nullable
        - `sources` object, nullable
        - `view` object, nullable
        - `column_metadata` object, nullable
      - DrilldownTableData
        - `rows` DrilldownTableRow[], required — Table rows with hierarchical structure
          - `id` string, required — Unique identifier for the row
          - `columns` object, required — Dynamic column values
          - `drill_options` string[], required — Available drill-down options (empty list if no options available)
        - `title` string, required — Table title (e.g., 'Campaign conversions, compared to...')
        - `type` string, required — Type of chart data

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/akk/apis/fastapi.md) · [All operations](https://skmtc.net/akk/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/akk/fastapi/revisions/6662a407c637/schema)
