> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e6data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL-managed features over HTTP

> Use the session operation API for features whose public definition is SQL. The HTTP transport carries the SQL statement; the SQL reference defines its syntax.

How-to guideApplies to: Unified engine deployments

Use the session operation API for features whose public definition is SQL. The HTTP transport carries the SQL statement; the SQL reference defines its syntax.

| Feature | HTTP flow | Syntax and setup |
| - | - | - |
| Secrets | Open session → submit secret SQL → inspect status and metadata. | [Secrets](https://docs.e6data.com/transformation/learn/secrets.md). |
| Credentials | Open session → submit credential SQL → inspect status. | [Credentials](https://docs.e6data.com/transformation/learn/credentials.md). |
| Streaming pipelines | Submit source, sink, and pipeline statements in order, then inspect pipeline state. | [Streaming](https://docs.e6data.com/transformation/streaming). |
| Table maintenance | Submit the supported maintenance statement, inspect execution, then verify table state. | [Maintenance](https://docs.e6data.com/transformation/sql/maintenance.md). |

## Preserve statement boundaries

The HTTP SQL operation request contains one SQL statement. For a script, submit statements as separate operations in the same session and wait for each required predecessor to succeed. Each new statement needs its own operation ID. A retry of one statement keeps that statement's original ID.

The product's Run all control follows statement execution. Do not assume that posting an entire script creates a transaction across statements.

## Inspect secret metadata

This read-only example lists secret definitions. It does not return plaintext values:

### List secret definitions

Lists secret metadata through SQL operations. Plaintext secret values are not returned.

| Placeholder | Value |
| - | - |
| `{{operation_id}}` | A new UUID for this request; reuse it when recovering the same submission. |

Replace the placeholders in your client. Keep returned IDs for later requests. Paths below use the native API prefix; adjust it for your deployment.

#### 1. Open a session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions
Host: <ENGINE_HOST>
```

From the response, keep `session_id` from `/session_id`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/open-session.md).

#### 2. Submit SQL

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{operation_id}}",
  "sql": "SHOW SECRETS",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 3. Follow execution

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 4. Read result metadata

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}/results/metadata
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-metadata.md).

#### 5. Fetch rows

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}/results?limit=1
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-results.md).

#### 6. Close the session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
DELETE /api/v1/sessions/{{session_id}}
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/close-session.md).

## Inspect credential metadata

### List credential definitions

Lists credential metadata through SQL operations without exposing underlying secret values.

| Placeholder | Value |
| - | - |
| `{{operation_id}}` | A new UUID for this request; reuse it when recovering the same submission. |

Replace the placeholders in your client. Keep returned IDs for later requests. Paths below use the native API prefix; adjust it for your deployment.

#### 1. Open a session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions
Host: <ENGINE_HOST>
```

From the response, keep `session_id` from `/session_id`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/open-session.md).

#### 2. Submit SQL

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{operation_id}}",
  "sql": "SHOW CREDENTIALS",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 3. Follow execution

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 4. Read result metadata

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}/results/metadata
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-metadata.md).

#### 5. Fetch rows

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}/results?limit=1
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-results.md).

#### 6. Close the session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
DELETE /api/v1/sessions/{{session_id}}
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/close-session.md).

## Inspect streaming pipelines

### Inspect streaming pipelines

Requires the native streaming path to be configured. Listing does not create or start pipelines.

| Placeholder | Value |
| - | - |
| `{{operation_id}}` | A new UUID for this request; reuse it when recovering the same submission. |

Replace the placeholders in your client. Keep returned IDs for later requests. Paths below use the native API prefix; adjust it for your deployment.

