---
title: "[Beta] Execute a SQL query against an axon's database."
method: POST
path: "/v1/axons/{id}/sql/query"
tags: ["axons"]
---

# [Beta] Execute a SQL query against an axon's database.

`POST /v1/axons/{id}/sql/query`

[Beta] Execute a single parameterized SQL statement against an axon's SQLite database.

## Path parameters

- `id` string, required

## Request body

- SqlStatementParams
  - `sql` string, required — SQL query with ?-style positional placeholders.
  - `params` object[] — Positional parameter bindings for ? placeholders.

## Response `200`

OK

- SqlQueryResultView
  - `columns` SqlColumnMetaView[], required — Column metadata.
    - `name` string, required — Column name or alias.
    - `type` string, required — Declared type (TEXT, INTEGER, REAL, BLOB, or empty).
  - `rows` object[], required — Result rows (empty for non-SELECT statements).
  - `meta` SqlResultMetaView, required
    - `duration_ms` number, double, required — Execution time in milliseconds.
    - `changes` integer, required — Rows modified by INSERT/UPDATE/DELETE.
    - `rows_read_limit_reached` boolean, required — True when result was truncated at the row limit.

---

[API](https://skmtc.net/runloopai/apis/runloop-api.md) · [All operations](https://skmtc.net/runloopai/apis/runloop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/runloopai/runloop-api/versions/ef553a04de89/schema)
