@Maria_Jimenez - I must say that this topic you have raised has been interesting and thoughtful to read.
I am going to say a few things from a developer point of view, so please do not take this wrong way as I see things differently. John may have additional points of view but usually we are on the same wavelengths.
The original post you raised on April 12th got me thinking that you were a developer, in which in turn I thought you would understand about the API documentation. When you did not come back straight away we guessed you understood things. Not everyone replies back to our answers, so we assume all is okay, unless they found another solution.
On June 20th, two months later from your originally post you came back to us. Although I must admit that Keap’s API documentation was not great at the very beginning, and sometimes you had to piece it all together. It has got better over the years, but it could still do with some improvement. I think from Keap’s point of view is if you are a Developer then you should understand all the Development jargon. I have seen other API documentation over the years that was more vague than Keap’s and had to search for answers.
You mentioned the following “…what I think most regular everyday Keap customers considering or contemplating using KEAP API…”. The vast majority of Keap’s customers are not developers, and would have no idea about the API. Their first port of call would be to use Zapier, which makes it easier to set up integrations. Unfortunately Zapier is limited to what it can do, so if customers need to do more then the API comes into play. I am sure @John_Borelli can confirm that when he deals with his clients that most would have no clue about the API, and they get him to do all the necessary technical work. Well that happens in my case.
In regards to the API Connection Methods, this is where it can become a hot issue. Each has their Pros and Cons, so all of us could end up arguing which is the best to use. Keap want developers to use the OAuth API Connection method for improved security. Which I agree on, but unfortunately it makes harder to develop against because you have to deal with the storage and retrieval of the Access and Refresh Tokens. That makes simple scripts become more complex then they need to be. Only last year Personal Access Tokens came out, which is like a halfway house having a permanent key again. In my opinion they could have extended the Legacy API Key with additional options. Anyway, you get the usual “its what the industry uses” response.
Years ago there was far more people including developers in the forum helping out each other. But as time has gone past, some have left due to various reasons. John and myself are not as active as we use to be, because we are constantly busy.
When we reply we give pointers to people on what to do, and even give out examples if need be. Usually people are happy with the responses. When it comes to scripting questions then we have to balance things. If this forum had people constantly asking for scripting help, we would be spending most of the week trying to answer, but that is all free advice. Unfortunately it does not pay our bills.
I see that you had a Good Samaritan who spotted your recent post and helped you out, then I applaud his effort in helping you out. It also tells us that other people are watching the forum and can give out help when needed.
Anyway, I am glad it is now sorted out for you.
Demo API Script
One more thing, I just want to show you and other people something that can be achieved using the Legacy XML-RPC and API Key. This code below is a simple PHP script that sets the Current Date and Time in the Contact Record - “Job Title” field for Contact Id “123”. The API Connection needs to be set accordingly.
The point of this script is to show that there is no need for the SDK nor to have OAuth. It can be adjusted for simple processing needs.
// Example PHP script to update the Contact Job Title field via the XML-RPC using the Legacy API Encrypted Key.
// API Connection.
$app = "**ABCDEF**"; // Your Keap Account Name.
$key = "**ABCDEF**"; // Your API Encrypted Key.
// Contact Details To Update.
$contact = 123; // Contact Id.
$field = "JobTitle"; // Contact Field to update.
$value = date("Y-m-d H:i:s"); // Contact Value to set.
// API Request.
$request = "<?xml version='1.0' encoding='UTF-8'?>
$url = "https://$app.infusionsoft.com:443/api/xmlrpc";
$headers = [ "Content-Type: text/xml", "Accept-Charset: UTF-8,ISO-8859-1,US-ASCII", "Expect:" ];
$useragent = "XML-RPC Example";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLVERSION, 0);
$output = curl_exec($ch);