How to resolve 'x-cache: Miss from cloudfront'?

Hi folks! I have followed the documentation here and here to set up a Humanitix API call (Get Events) to import events, but it doesn’t seem to work. I keep getting ‘x-cache: Miss from cloudfront’.

Here is how I’ve set it up:

After initialising the call, I get this in the response:

I then overrode this with the manual response given here.

Each morning, I want to be able to list all Humanitix’s new events in their environmentAndSustainability sub-category in a repeating group, and then click on those events that will be of interest to my app’s users to import them into my database and populate on my Events search page (including the relevant links to Humanitix so users can go to book).

I am assuming it’s ‘x-cache: Miss from cloudfront’ that I need to fix, but I’m not sure what it is or how to move forward. Does anyone know?

Have you tried adding the since param? :

I didn’t, thinking that I already had the ‘inFutureOnly’ parameter. As you suggested it, I tried it. No change, sadly:

{
    "body": {
        "total": 0,
        "pageSize": 100,
        "page": 1,
        "events": []
    },
    "headers": {
        "content-type": "application/json; charset=utf-8",
        "content-length": "47",
        "connection": "keep-alive",
        "date": "Sat, 02 Mar 2024 05:37:12 GMT",
        "server": "nginx",
        "x-cache": "Miss from cloudfront",
        "via": "1.1 e5af640ced3aa8764b82c4bc3f7af38e.cloudfront.net (CloudFront)",
        "x-amz-cf-pop": "HIO50-C1",
        "x-amz-cf-id": "U4__aomPW25WjIuEA5Y_kL7doimTodatSz9obI2rqHxGQR2elZfqMA=="
    }
}

Everything looks like it should be correct, have you double checked they have events listed for AU in the future etc?

Since it’s an empty array with no errors, either they aren’t giving you the data for some reason or there is no data to give

Loads of events in the future in Aus. These are just the ones relevant to my app.

Does ‘Miss from cloudfront’ mean anything to you?

Here is what I got in my logs (pretty much the same thing):

HTTP request response

{
    "connection": "keep-alive",
    "date": "Sat, 02 Mar 2024 05:39:05 GMT",
    "x-cache": "Miss from cloudfront",
    "via": "1.1 26ca01ec7377e425b59b6a08cb1ec342.cloudfront.net (CloudFront)",
    "x-amz-cf-pop": "HIO50-C1",
    "x-amz-cf-id": "tQPr-dd1igxKvALyHlOykmokEJgZ1ynBnO7AHHNCmQhZASyPWIufNw==",
    "content-type": "application/json; charset=utf-8",
    "content-length": "47",
    "server": "nginx"
}

I believe that’s just the header info on caching, I wouldn’t expect that to be an issue, but you could log a ticket with their support and ask them to check ? I don’t think you’re doing anything wrong, you’ve got all the listed fields etc.

When they generate the key for you, are there any settings there at all? That might restrict certain results?

No, none. This is literally all it has:

I did find that when I tried their ‘Get Events global’ API I got a 403 error (User: Ta-------------- does not have permission). But this API didn’t give me an error like that.

As you suggested, I’ve now raised a support request. I’ll report back.

Turns out they don’t allow use of their API to get events unless one owns those events:

you would not be able to run a Get Events API call of events on our platform without some form of shared permissions or ownership of those events.
It’s something we’ve discussed but for the time being for privacy and security reasons this is restricted.

It’s not something their docs actually say, but now I know.

Ahh okay, thats annoying but makes sense as to why there was an empty array coming back. You could technically scrape the pages but depending on their TOS it may not be allowed.