#### 1. Open a session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions
Host: <ENGINE_HOST>
```

From the response, keep `session_id` from `/session_id`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/open-session.md).

#### 2. Submit SQL

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{operation_id}}",
  "sql": "SHOW PIPELINES",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 3. Follow execution

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 4. Read result metadata

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}/results/metadata
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-metadata.md).

#### 5. Fetch rows

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{operation_id}}/results?limit=1
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-results.md).

#### 6. Close the session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
DELETE /api/v1/sessions/{{session_id}}
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/close-session.md).

Creating a native streaming pipeline starts continuous execution by default. It needs its listed Kafka, Iceberg, and worker setup. A successful HTTP operation that creates a pipeline is separate from the pipeline reaching Running or publishing its first checkpoint.

For stored-table examples, use a writable catalog. A context named `default` is not proof that an Iceberg catalog exists.

## Create and remove a practice secret and credential

The instance needs a configured local secret store. Use unused names `http_docs_token` and `http_docs_bearer`, or replace them throughout. The token is a demonstration value and is not valid authentication. Run the explicit cleanup steps only for the objects created by this example.

### Create a practice secret and credential

Send each statement separately in one session. Wait for success before its dependent step. Cleanup is explicit.

| Placeholder | Value |
| - | - |
| `{{statement_0}}` | A new UUID for this request; reuse it when recovering the same submission. |
| `{{statement_1}}` | A new UUID for this request; reuse it when recovering the same submission. |
| `{{statement_2}}` | A new UUID for this request; reuse it when recovering the same submission. |
| `{{statement_3}}` | A new UUID for this request; reuse it when recovering the same submission. |
| `{{statement_4}}` | A new UUID for this request; reuse it when recovering the same submission. |
| `{{statement_5}}` | A new UUID for this request; reuse it when recovering the same submission. |

Replace the placeholders in your client. Keep returned IDs for later requests. Paths below use the native API prefix; adjust it for your deployment.

#### 1. Open a session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions
Host: <ENGINE_HOST>
```

From the response, keep `session_id` from `/session_id`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/open-session.md).

#### 2. Create a demo secret

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{statement_0}}",
  "sql": "CREATE SECRET http_docs_token AS 'demo-token-not-for-authentication'",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 3. Follow: Create a demo secret

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_0}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 4. Inspect the secret definition

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{statement_1}}",
  "sql": "DESCRIBE SECRET http_docs_token",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 5. Follow: Inspect the secret definition

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_1}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 6. Read: Inspect the secret definition

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_1}}/results?limit=1
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-results.md).

#### 7. Create a bearer credential

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{statement_2}}",
  "sql": "CREATE CREDENTIAL http_docs_bearer USING bearer OPTIONS ('authentication' = 'saved') SECRETS ('token' = 'http_docs_token')",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 8. Follow: Create a bearer credential

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_2}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 9. Inspect the credential definition

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{statement_3}}",
  "sql": "DESCRIBE CREDENTIAL http_docs_bearer",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 10. Follow: Inspect the credential definition

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_3}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 11. Read: Inspect the credential definition

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_3}}/results?limit=1
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-results.md).

#### 12. Remove the practice credential

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{statement_4}}",
  "sql": "DROP CREDENTIAL http_docs_bearer",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 13. Follow: Remove the practice credential

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_4}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 14. Remove the practice secret

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/sessions/{{session_id}}/operations
Host: <ENGINE_HOST>
Content-Type: application/json

{
  "operation_id": "{{statement_5}}",
  "sql": "DROP SECRET http_docs_token",
  "source": "external"
}
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/submit-operation.md).

#### 15. Follow: Remove the practice secret

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET /api/v1/sessions/{{session_id}}/operations/{{statement_5}}
Host: <ENGINE_HOST>
```

Repeat this read until `/status` reaches a terminal state: `Succeeded`, `Failed`, `Cancelled`, `OutcomeUnknown`, `Skipped`.

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/operation-status.md).

#### 16. Close the session

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
DELETE /api/v1/sessions/{{session_id}}
Host: <ENGINE_HOST>
```

[Endpoint reference](https://docs.e6data.com/transformation/http/reference/close-session.md).

For a complete pipeline definition over HTTP, follow [Define a streaming pipeline over HTTP](https://docs.e6data.com/transformation/http/examples/streaming.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.