Learn how to analyse TeraBytes of data in Real-Time with our "Principles of Real-Time Analytics" course

Build real-time APIs using data stored in Amazon S3

S3 data

Tinybird helps data teams deliver real-time APIs using data stored in Amazon S3

No hassle

You have your CSV files in S3 buckets. You can easily Build APIs on top now.

Fast & Smart

Ingest millions of rows per second. Fix import errors on-the-fly.

SQL based

Run embedded fast transformations using our Data Pipes.

Secure

Implement Data Source or row-level permissions using our Auth tokens.

Build in minutes,
not weeks

Ingest, query and build APIs for your data at scale in a matter of minutes. Forget about ETLs, performance and complex security rules.

  1. 1

    Ingest CSV files fast and easy

    Automatically ingest your data in your S3 bucket through our REST API. Transform or augment while you ingest if needed.
  2. 2

    Create your Pipes

    Filter, clean or enrich your data using Pipes, a new way of chaining SQL queries designed to reduce most of the hassle.
  3. 3

    Publish your API endpoints

    Share access securely to your data in a click and get full OpenAPI and Postman documentation for your APIs.
  • $ curl \ -H "Authorization: Bearer $TOKEN" \ -X POST "https://api.tinybird.co/v0/datasources" \ -d "name=tripdata" \ --data-urlencode "url=https://s3.amazonaws.com/nyc-tlc/ trip+data/fhv_tripdata_2018-12.csv" > 24 million rows imported (33s) `{ "id": "da95d89a-3e00-4c8f-8324-590683472d08", "job_url": "https://api.tinybird.co/v0/jobs/da5-d9a", "status": "done" }` $ curl \ -H "Authorization: Bearer $TOKEN" \ -X GET "https://api.tinybird.co/v0/sql" \ -d "q=SELECT pickup_datetime, dropoff_datetime FROM tripdata LIMIT 3 FORMAT PrettyCompact" ` > 24M rows proccesed, 2.03ms ┌─────pickup_datetime─┬────dropoff_datetime─┐ │ 2018-12-01 00:00:00 │ 2018-12-01 00:11:44 │ │ 2018-12-01 00:00:00 │ 2018-12-01 00:24:37 │ │ 2018-12-01 00:00:00 │ 2018-12-01 00:08:43 │ └─────────────────────┴─────────────────────┘ ` $

  • $ curl \ -H "Authorization: Bearer $TOKEN" \ -X POST "https://api.tinybird.co/v0/pipes" \ -d "name=avg_triptime_perday" \ -d "sql=SELECT toDayOfMonth(pickup_datetime) as day, avg(dateDiff('minute', pickup_datetime, dropoff_datetime)) as avg_trip_time_minutes FROM tripdata GROUP BY day" > Pipe created `{ "id": "t_8ab647ea74404e2f96173af3da01c6e0", "name": "avg_triptime_perday", "nodes": [ { "id": "t_3a11bf1e1f214ff99fc6ad2a6a4e98ff", "name": "avg_triptime_perday_0", "sql": "SELECT toDayOfMonth(pickup_datetime) as day, avg(dateDiff('minute', pickup_datetime, dropoff_datetime)) as avg_trip_time_minutes FROM tripdata GROUP BY day", "created_at": "2020-06-19 08:38:13.752960", "updated_at": "2020-06-19 08:38:13.752960" } ] "endpoint": null, "created_at": "2020-06-19 08:38:13.752936", "updated_at": "2020-06-19 08:38:13.752965" }` $ curl \ -H "Authorization: Bearer $TOKEN" \ -X PUT \ -d t_3a11bf1e1f214ff99fc6ad2a6a4e98ff \ "https://api.tinybird.co/v0/pipes/avg_triptime_perday/ endpoint" > Pipe published! `{ "id": "t_8ab647ea74404e2f96173af3da01c6e0", "name": "avg_triptime_perday", "nodes": [...], "endpoint": "t_3a11bf1e1f214ff99fc6ad2a6a4e98ff", "created_at": "2020-06-19 08:38:13.752936", "updated_at": "2020-06-19 08:49:59.864445" }` $

  • $ curl \ -H "Authorization: Bearer $TOKEN" \ "https://api.tinybird.co/v0/pipes/avg_trip_time_per_day.json" `{ "meta": [ { "name": "day", "type": "UInt8" }, { "name": "avg_trip_time_minutes", "type": "Float64" } ], "data": [ { "day": 1, "avg_trip_time_minutes": 20.70098973096046 }, { "day": 2, "avg_trip_time_minutes": 19.08052292398168 }, { "day": 3, "avg_trip_time_minutes": 22.520162824092775 }, { "day": 4, "avg_trip_time_minutes": 22.3515466837443 }, { "day": 5, "avg_trip_time_minutes": 22.452213124764377 }, { "day": 6, "avg_trip_time_minutes": 23.4411159622949 }, { "day": 7, "avg_trip_time_minutes": 23.51839854664563 }, { "day": 8, "avg_trip_time_minutes": 20.64550650689344 }, { "day": 9, "avg_trip_time_minutes": 18.921292837180122 }, { "day": 10, "avg_trip_time_minutes": 21.324635637380986 }, { "day": 11, "avg_trip_time_minutes": 23.11629047819647 }, { "day": 12, "avg_trip_time_minutes": -10.086464643835527 }, { "day": 13, "avg_trip_time_minutes": 24.118453469787116 }, { "day": 14, "avg_trip_time_minutes": 23.010015679887204 }, { "day": 15, "avg_trip_time_minutes": 20.25676140729181 }, { "day": 16, "avg_trip_time_minutes": 18.852047763245494 }, { "day": 17, "avg_trip_time_minutes": 21.91052995777931 }, { "day": 18, "avg_trip_time_minutes": 21.994984457945893 }, { "day": 19, "avg_trip_time_minutes": 22.503382566640187 }, { "day": 20, "avg_trip_time_minutes": 25.025137722956025 }, { "day": 21, "avg_trip_time_minutes": 21.831802450267173 }, { "day": 22, "avg_trip_time_minutes": 20.44439009816367 }, { "day": 23, "avg_trip_time_minutes": 18.892126829369115 }, { "day": 24, "avg_trip_time_minutes": -22.205200237225707 }, { "day": 25, "avg_trip_time_minutes": 16.861834216025397 }, { "day": 26, "avg_trip_time_minutes": 18.540556327822305 }, { "day": 27, "avg_trip_time_minutes": 19.711626897390726 }, { "day": 28, "avg_trip_time_minutes": 19.2635961329637 }, { "day": 29, "avg_trip_time_minutes": 18.911108347921576 }, { "day": 30, "avg_trip_time_minutes": 18.50702949637551 }, { "day": 31, "avg_trip_time_minutes": 18.2426204521323 } ], "rows": 31, "statistics": { "elapsed": 0.037134251, "rows_read": 23854144, "bytes_read": 190833152 } }` $

Accelerate data from almost anywhere

Connect and ingest data from Relational Databases, Data Warehouses and Data Streams easy and fast.

Amazon Redshift
Google BigQuery
MySQL
Snowflake