---
title: Tinybird
description: Send events, query data, and manage Data Sources with Tinybird
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="tinybird"
  color="#2EF598"
/>

{/* MANUAL-CONTENT-START:intro */}
Supercharge your real-time data pipelines and analytics with [Tinybird](https://tinybird.co) – the fast, scalable platform for ingesting, querying, and building APIs on large volumes of event data. Tinybird enables developers and data engineers to collect, transform, and expose data instantly, making it easy to power dashboards, applications, and automation with fresh insights.

With the Tinybird integration, you can:

- **Stream events at scale:** Ingest millions of JSON events per second reliably, using HTTP-based APIs with NDJSON or JSON.
- **Query data with low latency:** Run complex SQL-based analytics and aggregation queries in real time, ideal for dashboards, alerting, and reports.
- **Expose data via instant APIs:** Build and publish API endpoints for your queries directly from the Tinybird UI or via their API.
- **Automate workflows:** Use Tinybird’s APIs in your automations to fetch, transform, and sync data across your stack.
- **Monitor and debug:** Get insights into pipeline performance, query latencies, and ingestion health with real-time monitoring.
- **Secure access:** Leverage fine-grained authentication and resource scoping with personal or workspace API tokens.

Tinybird empowers engineering, analytics, and product teams to deliver lightning-fast, always-up-to-date data products with minimal operational overhead. Go from raw event data to production-ready endpoints in minutes.

Connect Tinybird to your workflows today to accelerate data-driven features, automation, and analytics!
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Interact with Tinybird: stream JSON or NDJSON events with the Events API, run SQL with the Query API, call published Pipe API Endpoints by name with dynamic parameters, and manage Data Sources by appending from a URL, truncating, or deleting rows by condition.



## Actions

### `tinybird_events`

Send events to a Tinybird Data Source using the Events API. Supports JSON and NDJSON formats with optional gzip compression.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `base_url` | string | Yes | Tinybird API base URL \(e.g., https://api.tinybird.co or https://api.us-east.tinybird.co\) |
| `datasource` | string | Yes | Name of the Tinybird Data Source to send events to. Example: "events_raw", "user_analytics" |
| `data` | string | Yes | Data to send as NDJSON \(newline-delimited JSON\) or JSON string. Each event should be a valid JSON object. Example NDJSON: \{"user_id": 1, "event": "click"\}\\n\{"user_id": 2, "event": "view"\} |
| `wait` | boolean | No | Wait for database acknowledgment before responding. Enables safer retries but introduces latency. Defaults to false. |
| `format` | string | No | Format of the events data: "ndjson" \(default\) or "json" |
| `compression` | string | No | Compression format: "none" \(default\) or "gzip" |
| `token` | string | Yes | Tinybird API Token with DATASOURCE:APPEND or DATASOURCE:CREATE scope |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `successful_rows` | number | Number of rows successfully ingested |
| `quarantined_rows` | number | Number of rows quarantined \(failed validation\) |

### `tinybird_query`

Execute SQL queries against Tinybird Pipes and Data Sources using the Query API.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `base_url` | string | Yes | Tinybird API base URL \(e.g., https://api.tinybird.co\) |
| `query` | string | Yes | SQL query to execute. Specify your desired output format \(e.g., FORMAT JSON, FORMAT CSV, FORMAT TSV\). JSON format provides structured data, while other formats return raw text. Example: "SELECT * FROM my_datasource LIMIT 100 FORMAT JSON" |
| `pipeline` | string | No | Optional pipe name. When provided, enables SELECT * FROM _ syntax. Example: "my_pipe", "analytics_pipe" |
| `token` | string | Yes | Tinybird API Token with PIPE:READ scope |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `data` | json | Query result data. For FORMAT JSON: array of objects. For other formats \(CSV, TSV, etc.\): raw text string. |
| `meta` | array | Column metadata for the result set \(only available with FORMAT JSON\) |
|   ↳ `name` | string | Column name |
|   ↳ `type` | string | Column data type |
| `rows` | number | Number of rows returned \(only available with FORMAT JSON\) |
| `rows_before_limit_at_least` | number | Minimum number of rows there would be without a LIMIT clause \(only available with FORMAT JSON\) |
| `statistics` | json | Query execution statistics - elapsed time, rows read, bytes read \(only available with FORMAT JSON\) |

### `tinybird_query_pipe`

Call a published Tinybird Pipe API Endpoint by name, passing dynamic parameters and receiving structured JSON results.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `base_url` | string | Yes | Tinybird API base URL \(e.g., https://api.tinybird.co\) |
| `pipe` | string | Yes | Name of the published Pipe API Endpoint to call. Example: "top_pages" |
| `parameters` | json | No | Dynamic Pipe parameters as a JSON object, sent as query-string arguments. Example: \{"start_date": "2024-01-01", "limit": 10\} |
| `q` | string | No | Optional SQL to run on top of the Pipe result. Use "_" to reference the Pipe. Example: "SELECT count\(\) FROM _" |
| `token` | string | Yes | Tinybird API Token with PIPE:READ scope |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `data` | json | Pipe result data as an array of row objects |
| `meta` | array | Column metadata for the result set |
|   ↳ `name` | string | Column name |
|   ↳ `type` | string | Column data type |
| `rows` | number | Number of rows returned |
| `rows_before_limit_at_least` | number | Minimum number of rows there would be without a LIMIT clause |
| `statistics` | json | Query execution statistics - elapsed time, rows read, bytes read |
|   ↳ `elapsed` | number | Query execution time in seconds |
|   ↳ `rows_read` | number | Number of rows processed |
|   ↳ `bytes_read` | number | Number of bytes processed |

### `tinybird_append_datasource`

Append data to a Tinybird Data Source from a remote file URL (CSV, NDJSON, Parquet).

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `base_url` | string | Yes | Tinybird API base URL \(e.g., https://api.tinybird.co\) |
| `datasource` | string | Yes | Name of the existing Data Source to append to. Example: "events_raw" |
| `url` | string | Yes | Publicly accessible URL of the file to append. Example: "https://example.com/data.csv" |
| `format` | string | No | Format of the source file: "csv" \(default\), "ndjson", or "parquet" |
| `token` | string | Yes | Tinybird API Token with DATASOURCES:CREATE scope |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Identifier of the append operation |
| `import_id` | string | Import identifier for the append job |
| `job_id` | string | Job identifier used to poll import status |
| `job_url` | string | URL to query the import job status |
| `status` | string | Initial job status \(e.g., "waiting"\) |
| `job` | json | Full import job details \(kind, id, status, created_at, datasource, ...\) |
| `datasource` | json | Target Data Source metadata \(id, name, ...\) |

### `tinybird_truncate_datasource`

Delete all rows from a Tinybird Data Source.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `base_url` | string | Yes | Tinybird API base URL \(e.g., https://api.tinybird.co\) |
| `datasource` | string | Yes | Name of the Data Source to truncate. Example: "events_raw" |
| `token` | string | Yes | Tinybird API Token with DATASOURCES:CREATE scope |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `truncated` | boolean | Whether the Data Source was truncated successfully |
| `result` | json | Raw response body from the truncate endpoint, if any |

### `tinybird_delete_datasource_rows`

Delete rows from a Tinybird Data Source matching a SQL condition.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `base_url` | string | Yes | Tinybird API base URL \(e.g., https://api.tinybird.co\) |
| `datasource` | string | Yes | Name of the Data Source to delete rows from. Example: "events_raw" |
| `delete_condition` | string | Yes | SQL WHERE-clause condition selecting the rows to delete. Example: "country = \'ES\'" or "event_date &lt; \'2024-01-01\'" |
| `dry_run` | boolean | No | When true, returns how many rows would be deleted without deleting them. Defaults to false. |
| `token` | string | Yes | Tinybird API Token with DATASOURCES:CREATE scope |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Identifier of the delete operation |
| `job_id` | string | Job identifier used to poll delete status |
| `delete_id` | string | Deletion identifier |
| `job_url` | string | URL to query the delete job status |
| `status` | string | Current job status \(e.g., "waiting", "done"\) |
| `job` | json | Full delete job details \(kind, id, status, delete_condition, rows_affected, ...\) |


