csvbase

csvbase.com · Personal blog · on HN since 2022

Cal Paterson writes on csvbase, a site for hosting small data tables, and on open data formats, Parquet, DuckDB, and APIs.

What HN saysHN commenters discuss csvbase's URL design and content negotiation for CSV and HTML, note it lacks search and filtering, and mention its Parquet support.
17HN people shared it
10linked it in comments
28stories submitted
1.3Kstory points
4 months agolast shared
2022people per year2026

Most-shared posts

  1. 1
    Stock exchanges
    5 people · first shared 2022
  2. 2
  3. 3
  4. 4
    There are 665 open licences, most are pretty rubbish
    3 people · 47 points · first shared 2024 · 21 comments on HN
  5. 5
  6. 6
    The semantic web is now widely adopted
    2 people · 455 points · first shared 2024 · 259 comments on HN
  7. 7
    DuckDB Isn't Just Fast
    2 people · 123 points · first shared 2024 · 37 comments on HN
  8. 8
    Parquet: More than just "Turbo CSV"
    2 people · 5 points · first shared 2023 · discussion on HN
  9. 9
    I didn't write any JavaScript, and other shortcuts
    2 people · 3 points · first shared 2023 · discussion on HN
  10. 10
    You can't just assume UTF-8
    1 people · 195 points · first shared 2024 · 471 comments on HN
  11. 11
    Client libraries are better when they have no API?
    1 people · 159 points · first shared 2024 · 100 comments on HN
  12. 12
    Caching secrets of the HTTP elders, part 1
    1 people · 142 points · first shared 2024 · 35 comments on HN
  13. 13
    From Shell to Excel – with a little bit of HTTPS
    1 people · 24 points · first shared 2024 · 3 comments on HN
  14. 14
    How does it know I want CSV? – An HTTP trick
    1 people · 4 points · first shared 2023 · discussion on HN
  15. 15
    Stock exchanges.parquet
    1 people · first shared 2023

What HN people wrote when they linked it

mattsouth · 2025-05-22
Nice. Its interesting to me that searching and filtering isnt something that http://csvbase.com has.
calpaterson · 2024-04-09
I love your tool. If you want a slightly more structured version of Gists that speaks parquet try my own tool, csvbase :). I pasted this data in as https://csvbase.com/calpaterson/opcodes-6502 and you can get parquet by adding .parquet to that (https://csvbase.com/calpaterson/opcodes-6502.parquet) Here's datasette lite running off that file: https://lite.datasette.io/?parquet=https%3A%2F%2Fcsvbase.com%2Fcalpate… Really nice when webby stuff works together
joosters · 2023-01-17
There are two downsides to this approach: 1) The discovery of the different response formats. How do I know that I can get csv files from that URL, other than by hoping that the website documents this somewhere? There's nothing in the underlying HTTP response from https://csvbase.com/meripaterson/stock-exchanges that tells me I can get an HTML or CSV version. Is there a JSON version available? What other variants exist? How do I know that this URL will deliver different responses? 2) Will the website always default to csv files or will my app break when they decide that XML is superior? (Well, obviously not, especially for a site called csvbase!) But if your program expects CSV data, it is probably best to always request that, and a URL that ends in .csv gives you far more certainty that the data is going to be in that format.
Gys · 2023-01-17
Instead of relying on settings in clients I would have required something more explicit in the url. For example https://csvbase.com/meripaterson/stock-exchanges for the html version and https://csvbase.com/meripaterson/stock-exchanges/csv for the csv version. Generally speaking, implicit magic is cool but can also be frustrating if its not working as expected. Very OT: Apple has this attitude of 'it just works'. Really great. Unless it is not working while there are no settings and no info whatsoever on what the requirements are to make it work.
wazdra · 2024-09-21
I'd like to point out that llama 3.1 is not open source[1] (I was recently made aware of that fact by [2], when it was on HN front page) While it's very nice to see a peak of interest for local, "open-weights" LLMs, this is an unfortunate choice of words, as it undermines the quite important differences between llama's license model and open-source. The license question does not seem to be addressed at all in the article. [1]: https://www.llama.com/llama3_1/license/ [2]: https://csvbase.com/blog/14
ncallaway · 2023-01-17
They support extensions also. As in the article https://csvbase.com/meripaterson/stock-exchanges.csv will always render a CSV (regardless of accept headers), and https://csvbase.com/meripaterson/stock-exchanges.html appears to do the same for HTML
contravariant · 2023-01-17
Some links in the article are missing the TLD curiously enough, it does work if you go to: https://csvbase.com/meripaterson/stock-exchanges.
kshay · 2023-01-17
> There's nothing in the underlying HTTP response from https://csvbase.com/meripaterson/stock-exchanges that tells me I can get an HTML or CSV version. Is there a JSON version available? What other variants exist? How do I know that this URL will deliver different responses? Well, you can send a HEAD request with a given accept: header to find out what you’ll get without actually fetching the data. But it’s true that it would be nice to have the full set of possible responses advertised somehow.
zer00eyz · 2024-04-17
Ohh this is an interesting case. You could abuse the hell out of Etags, Urls and DIFFS to get a much better long haul response. https://csvbase.com/user-name/table-name/ would return you an etag. The etag needs to be a hash of the file (sha256). https://csvbase.com/user-name/table-name/etag could return a 204 for an unchanged document. If the two dont match then return a diff + new etag. Apply the diff as a patch, and check the etag. Yes you still have the latency, on 204's but the moment there is a change you might be getting a 200 from cache, and only a diff at that. Smaller payload and potentialy faster response. On the server side the only thing that you're adding in is the diff of the last change.... If the data is faster moving then "cache" should let you catch up. If the caches are stale then the first response will give you a patch and new etag that wont have the correct hash value and you know to grab a fresh copy as you have no path forward.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close