A Fix For Issues Calling The Yelp API Using wp_remote_get (and other WordPress request methods)

This is quite a specific issue you will only encounter if you are attempting to call the Yelp Fusion API using any of WordPress’ request methods such as wp_remote_get (that’s probably the one you are using). In attempting to do so, you will find yourself faced with a 403 error.

You’re passing up your API key or valid token, but still, the request won’t work.

This issue goes back a few years, but the bottom-line is Yelp block requests made from user agents featuring “WordPress”. The default user-agent for wp_remote_get and other methods just so happens to be this.

This issue has a sort of explanation from Yelp. They don’t go into specifics and say why, but the workaround is simple. Set the user-agent to empty or something else.

In my case, I ended up with the following:

$args = array(
  'headers'     => array(
    'user-agent' => '',
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer ' . $token,
  ),
);

$response = wp\_remote\_get($endpoint, $args);
$response\_code = wp\_remote\_retrieve\_response\_code( $response );
$response\_body = wp\_remote\_retrieve\_body( $response );

Like I said, a specific problem only to WordPress users who are using the in-built request methods. Curl and other ways you can make a request like file_get_contents do not experience this issue.