---
title: Validate SQL
---

[Skip to content](#%5Ftop) 

[API Reference](https://developers.cloudflare.com/api/typescript)

[Pipelines](https://developers.cloudflare.com/api/typescript/resources/pipelines)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Validate SQL

client.pipelines.validateSql(PipelineValidateSqlParams { account\_id, sql } params, RequestOptionsoptions?): [PipelineValidateSqlResponse](https://developers.cloudflare.com/api/typescript/resources/pipelines#%28resource%29%20pipelines%20%3E%20%28model%29%20pipeline%5Fvalidate%5Fsql%5Fresponse%20%3E%20%28schema%29) { tables, graph } 

POST/accounts/{account\_id}/pipelines/v1/validate\_sql

Validates that the Pipelines SQL is correct.

##### Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. [Create a token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/).

**Example:**`Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY`

API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

**Example:**`X-Auth-Email: user@example.com`

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

**Example:**`X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194`

##### Accepted Permissions (at least one required)

`Pipelines Write`

##### ParametersExpand Collapse 

params: PipelineValidateSqlParams { account\_id, sql } 

account\_id: string

Path param: Specifies the public ID of the account.

sql: string

Body param: Specifies SQL to validate.

##### ReturnsExpand Collapse 

PipelineValidateSqlResponse { tables, graph } 

tables: Record<string, Tables\>

Indicates tables involved in the processing.

id: string

name: string

type: string

version: number

graph?: Graph { edges, nodes } 

Indicates the processing flow to implement the SQL.

edges: Array<Edge\>

dest\_id: number

formatint32

minimum0

edge\_type: string

key\_type: string

src\_id: number

formatint32

minimum0

value\_type: string

nodes: Array<Node\>

description: string

node\_id: number

formatint32

minimum0

operator: string

parallelism: number

formatint32

minimum0

### Validate SQL

TypeScript

HTTPHTTP

TypeScriptTypeScript

PythonPython

GoGo

TerraformTerraform

```
import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const response = await client.pipelines.validateSql({
  account_id: '0123105f4ecef8ad9ca31a8372d0c353',
  sql: 'insert into sink select * from source;',
});

console.log(response.tables);
```

200 example

```
{
  "result": {
    "tables": {
      "foo": {
        "id": "id",
        "name": "name",
        "type": "type",
        "version": 0
      }
    },
    "graph": {
      "edges": [
        {
          "dest_id": 0,
          "edge_type": "edge_type",
          "key_type": "key_type",
          "src_id": 0,
          "value_type": "value_type"
        }
      ],
      "nodes": [
        {
          "description": "description",
          "node_id": 0,
          "operator": "operator",
          "parallelism": 0
        }
      ]
    }
  },
  "success": true
}
```

##### Returns Examples

200 example

```
{
  "result": {
    "tables": {
      "foo": {
        "id": "id",
        "name": "name",
        "type": "type",
        "version": 0
      }
    },
    "graph": {
      "edges": [
        {
          "dest_id": 0,
          "edge_type": "edge_type",
          "key_type": "key_type",
          "src_id": 0,
          "value_type": "value_type"
        }
      ],
      "nodes": [
        {
          "description": "description",
          "node_id": 0,
          "operator": "operator",
          "parallelism": 0
        }
      ]
    }
  },
  "success": true
}
```