Interested in API access?


#1

Are you interested in API access to Taplist.io? What would you do with it?

I know we’ve got a lot of homebrewers among us (aka tinkerers who might have mashup ideas!) I’m trying to prioritize what to do next, so hearing your wishlist and ideas would help! Some things I’m thinking:

  • Change kegs via API.
  • Get tap status via API - maybe useful to build some alternative frontends?

Your ideas…?


#2

Pairing Taplist.IO with IFFT would be an easy way to open up a whole slew of options.


#3

Nice, I’ll look into it! I vaguely remember IFTTT closed off their API to new / “small” channels a while ago, but maybe that’s not right…


List bottles and count
#4

My thought was it would be pretty cool to specify in the beer title in parenthesis the % of the tap remaining. For home bars that have a short list they also may want to list cans/bottles as entries and these could show how many are left. Tying this to a simple app or even the POS software could make it easy to automatically update these via API. Of course if you also added a new remaining qty and % left fields to the keg entities (obviously with an optional toggle of off/on-qty/on-%) this would make this a lot easier, but it could be done via ability to rename the taps on the fly and a naming convention as mentioned.

Something else interesting for bars would be having API to replenish empty taps or if the above implemented being able to reset to 100% via a physical button in the taproom (re-purposed Amazon dash or custom buttons wired to arduino or something). Swap keg, slap the button, done.


#5

My thought was it would be pretty cool to specify in the beer title in parenthesis the % of the tap remaining. For home bars that have a short list they also may want to list cans/bottles as entries and these could show how many are left. Tying this to a simple app or even the POS software could make it easy to automatically update these via API.

Heh - I’ll let you in on a little secret: under the hood, kegs can have a volume. I guess this should come as little surprise since I created Kegbot :). Unlike Kegbot though, where there’s a lot of specialized hardware you can use, I’d love to support very simple use cases. One that comes up from time to time is the “honesty button” for manually reporting pours, I also love the idea of POS integration and there are some platforms where this is actually quite easy. Long story short: you can count on this idea being supported!

Something else interesting for bars would be having API to replenish empty taps or if the above implemented being able to reset to 100% via a physical button in the taproom (re-purposed Amazon dash or custom buttons wired to arduino or something). Swap keg, slap the button, done.

I love the idea of dash button! Amazon now sells a generic one that is meant for repurposing. Would be fun to play with…


#6

Any update on the status of this?

I was just thinking it’d be cool to wire up a simple mobile app with some standard features to easily start and end kegs.


#7

Would be quite interested. Not just for myself, but for a local brewery that uses Taplist.io. Interested in the following (at the moment):

  • Change kegs, and their details (description, image etc)
  • Tap list (mostly for embedding into website to fit current website styling)
  • Maybe a custom field that we could insert our own json to parse? for things like percentages or other random proprietary information. Nothing crazy just a few fields. Doesn’t have to be too long of a string either.

Would be creating something for cross platform use: Mobile, Website, and tap management system.


#8

We would definitely be interested for the sake of our homebrew club meetings. It would be grand if we could make an easy tie-in from a webform to have people say “I’m bringing this beer to the meeting” and then we could sort it into the list. (i.e. put it into the available beverages group and then we could manually assign the list)


#9

A web-api to pull my beer club taplist would let me create a web based beer club voting list.

I would just grab the ordered list from you.

Of course i could write a scraper, but tray never seems like the right thing to do.

Once done, I would even share the source back to you.
I will be writing in LAMP if it matters.


#10

Thought my current project might be of interest to someone. I’ve just been working on a web service that returns the beverage data from taplist. Might be useful if you want to embed the data on another website. I’ve written it in JavaScript and deployed it to AWS so it’s accessible from anywhere. It is just a screen scraper so nothing fancy. Happy to leave it hosted there or share the code if that helps. Or maybe point a taplist subdomain at it. e.g. api.taplist.io.

Give me a shout if you want the URL.

The data it returns looks something like this:

{
  "taplistDetails": {
    "venue": "Electric Bear Brewing Co Taproom",
    "beverageList": [
      {
        "breweryName": "Electric Bear Brewing Co.",
        "beverageName": "Edison",
        "beverageStyle": "British Pilsner",
        "ABV": "4.8%"
      },
      {
        "breweryName": "Electric Bear Brewing Co.",
        "beverageName": "Howdy Ho",
        "beverageStyle": "American Brown Ale",
        "ABV": "5.1%"
      }
    ]
  }
}

