Skip to content

Instantly share code, notes, and snippets.

@jacktasia
Created January 4, 2015 01:45
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jacktasia/17cefd2c41a5b44d8460 to your computer and use it in GitHub Desktop.
Save jacktasia/17cefd2c41a5b44d8460 to your computer and use it in GitHub Desktop.
imgix PHP purge example
<?php
// find your api key on the bottom of page @ https://webapp.imgix.com
define('IMGIX_API_KEY', '');
// pass the url you want to purge
function imgix_purge($url) {
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode(IMGIX_API_KEY.':')
);
$payload = json_encode(array("url" => $url));
$curl = curl_init('https://api.imgix.com/v2/image/purger');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
// usage
$imgix_url = 'http://yourcompany.imgix.net/examples/mountain.jpg';
echo imgix_purge($imgix_url);
@bhuvidya
Copy link

thanks so much @sambshapiro that worked great for me - and saved me time!

@heyitsbryanm
Copy link

The imgix legacy purging API should be getting deprecated soon:
https://blog.imgix.com/2020/10/16/api-deprecation

I'd recommend following the migration guide for anyone still using this code:
https://docs.imgix.com/setup/legacy-api-migration-guide

To summarize:

  • The endpoint will be changing to https://api.imgix.com/v2/image/purger
  • The authentication will be changing from "Basic" to "Bearer": Authorization: Bearer <api-key>
    • You will need to generate new API keys from the dashboard as well
  • You must specify Content-Type: application/vnd.api+json
  • The body of the request must be sent in the following format:
{
    "data": {
        "attributes": {
            "url": "https://assets.imgix.net/examples/bridge.jpg"
        },
        "type": "purges"
    }
}

Note that for the API also now supports sub-image purging. You can read more about that here:
https://docs.imgix.com/apis/management#purge-sub-images

For any help, contact support@imgix.com

@benbarry
Copy link

benbarry commented Feb 16, 2023

Since ImgIX was too lazy to provide updated code (and provided incorrect information), here is an updated version that is working for me as of February 2023:

<?php

// find your api key on the bottom of page @ https://dashboard.imgix.com/api-keys
define('IMGIX_API_KEY', 'YOUR_IMGIX_API_KEY_HERE');

// pass the url you want to purge
function imgix_purge($url) {
    $headers = array(
        'Authorization: Bearer ' . IMGIX_API_KEY,
        'Content-Type:application/vnd.api+json'
    );
    $payload = json_encode(array(
        "data" => array(
        "attributes" => array(
            "url" => $url
        ),
        "type" => "purges"
    )));
    $curl = curl_init('https://api.imgix.com/api/v1/purge');
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

// usage
$imgix_url = 'http://yourcompany.imgix.net/examples/mountain.jpg';
echo imgix_purge($imgix_url);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment