Sites

Query a site's database

Run SQL against a site's database.

Against production this reads only — SELECT, WITH, PRAGMA, EXPLAIN. A write here would leave no record of what ran, no restore point and nobody asked, so data changes go through db/migrate and shape changes go through the development database and a deploy.

The development database accepts anything: it holds no customer data, and experimenting on it is what it is for.

post/sites/{id}/db/query

Request

  • Base URL: https://api.crevio.co/v1
  • URL: https://api.crevio.co/v1/sites/{id}/db/query
  • Auth: API key in header Authorization

Path parameters

idstring required

The resource ID (e.g., "prod_abc123") or slug (e.g., "my-product")

Headers

Idempotency-Keystring

Makes this write safe to retry: a repeat with the same key replays the first response instead of creating a second resource. Scoped to the account, remembered for 24 hours; reusing a key with a different payload is an error.

Request body

sqlstring required

The SQL to execute. Multiple statements may be separated by ; — the last statement that returns rows is surfaced.

environment'development' | 'production'

Which database to use. A site normally has exactly one, production, and that is the default — the live database the site reads. development is only valid if a separate development database has been provisioned for this site; asking for one that doesn't exist is an error rather than a silent fall back to production. The response echoes the environment that was used.

Response

Query result

objectstring required

Always "database_query_result".

rowsobject[] required

The rows returned by the query, each an object keyed by column name.

row_countinteger required

Number of rows returned.

metaobject nullable

Execution metadata for the surfaced statement (e.g. rows read/written, duration).

Changes

No recorded changes to this operation across all 2 revisions of this API.