[{"data":1,"prerenderedAt":553},["ShallowReactive",2],{"project-10251686":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":46,"post_text":48,"what":49,"said":69,"maker_in_thread":240,"shape":252,"grid":256,"attempts":514,"same_week":515,"maker_shows":33,"maker_hidden":545,"reader_version":546,"card":547},"10251686","Sheetsu","Turn a Google Spreadsheet into an API","title","Show HN: Turn a Google Spreadsheet into an API","http:\u002F\u002Fsheetsu.com","sheetsu.com","michaeloblak",1442838172,2015,357,98,34,2565,2,"legend","dev_tools","api backend from spreadsheet","web_app",[24,25,26,27],"google sheets api","spreadsheet api","json api","google spreadsheet backend","mixed",-0.041,{"positive":31,"neutral":32,"mixed":33,"critical":34},13,24,1,12,50,{"performance":37,"idea":39,"execution":41,"privacy":43,"docs":44,"design":45},{"positive":33,"critical":38},3,{"positive":40,"critical":33},11,{"positive":42,"critical":38},0,{"positive":33,"critical":18},{"positive":42,"critical":33},{"positive":42,"critical":18},[33,47,38,38,33,42,47,33,42,38,38,38,38,38,42,47,38,47,38,47,42,47,47,38,33,42,38,38,42,42,38,47,33,38,47,33,42,47,33,38],5,null,{"problem":50,"audience":48,"pricing":48,"motivation":60,"time_to_build":48,"stack":66,"openness":67,"stage":68,"team_size":67},{"value":51,"source":52,"evidence":53},"Accessing Google Spreadsheet data from apps without implementing the Google API","maker",[54,57],{"id":55,"by":11,"text":56},"10254677","It's easier.",{"id":58,"by":11,"text":59},"10255461","You don't have to implement Google API or use any lib to talk with it. Just paste link and get API end-point with docs, which is easier to use. Much more easier than creating…",{"value":61,"source":52,"evidence":62},"Had a similar problem to Danielle Morrill and couldn't find a good solution",[63],{"id":64,"by":11,"text":65},"10252442","Yes, it was. I've similar problem like she had. I started looking for some good solution. Didn't found anything, so I wrote it myself. I twitted her, but no response from her. If…",[],"unknown","beta",{"praise":70,"objections":91,"requests":136,"questions":175,"alternatives":197},[71,87],{"value":72,"source":73,"evidence":74},"Simple way to get spreadsheet data into prototypes and small projects","commenter",[75,79,83],{"id":76,"by":77,"text":78},"10252291","jmhuret","Really great start! I could see this being very useful. If you were to extend the functionality to include full CRUD on entities, I think I would start using it immediately on…",{"id":80,"by":81,"text":82},"10252749","speleding","Nice way to bypass zapier.com for some simple stuff because they can get expensive quickly. I just started using it to store a log of supersaas.com appointments in a Google…",{"id":84,"by":85,"text":86},"10254376","atmosx","Great My blog[1] uses a static side generator called middleman[2] and I was looking for a way to share 'quotes' in the website's subtitle. This seems to be the best solution! I…",{"value":88,"source":73,"evidence":89},"Good alternative to Zapier for simple tasks",[90],{"id":80,"by":81,"text":82},[92,107,118,129],{"value":93,"source":73,"evidence":94},"Google Sheets does not handle heavy load; throttling and timeouts",[95,99,103],{"id":96,"by":97,"text":98},"10252587","rubbingalcohol","I've used Google Spreadsheet as an \"API\" before (manually, not using this wrapper), and it is definitely not made to be used as such. Under heavy load, it slows down or times…",{"id":100,"by":101,"text":102},"10253484","vikingcaffiene","Used this approach at a previous company and was amazed at first. Wondered why it wasn't more commonly used. A poor mans API! Whats not to like?? Then I found out why: when put…",{"id":104,"by":105,"text":106},"10256665","RachelF","We had a similar experience. Google started giving us \"Sharing quota for this file has been exceeded\" errors.",{"value":108,"source":73,"evidence":109},"Requested access to all Google Drive files was a privacy concern",[110,114],{"id":111,"by":112,"text":113},"10254181","xchip","wow, it requires to access all my googledrive data and the spreadsheets.",{"id":115,"by":116,"text":117},"10253349","Abundnce10","I see that you request access to 'view and manage' the spreadsheets and files in my Google Drive? Is this for each spreadsheet\u002Ffile or just the one I've linked to the in URL?",{"value":119,"source":73,"evidence":120},"No CORS support so client-side JavaScript cannot call it",[121,125],{"id":122,"by":123,"text":124},"10253597","mkelley82","So I threw this into a website to try and load some data into a table, and get: XMLHttpRequest cannot load http:\u002F\u002Fsheetsu.com\u002Fapis\u002Fd54d6315?sort=Description&order=asc. No…",{"id":126,"by":127,"text":128},"10253719","pseudosavant","I ran into the same thing. Sheetsu apparently doesn't have CORS (http:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fcors\u002F) enabled so it won't work from client-side JS right now.",{"value":130,"source":73,"evidence":131},"Not truly RESTful; uses JSON status codes instead of HTTP status codes",[132],{"id":133,"by":134,"text":135},"10251917","nbevans","API doesn't look very REST to me. It is basically just using HTTP as a JSON transport. The JSON contains a \"status\" code which appears to loosely follow the HTTP status code…",[137,144,151,161,168],{"value":138,"source":73,"evidence":139},"CORS support",[140,141],{"id":122,"by":123,"text":124},{"id":142,"by":127,"text":143},"10253738","That'll be great. Is CORS support on the roadmap too?",{"value":145,"source":73,"evidence":146},"PUT and DELETE support",[147,148],{"id":76,"by":77,"text":78},{"id":149,"by":11,"text":150},"10252492","You can POST your data. PUT and DELETE soon.",{"value":152,"source":73,"evidence":153},"Access to multiple sheets in a workbook",[154,158],{"id":155,"by":156,"text":157},"10252837","philbo87","Is there a way to get data from each sheet in a workbook? I'd love to use this, it is so simple. But it only seems to get the first sheet in my workbook.",{"id":159,"by":156,"text":160},"10254554","Awesome! FWIW, my needs don't require any sort of \"relational\" concept as some comments have suggested, I just need to be able to do all existing operations on each sheet in the…",{"value":162,"source":73,"evidence":163},"Access limited to a single file, not all Drive files",[164,165],{"id":115,"by":116,"text":117},{"id":166,"by":116,"text":167},"10253419","Perfect! That was the only thing holding me back from getting started. Nice work, BTW!",{"value":169,"source":73,"evidence":170},"HTTPS support",[171],{"id":172,"by":173,"text":174},"10252785","TD-Linux","I would really prefer something like this to be a local library or something, adding another remote service in between negatively affects security and reliability. Especially in…",[176,183,190],{"value":177,"source":73,"evidence":178},"How to prevent others from GETting the API if they know the URL",[179],{"id":180,"by":181,"text":182},"10256403","permeable","Awesome API, but one question. How do you prevent other people from doing a GET once they know your sheetsu API url?",{"value":184,"source":73,"evidence":185},"Is there an API rate limit",[186],{"id":187,"by":188,"text":189},"10252196","joeyspn","Cool. Is there any API rate limit?",{"value":191,"source":73,"evidence":192},"Whether relational data between sheets is supported",[193],{"id":194,"by":195,"text":196},"10251922","JayeshSidhwani","Will you maintain relationship between sheets? For many API use-cases, I'd expect my data to be relational.",[198,205,212,219,226,233],{"value":199,"source":73,"evidence":200},"Cloudstitch",[201],{"id":202,"by":203,"text":204},"10253684","staticvar","Cloudstitch is another service that gives you a RESTful interface over a Google Sheet. http:\u002F\u002Fwww.cloudstitch.com\u002F I made a video showing how to send a Raspberry Pi's temperature…",{"value":206,"source":73,"evidence":207},"Tabletop",[208],{"id":209,"by":210,"text":211},"10252278","huskyr","Google Spreadsheets is awesome as a quick and dirty CMS. I use it all the time at the newspaper i work for, in combination with Tabletop (https:\u002F\u002Fgithub.com\u002Fjsoma\u002Ftabletop). Only…",{"value":213,"source":73,"evidence":214},"Blockspring",[215],{"id":216,"by":217,"text":218},"10252429","madisonmay","Sort of related (but the other way around): https:\u002F\u002Fwww.blockspring.com\u002F",{"value":220,"source":73,"evidence":221},"SpreadServe",[222],{"id":223,"by":224,"text":225},"10252301","osullivj","You can do that with SpreadServe[1] now. Instead of Google docs it uses real Excel .xls spreadsheets and supports VBA and XLL addins. It turns your spreadsheets into async…",{"value":227,"source":73,"evidence":228},"CalcFusion",[229],{"id":230,"by":231,"text":232},"10256224","julienmarie","An alternative is also http:\u002F\u002Fcalcfusion.com\u002F ( disclaimer, I work there and we just launched ). It uses xls spreadsheets and is more oriented towards business rules and…",{"value":234,"source":73,"evidence":235},"Sheetrock",[236],{"id":237,"by":238,"text":239},"10252331","kleebeesh","I've used sheetrock (https:\u002F\u002Fgithub.com\u002Fchriszarate\u002Fsheetrock) with good success in the past. But this definitely seems more refined.",{"comments":241,"answered":40,"key":242},23,[243,246,249],{"id":244,"text":245},"10253870","That's a great use case!",{"id":247,"text":248},"10252189","Whoa, gists as a DB - that's a neat idea!",{"id":250,"text":251},"10252972","Will do HTTPS.",{"commenters":253,"max_depth":254,"maker_replies":241,"first_comment_mins":42,"lifespan_hours":255},62,4,166,[257,259,263,267,269,272,274,278,282,285,289,293,294,295,298,300,303,306,307,309,311,312,314,316,321,323,326,329,332,334,336,340,344,345,349,350,354,355,358,360,361,365,367,369,372,376,380,384,385,387,389,391,395,397,399,401,403,406,408,409,412,413,416,420,422,424,426,428,430,434,436,439,442,445,448,450,453,454,456,461,462,463,465,467,469,472,475,479,481,484,489,493,495,499,502,505,508,511],[96,42,33,258,97,42],"project\u002Fcritical\u002Fperformance",[260,42,42,261,262,42],"10252692","commenter\u002Fneutral\u002Fperformance","rafaquintanilha",[264,42,47,265,266,42],"10253607","project\u002Fpositive\u002Fidea","bobfunk",[244,42,42,268,11,33],"commenter\u002Fneutral\u002Fnone",[270,42,42,268,271,42],"10255833","wale",[273,42,42,268,266,42],"10256167",[275,42,38,276,277,42],"10253757","project\u002Fneutral\u002Fperformance","michaelbuckbee",[279,42,38,280,281,42],"10253982","project\u002Fneutral\u002Fidea","ForrestN",[283,42,38,280,284,42],"10255436","franciscop",[286,42,42,287,288,42],"10255632","other\u002Fneutral\u002Fnone","tmarthal",[290,42,33,291,292,42],"10256555","project\u002Fcritical\u002Fexecution","fenomas",[104,42,33,258,105,42],[202,33,42,287,203,42],[296,33,42,287,297,42],"10254767","rememberlenny",[209,18,38,299,210,42],"project\u002Fmixed\u002Fperformance",[301,18,42,287,302,42],"10254001","dangerscarf",[304,38,47,265,305,42],"10252148","arcatek",[247,38,42,268,11,33],[172,254,33,308,173,42],"project\u002Fcritical\u002Fprivacy",[250,254,42,310,11,33],"project\u002Fneutral\u002Fprivacy",[216,47,42,287,217,42],[313,47,42,287,11,33],"10252447",[315,47,42,287,224,42],"10252625",[317,318,38,319,320,42],"10252120",6,"project\u002Fneutral\u002Fdocs","andybak",[322,318,42,319,11,33],"10252131",[324,318,38,319,325,42],"10252149","adamcanady",[327,318,38,319,328,42],"10252157","codingminds",[330,318,38,319,331,42],"10252572","cdbattags",[333,318,38,280,85,42],"10257287",[100,335,33,258,101,42],7,[337,338,47,265,339,42],"10252003",8,"user1241320",[341,342,38,280,343,42],"10254672",9,"prawks",[55,342,42,280,11,33],[346,342,38,347,348,42],"10255288","maker\u002Fneutral\u002Fnone","oso2k",[58,342,42,280,11,33],[351,352,42,287,353,42],"10253216",10,"Confiks",[84,40,47,265,85,42],[356,34,38,280,357,42],"10252115","IIAOPSW",[359,34,42,347,11,33],"10252145",[223,34,42,287,224,42],[362,34,38,363,364,42],"10252828","project\u002Fneutral\u002Fnone","comrh",[366,34,42,287,224,42],"10252910",[368,34,42,287,231,42],"10256233",[370,31,47,265,371,42],"10252018","binoyxj",[373,31,38,374,375,42],"10252114","project\u002Fneutral\u002Fdesign","paulsnar",[377,378,38,276,379,42],"10256289",14,"intrasight",[381,382,38,347,383,42],"10252366",15,"Poiesis",[64,382,42,347,11,33],[76,386,47,265,77,42],16,[388,386,42,280,11,33],"10252355",[237,390,42,287,238,42],17,[392,393,42,287,394,42],"10254135",18,"j_s",[80,396,47,265,81,42],19,[115,398,38,310,116,42],20,[400,398,42,310,11,33],"10253378",[166,398,47,402,116,42],"project\u002Fpositive\u002Fprivacy",[404,405,47,265,156,42],"10252711",21,[122,407,33,291,123,42],22,[126,407,33,291,127,42],[410,407,42,411,11,33],"10253887","project\u002Fneutral\u002Fexecution",[230,241,38,363,231,42],[414,32,42,287,415,42],"10289608","techjacker",[417,418,42,287,419,42],"10253538",25,"pacoverdi",[421,418,42,347,11,33],"10253937",[194,423,38,280,195,42],26,[425,423,42,280,11,33],"10251980",[427,423,38,280,195,42],"10252040",[429,423,42,319,11,33],"10252082",[431,432,42,287,433,42],"10252275",27,"sgt",[435,432,42,287,188,42],"10252321",[437,432,42,287,438,42],"10252328","SeeDave",[440,432,42,287,441,42],"10252421","fzaninotto",[443,432,42,444,438,42],"10258563","commenter\u002Fpositive\u002Fnone",[446,447,42,363,11,33],"10254543",28,[155,449,38,280,156,42],29,[451,449,42,452,11,33],"10253256","maker\u002Fpositive\u002Fnone",[159,449,47,265,156,42],[180,455,38,310,181,42],30,[457,458,33,459,460,42],"10252470",31,"project\u002Fcritical\u002Fidea","usertaken",[149,458,42,280,11,33],[142,458,38,280,127,42],[464,458,42,280,11,33],"10253952",[187,466,38,276,188,42],32,[468,466,42,276,11,33],"10252212",[470,466,47,471,188,42],"10252229","project\u002Fpositive\u002Fperformance",[473,474,42,280,11,33],"10251687",33,[476,16,33,477,478,42],"10255910","maker\u002Fcritical\u002Fdocs","jrochkind1",[111,480,33,308,112,42],35,[482,480,42,483,11,33],"10254234","maker\u002Fneutral\u002Fprivacy",[485,486,42,487,488,42],"10252705",36,"commenter\u002Fcritical\u002Fidea","chrisallick",[490,486,42,491,492,42],"10252738","commenter\u002Fneutral\u002Fidea","Vexs",[494,486,42,487,488,42],"10252770",[496,486,47,497,498,42],"10253203","maker\u002Fpositive\u002Fidea","aarondf",[133,500,33,501,134,42],37,"project\u002Fcritical\u002Fdesign",[503,500,42,504,11,33],"10251970","maker\u002Fneutral\u002Fdesign",[506,500,38,280,507,42],"10252034","arethuza",[509,500,47,265,510,42],"10256098","cdcarter",[512,500,33,501,513,42],"10252101","LoSboccacc",[],[516,521,526,531,535,540],{"id":517,"name":518,"points":519,"category":520},"10249362","%%30%30",608,"games",{"id":522,"name":523,"points":524,"category":525},"10248773","Hacker News Simulator",572,"other",{"id":527,"name":528,"points":529,"category":530},"10260302","Kiddo Paint",162,"creative",{"id":532,"name":533,"points":534,"category":20},"10231907","rnplay",124,{"id":536,"name":537,"points":538,"category":539},"10248566","Live Simple",80,"web_saas",{"id":541,"name":542,"points":543,"category":544},"10258311","Wildflower Touch",77,"languages",false,"v2",{"id":548,"name":5,"line":6,"ai":545,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":549,"top":18,"kw":550,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":551,"url":9,"mix":552,"praise":72,"objection":93,"sub":21},10251686,-0.04,[24,25,26,27],"1533105103333305353505531033003513510513",[31,32,33,34],1793990930827]