title: Invalid Resource Mailchimp API
body: <p>Using to a CURL script to add a new entry to a Mailchimp mailing list using their API but get an invalid resource error. I can see the three fields in the mailing list namely EMAIL, FNAME &amp; LNAME so cannot see why there would be a validation error. How could I troubleshoot this better so I can see the exact cause of the error?</p>
  
  <pre><code>&lt;?PHP
  
  // put your api key here  note the ending text past the - this is your datacenter 
  // the datacenter needs to be added into to the url in the curlopt_url (see below)
  $apikey = "xxxxxxxxxxxxxxxxxxxxxxx-us13"; // my datacenter was "us11"
  
  
  // listid goes here - to find this... log into mail chimp go to Lists menu , 
  // look to far right of list name for a drop down arrow, select the "Settings" dropdown,
  // scroll to bottom and look  for  "Unique id for list"
  $list_id = "xxxxxxxx"; // web site list
  
  
  // the data I used to register (there may be others you can use, check API docs)
  $email = "test@test.com";
  $fname = "Test";
  $lname = "Test";
  
  
  $auth = base64_encode( 'user:'.$apikey );
  
  
  // Notice the value of 'status' is 'pending'  
  // I found this via a google search indicating a double opt in subscription process 
  
  $data = array(
  'apikey'        =&gt; $apikey,
  'email_address' =&gt; $email,
  'status'        =&gt; 'pending',
  'merge_fields'  =&gt; array(
  'FNAME' =&gt; $fname,
  'LNAME' =&gt; $lname,
  )
  );
  $json_data = json_encode($data);
  
  $ch = curl_init();
  
  // notice datacenter  "us11" comes after the // - make sure you update this to your datacenter (e.g. us2, us7 etc) or you'll get the "wrong datacenter" error.
  $curlopt_url = "https://us13.api.mailchimp.com/3.0/lists/$list_id/members/";
  curl_setopt($ch, CURLOPT_URL, $curlopt_url);
  
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
      'Authorization: Basic '.$auth));
  curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/3.0');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
  
  $result = curl_exec($ch);
  /*
  // some debug statements 
  var_dump($result);
  print_r ($result);
  */
  
  
  // here is simple way to determine status of a subscription
  // $result is in JSON format
  // this following loop is a simple JSON decode loop I found via google
  
  
   $status = "undefined";
      $msg = "unknown error occurred";
  $myArray = json_decode($result, true);
  
  foreach($myArray as $key =&gt; $value)
  {
  
      // debug key&lt;&lt;&lt; = &gt;&gt;&gt;$value&lt;&lt;&lt; &lt;br&gt;";
  
      if( $key == "status" )
      {
          $status=$value;
          //debug                 echo" status found $status&lt;Br&gt;";
      }
      else if ($key == "title")
      {
          $msg=$value;
          //debug                 echo" title found $msg&lt;Br&gt;";
      }
  
  
  }
  
  // create the output that gets displayed or returned if invoked by AJAX method
  if( $status == "pending" )
  {
      $msg = "Success! &lt;br&gt;$email has been subscribed &lt;Br&gt;check your inbox for the confirmation email to complete your subscription";
  }
  else
  {
      $msg = "Sorry can not subscribe email $email &lt;br&gt;$msg &lt;Br&gt;";
  }
  
  
  echo "$msg &lt;br&gt;";
  
  
  die(' ');
  ?&gt;
  </code></pre>