#11

Shout! I’d be interested in the URL.

I’m (over)anxiously waiting for Mikey to grant access to the “official” Taplist.io API in a few weeks. However, this may be a viable option for folks who don’t need API access to write to Taplist.io or who don’t want to pay for the official Taplist.io API access. The official Taplist.io API (along with other new features) will most likely be gated by a tiered (paid) subscription.

Joe


#12

This is the URL at the moment:

https://cwhgp6hr8i.execute-api.eu-west-2.amazonaws.com/prod?venueID=123456

where you replace the venue id with the one you want. e.g. For the electric bear brewing company it’s:

https://cwhgp6hr8i.execute-api.eu-west-2.amazonaws.com/prod?venueID=670357

It’s just a lambda hosted on AWS so it’s a pretty horrible URL at the moment. So far it’s had very little testing but take a look and see if it would be helpful.

Comments welcome!


#13

Pretty neat! It worked for me. I assume you’ll add support for the other fields.


#14

I was trying to keep it as simple as possible rather than fully featured API access. I figured that you could embed the site in an iframe if you wanted all the data. This was written for a local venue so they could have a simple feed in a table on their own site and didn’t have to update the data in two places.

What other fields do you think would be useful?


#15
  • Tap Number
  • Description
  • Rating
  • OG
  • FG
  • IBU
  • SRM

#16

It looks like you’re assuming the presence of specific fields in a particular order. For example, if the taplist doesn’t include the beverage style, ABV ends up in the “beverageStyle” field,

     {  
        "breweryName":"Brewery Name 1",
        "beverageName":"Beverage Name 1",
        "beverageStyle":"ABV: 7.4%",
        "ABV":"Unknown"
     }

If the taplist doesn’t include the brewery name (i.e., producer) and includes the tap number, the tap number ends up in the “beverageName” field,

     {  
        "breweryName":"",
        "beverageName":"1.",
        "beverageStyle":"Beverage Style 1",
        "ABV":"100.0%"
     }

#17

Most of the taplists I use follow a very basic format and so work ok. The website doesn’t have any easy way of getting the exact data out as it is just in a list on the website and so I’ve had to make some assumptions. The only exact way of sorting this would be to change the website to tag each entry with something. e.g “ID-BREWERY” “ID-ABV” etc. but I don’t have access to this code.

I’ve fixed the beverage style issue when there is no ABV but as there are so many fields there could be many more of these issue. I’ll take a look to see if I can fix the tap number one too.


#18

What if your URL was to optionally accept an ordered list of “keys”,

https://cwhgp6hr8i.execute-api.eu-west-2.amazonaws.com/prod?venueID=123456&key={breweryName,beverageName,beverageStyle,ABV,tapNumber,description,rating,OG,FG,IBU,SRM,...}

This would tell you which fields to expect and the order in which to expect them.

Joe


#19

Yeah that could work but then you would have to make sure that the two were in sync. And every beverage would then need to all have the same fields present. Hmmm…
IBU, OG, FG, SRM are simple to add. And will work with or without them. I’ve just added IBU for example.
I’ll have a play with tap number and brewery names when I have some time to see if I can make that work too. Watch this space… This is harder than I first thought!


#20

It’s reasonable to think the consumer invoking your URL would know which fields are involved and their order.

That’s a good point. This would be a real challenge if your taplist involved a mix of beer, wine, mead, kombucha, root beer, …

In the case of ABV, SRM, IBU, OG and FG, the “key” explicitly appears in the HTML,

  <li><b>ABV:</b> 100.0%</li>
  <li><b>SRM:</b> 40.0</li>
  <li><b>IBU:</b> 100</li>
  <li><b>OG:</b> 1.000</li>
  <li><b>FG:</b> 1.000</li>

I’m sure that’s how you’re (now) parsing these fields.

Maybe you just specify whether the tap number, producer, style and description are present. I think it’s a reasonable restriction to assume if one beverage has a producer, style or description that all
of the beverages involve these fields. Certainly, if one beverage has a tap number then all beverages will have a tap number. And you may be able to infer whether a field is present based on the context. For example, the description is a paragraph,

<p>Free-form description of the beverage.</p>

(not sure if it will always be the only paragraph).

Again, I really like what you’ve done. I wouldn’t spend too much time implementing my crazy ideas. Let’s see what the broader community thinks.

Joe