Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API
sql.translate

SQL

sql.translate

Trino SQL to tide SQL

Details

Endpoint
POST /v1/sql/translate
Credits
Free
Rate class
Light. Counts against your light requests per second.
Also called
/api/v1/sql/translate

Translates a query written in the Trino dialect for the standard Sui table names into the tide SQL that runs here, without running it. dbt/jinja wrappers are stripped, 0x ids are padded to 32 bytes and {{name}} parameters are kept. Errors come back as invalid_params with line and column when known.

Parameters

NameTypeDescription
sqlrequiredstringOne SELECT in Trino SQL.

Request

Send your key in the x-api-key header, or leave it out to use the keyless tier.

curl
curl -X POST "https://api.tide.ad/v1/sql/translate" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "sql": "SELECT date_trunc('\''day'\'', from_unixtime(timestamp_ms / 1000)) AS day, count(*) AS txs FROM sui.transactions WHERE sender = 0x2 GROUP BY 1"
}'
TypeScript
const res = await fetch("https://api.tide.ad/v1/sql/translate", {
  method: "POST",
  headers: {
    "x-api-key": process.env.TIDE_API_KEY!,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "sql": "SELECT date_trunc('day', from_unixtime(timestamp_ms / 1000)) AS day, count(*) AS txs FROM sui.transactions WHERE sender = 0x2 GROUP BY 1"
  }),
});
const data = await res.json();

Response

JSON
{
  "sql": "SELECT\n  dateTrunc('DAY', toDateTime64(timestamp_ms / 1000, 3, 'UTC')) AS day,\n  COUNT(*) AS txs\nFROM sui.transactions\nWHERE\n  sender = '0x0000000000000000000000000000000000000000000000000000000000000002'\nGROUP BY\n  1"
}