---
title: "Create a visualization on an existing query"
method: POST
path: "/v1/queries/{query_id}/visualizations"
---

# Create a visualization on an existing query

`POST /v1/queries/{query_id}/visualizations`

## Request

- Base URL: `https://api.dune.com/api`
- URL: `https://api.dune.com/api/v1/queries/{query_id}/visualizations`
- Auth: none declared. Required headers: `X-Dune-Api-Key`

Creates a new visualization attached to the specified query.

## Path parameters

- `query_id` integer, required

## Headers

- `X-Dune-Api-Key` string, required

## Request body `*/*`

- ModelsCreateVisualizationRequest
  - `description` string
  - `name` string, required
  - `options` object
  - `type` string, required

## Response `200`

OK

- ModelsCreateVisualizationResponse
  - `id` integer

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-11-03** `f82b25fe64b1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/dune/apis/duneapi/changes/v1/queries/:query_id/visualizations/post.md)

---

[API](https://skmtc.dev/dune/apis/duneapi.md) - [All operations](https://skmtc.dev/dune/apis/duneapi/llms.txt) - [OpenAPI document](https://skmtc.dev/dune/apis/duneapi/revisions/f82b25fe64b1?raw)
