How much money am I spending on Seamless?

May 24, 2020

I recently started thinking about my finances and spending habits after turning 27 and thinking more about my future and financial goals.

I had the feeling that I was spending too much money ordering food on Seamless so I went ahead and pulled down my order history from the last year using their private API (read the last section for more details on this) and did some quick math.

How many times do I order from Seamless per month?

On average, I order from Seamless about 11 times a month.

How much am I spending on Seamless?

From this data we can tell that I spend:

  • $5287.05 per year
  • $406.70 per month
  • $35.48 per meal

How much of that is in fees, taxes, and tips?

So in the last year...

  • I've paid a total of $169.13 in delivery and service fees to Seamless.
  • I've tipped drivers a total of $824.87.
  • I've paid $351.18 in taxes.

How did I get this data?

There doesn't seem to be an official Seamless or Grubhub API so I just sniffed HTTP requests while browsing their web app.

Getting your Seamless DINER_ID and TOKEN

  • Go to your Seamless order history page with the developer console open to the Network tab.
  • Filter for api-gtm.grubhub.com/diners or search_listing and find a GET request matching /diners/<DINER_ID>/search_listing.
  • Take note of your DINER_ID from the URL and TOKEN from the Authorization request header.

Making the request

Now make the GET request yourself with your favourite HTTP client. The example below uses axios.

Make sure you've got the Origin request header set to https://www.seamless.com.

axios({
    "method": "GET",
    "url": "https://api-gtm.grubhub.com/diners/<DINER_ID>/search_listing",
    "params": {
        "pageNum": "1",
        "pageSize": "100",
        "facet": "scheduled:false,orderType:ALL",
        "sorts": "default"
    },
    "headers": {
        "Origin": "https://www.seamless.com",
        "Authorization": "Bearer <TOKEN>",
        "Accept": "application/json"
    }
})