<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://api.i4a.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrea</id>
	<title>i4a API Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://api.i4a.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrea"/>
	<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php/Special:Contributions/Andrea"/>
	<updated>2026-04-17T17:35:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide&amp;diff=220</id>
		<title>I4A API Guide</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide&amp;diff=220"/>
		<updated>2025-10-03T12:13:20Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page I4A API Guide to I4A API Guide v1 Deprecated March 31, 2024&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[I4A API Guide v1 Deprecated March 31, 2024]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=219</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=219"/>
		<updated>2025-10-03T12:13:20Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page I4A API Guide to I4A API Guide v1 Deprecated March 31, 2024&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A v 1.0 API Guide =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border: solid red; width: 75%; padding: 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;API v 1.0 DEPRECATED AS OF March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=218</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=218"/>
		<updated>2025-10-03T12:03:12Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* I4A API Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A v 1.0 API Guide =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border: solid red; width: 75%; padding: 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;API v 1.0 DEPRECATED AS OF March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=217</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=217"/>
		<updated>2025-10-03T12:02:45Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* I4A API Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border: solid red; width: 75%; padding: 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;API v 1.0 DEPRECATED AS OF March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;[https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Main_Page&amp;diff=215</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Main_Page&amp;diff=215"/>
		<updated>2024-05-17T14:50:43Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the i4a API Wiki.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
i4a provides a secure API that allows you to access your data remotely and programmatically.&lt;br /&gt;
&lt;br /&gt;
== API Documentation  ==&lt;br /&gt;
* [https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=212</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=212"/>
		<updated>2023-11-03T12:58:06Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* I4A API Guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border: solid red; width: 75%; padding: 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Update your API integrations to v 2.0 before March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
API v 1.0 will continue to work until &#039;&#039;&#039;March 31, 2024&#039;&#039;&#039;. We encourage you or your third-party vendors to update your integrations now.&lt;br /&gt;
&lt;br /&gt;
[https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=211</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=211"/>
		<updated>2023-11-03T12:56:58Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border: solid red; width: 75%; padding: 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Update your API integrations to v 2.0 before March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
API v 1.0 will continue to work until &#039;&#039;&#039;March 31, 2024&#039;&#039;&#039;. We encourage you or your third-party vendors to update your integrations now.&lt;br /&gt;
&lt;br /&gt;
[https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== API 1.0 is being deprecated in 2024. Please update your integrations as soon as possible to [[I4A API 2.0]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Main_Page&amp;diff=210</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Main_Page&amp;diff=210"/>
		<updated>2023-11-03T12:55:44Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the i4a API Wiki.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
i4a provides a secure API that allows you to access your data remotely and programmatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border: solid red; width: 75%; padding: 10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Update your API integrations to v 2.0 before March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
API v 1.0 will continue to work until &#039;&#039;&#039;March 31, 2024&#039;&#039;&#039;. We encourage you or your third-party vendors to update your integrations now.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Documentation Links ==&lt;br /&gt;
* [https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://api.i4a.com/index.php/I4A_API_Guide i4a API 1.0 documentation]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Main_Page&amp;diff=209</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Main_Page&amp;diff=209"/>
		<updated>2023-11-03T12:54:34Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* API Documentation Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the i4a API Wiki.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
i4a provides a secure API that allows you to access your data remotely and programmatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#bf110b&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Update your API integrations to v 2.0 before March 31, 2024.&#039;&#039;&#039;&amp;lt;/strong&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 2.0 of our API offers more security and is easier to implement and use. It offers numerous endpoints for retrieving data - such as Contacts, Membership, and custom views.&lt;br /&gt;
&lt;br /&gt;
API v 1.0 will continue to work until &#039;&#039;&#039;March 31, 2024&#039;&#039;&#039;. We encourage you or your third-party vendors to update your integrations now.&lt;br /&gt;
&lt;br /&gt;
== API Documentation Links ==&lt;br /&gt;
* [https://api.i4a.com/index.php/I4A_API_2.0 i4a API 2.0 documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://api.i4a.com/index.php/I4A_API_Guide i4a API 1.0 documentation]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4a_api_PHP_Example&amp;diff=121</id>
		<title>I4a api PHP Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4a_api_PHP_Example&amp;diff=121"/>
		<updated>2022-09-21T21:01:32Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page I4a api PHP Example to I4a API PHP Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[I4a API PHP Example]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4a_API_PHP_Example&amp;diff=120</id>
		<title>I4a API PHP Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4a_API_PHP_Example&amp;diff=120"/>
		<updated>2022-09-21T21:01:32Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page I4a api PHP Example to I4a API PHP Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
The following code will connect and retrieve all the contacts who have a lastname that starts with a b.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * For the return format section of the URL, the following options are available:&lt;br /&gt;
 * 		json 			- returns a json packet WITH header.  The header includes the content type set to application/json&lt;br /&gt;
 * 		json_noheader 	- returns a json packet with NO header.  PHP seems to cannot decode a json packet if it includes &lt;br /&gt;
 * 							a header, the header may be needed depending on how this API is used.&lt;br /&gt;
 * 		xml 			- returns an XML packet WITH header.  This will return the content type set to text/xml&lt;br /&gt;
 * 		xml_noheader 	- returns an xml packet with NO header.  This may be needed depending on your usage.&lt;br /&gt;
 * 		wddx			- an XML packet formatted in the WDDX specification. It includes a header set to text/xml.&lt;br /&gt;
 * 		wddx_noheader	- xml packet formatted to WDDX spec, does not include header.&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $username = &#039;adminuser1&#039;; &lt;br /&gt;
 $password = &#039;thepassword&#039;;&lt;br /&gt;
 $site_token = &#039;xxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx&#039;;&lt;br /&gt;
 $wsdl_url = &#039;http://www.mysite.org/i4a/utilities/authenticateAdmin.cfc?wsdl&#039;;&lt;br /&gt;
 $search_url = &#039;http://www.mysite.org/i4a/api/json_noheader/membership.contacts/lastname%20like%20b/&#039;;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 // We need to authenticate, but once we have our authKey we won&#039;t need to repeat that&lt;br /&gt;
 // The cache_wsdl option may not be needed, but it was in testing for us and possibly other options may be required for this to work.&lt;br /&gt;
 // For more information see the documentation at http://www.php.net&lt;br /&gt;
 $client = new SoapClient($wsdl_url,array(&#039;cache_wsdl&#039;=&amp;gt;WSDL_CACHE_NONE) ); &lt;br /&gt;
 $adminXML = $client-&amp;gt;authenticateAdmin($username,$password,$site_token);&lt;br /&gt;
 $adminJSON = json_decode(json_encode((array) simplexml_load_string($adminXML)),1);&lt;br /&gt;
 dump($adminJSON,&amp;quot;response packet from authentication&amp;quot;);&lt;br /&gt;
 $authKey = ($adminJSON[&#039;@attributes&#039;][&#039;authKey&#039;]);&lt;br /&gt;
 echo &#039;&amp;lt;hr&amp;gt;authKey=&#039;.$authKey.&#039;/&amp;lt;br/&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
 // now we&#039;ve authenticated and have our key, let&#039;s access the API...&lt;br /&gt;
 echo &#039;API URL=&#039;.$search_url . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;url string=&amp;quot;.$search_url.$authKey . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 // retrieve the http output into a variable.  Could use cURL functions as well most likely.&lt;br /&gt;
 $contactJSON = file_get_contents($search_url.$authKey);&lt;br /&gt;
 echo &amp;quot;&amp;lt;hr&amp;gt;Json Packet:&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 echo $contactJSON;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function dump($vars,$label=&#039;&#039;) {&lt;br /&gt;
	echo &amp;quot;&amp;lt;table border=1&amp;gt;&amp;quot;;&lt;br /&gt;
	echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2&amp;gt;&amp;lt;b&amp;gt;$label&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
	echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&#039;#088A85&#039;&amp;gt;Variable&amp;lt;/td&amp;gt;&amp;lt;td bgcolor=&#039;#088A85&#039;&amp;gt;Value&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
	if (gettype($vars) == &amp;quot;array&amp;quot; || gettype($vars) == &amp;quot;object&amp;quot;) {&lt;br /&gt;
		foreach ($vars as $key =&amp;gt; $value) {&lt;br /&gt;
			echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&#039;#DDDDDD&#039;&amp;gt;$key (&amp;quot;.gettype($value).&amp;quot;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
			if (gettype($value) == &amp;quot;array&amp;quot; || gettype($value) == &amp;quot;object&amp;quot;) {dump($vars=$value,$label=$key); } else { echo $value; }&lt;br /&gt;
			echo &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	else { echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.gettype($vars) . &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;; echo $vars.&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;; }&lt;br /&gt;
	echo &amp;quot;&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
} &lt;br /&gt;
  &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Api_return_format&amp;diff=111</id>
		<title>Api return format</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Api_return_format&amp;diff=111"/>
		<updated>2022-09-21T20:19:29Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page Api return format to API Return Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[API Return Format]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=110</id>
		<title>API Return Format</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=110"/>
		<updated>2022-09-21T20:19:29Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page Api return format to API Return Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The API uses the REST methodology and can return data back to the sender in a number of formats.  They are:&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Simply put the return format in the URL string right after the /i4a/api/ part of the URL.  By default each format will set the content-type in the HTML header.  This is known to cause problems with some browsers and frameworks.  If you are experiencing issues you can append _noheader to the format name and the data will be returned to you &amp;quot;RAW&amp;quot; with no headers being set.  For instance you can could pass:&lt;br /&gt;
&lt;br /&gt;
/i4a/api/json_noheader/membership.contact/24228 and it would return the same json data, but would not populate the HEADER that is returned to the calling page.&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
Json is a compact text based format, that at first glance looks somewhat like a traditional CSV file.  It is becoming very popular with Web 2.0 and is used most often with AJAX.&lt;br /&gt;
&lt;br /&gt;
=== xml ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== wddx ===&lt;br /&gt;
Wddx is nothing more than a specialized XML packet.  It has a defined structure in how the XML is organized, but otherwise it is identical to an XML document.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* https://www.json.org/ - The source for information on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/JSON - Wikipedia article on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/XML - Wikipedia article on xml format&lt;br /&gt;
* https://en.wikipedia.org/wiki/Wddx - Wikipedia article on wddx format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=109</id>
		<title>API Return Format</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=109"/>
		<updated>2022-09-21T20:19:15Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The API uses the REST methodology and can return data back to the sender in a number of formats.  They are:&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Simply put the return format in the URL string right after the /i4a/api/ part of the URL.  By default each format will set the content-type in the HTML header.  This is known to cause problems with some browsers and frameworks.  If you are experiencing issues you can append _noheader to the format name and the data will be returned to you &amp;quot;RAW&amp;quot; with no headers being set.  For instance you can could pass:&lt;br /&gt;
&lt;br /&gt;
/i4a/api/json_noheader/membership.contact/24228 and it would return the same json data, but would not populate the HEADER that is returned to the calling page.&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
Json is a compact text based format, that at first glance looks somewhat like a traditional CSV file.  It is becoming very popular with Web 2.0 and is used most often with AJAX.&lt;br /&gt;
&lt;br /&gt;
=== xml ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== wddx ===&lt;br /&gt;
Wddx is nothing more than a specialized XML packet.  It has a defined structure in how the XML is organized, but otherwise it is identical to an XML document.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* https://www.json.org/ - The source for information on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/JSON - Wikipedia article on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/XML - Wikipedia article on xml format&lt;br /&gt;
* https://en.wikipedia.org/wiki/Wddx - Wikipedia article on wddx format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=108</id>
		<title>API Return Format</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=108"/>
		<updated>2022-09-21T20:18:46Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The API uses the REST methodology and can return data back to the sender in a number of formats.  They are:&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Simply put the return format in the url string right after the /i4a/api/ part of the url.  By default each format will set the content-type in the HTML header.  This is known to cause problems with some browsers and frameworks.  If you are experiencing issues you can append _noheader to the format name and the data will be returned to you &amp;quot;RAW&amp;quot; with no headers being set.  For instance you can could pass:&lt;br /&gt;
&lt;br /&gt;
/i4a/api/json_noheader/membership.contact/24228 and it would return the same json data, but would not populate the HEADER that is returned to the calling page.&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
Json is a compact text based format, that at first glance looks somewhat like a traditional CSV file.  It is becoming very popular with Web 2.0 and is used most often with AJAX.&lt;br /&gt;
&lt;br /&gt;
=== xml ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== wddx ===&lt;br /&gt;
Wddx is nothing more than a specialized XML packet.  It has a defined stucture in how the XML is organized, but otherwise it is identical to an XML document.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* https://www.json.org/ - The source for information on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/JSON - Wikipedia article on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/XML - Wikipedia article on xml format&lt;br /&gt;
* https://en.wikipedia.org/wiki/Wddx - Wikipedia article on wddx format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4a_api_ColdFusion_Example&amp;diff=107</id>
		<title>I4a api ColdFusion Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4a_api_ColdFusion_Example&amp;diff=107"/>
		<updated>2022-09-21T20:18:09Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page I4a api ColdFusion Example to I4A API ColdFusion Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[I4A API ColdFusion Example]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_ColdFusion_Example&amp;diff=106</id>
		<title>I4A API ColdFusion Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_ColdFusion_Example&amp;diff=106"/>
		<updated>2022-09-21T20:18:09Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Andrea moved page I4a api ColdFusion Example to I4A API ColdFusion Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
This example shows the basics of making a call to the API and returning the results.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cfm&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cfoutput&amp;gt;&lt;br /&gt;
&amp;lt;cfset wUrl 		= &amp;quot;http://www.mydomain.com/i4a/utilities/authenticate.cfc?wsdl&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfset username		= &amp;quot;*********&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset password		= &amp;quot;*******&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;Cfset site_token 	= &amp;quot;*******-****-****-************&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset search_url	= &amp;quot;http://www.mydomain.com/i4a/api/json/membership.contacts/lastname%20like%20l/&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cfset myConn 		= createObject(&amp;quot;webservice&amp;quot;,wUrl) /&amp;gt;&lt;br /&gt;
&amp;lt;cfset admin 		= myConn.authenticateAdmin(username,password,site_token) /&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var			=&amp;quot;#admin#&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset adminXML		= xmlParse(admin) /&amp;gt;&lt;br /&gt;
&amp;lt;Cfdump var=&amp;quot;#adminXML#&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cfset authKey = adminXML.admin.XmlAttributes.authKey&amp;gt;&lt;br /&gt;
API URL=#search_url#&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;Cfhttp url=&amp;quot;#search_url##authKey#&amp;quot; method=&amp;quot;GET&amp;quot; result=&amp;quot;result&amp;quot; charset=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset contactJSON = result.FileContent /&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;Json Packet:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;Cfdump var=&amp;quot;#contactJSON#&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;cfset contact = deserializejson(contactJSON) /&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var=&amp;quot;#contact#&amp;quot; label=&amp;quot;Decoded Json&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Cfoutput&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_ColdFusion_Example&amp;diff=105</id>
		<title>I4A API ColdFusion Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_ColdFusion_Example&amp;diff=105"/>
		<updated>2022-09-21T20:17:50Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
This example shows the basics of making a call to the API and returning the results.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cfm&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cfoutput&amp;gt;&lt;br /&gt;
&amp;lt;cfset wUrl 		= &amp;quot;http://www.mydomain.com/i4a/utilities/authenticate.cfc?wsdl&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfset username		= &amp;quot;*********&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset password		= &amp;quot;*******&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;Cfset site_token 	= &amp;quot;*******-****-****-************&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset search_url	= &amp;quot;http://www.mydomain.com/i4a/api/json/membership.contacts/lastname%20like%20l/&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cfset myConn 		= createObject(&amp;quot;webservice&amp;quot;,wUrl) /&amp;gt;&lt;br /&gt;
&amp;lt;cfset admin 		= myConn.authenticateAdmin(username,password,site_token) /&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var			=&amp;quot;#admin#&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset adminXML		= xmlParse(admin) /&amp;gt;&lt;br /&gt;
&amp;lt;Cfdump var=&amp;quot;#adminXML#&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cfset authKey = adminXML.admin.XmlAttributes.authKey&amp;gt;&lt;br /&gt;
API URL=#search_url#&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;Cfhttp url=&amp;quot;#search_url##authKey#&amp;quot; method=&amp;quot;GET&amp;quot; result=&amp;quot;result&amp;quot; charset=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset contactJSON = result.FileContent /&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;Json Packet:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;Cfdump var=&amp;quot;#contactJSON#&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;cfset contact = deserializejson(contactJSON) /&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var=&amp;quot;#contact#&amp;quot; label=&amp;quot;Decoded Json&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Cfoutput&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Category:API&amp;diff=104</id>
		<title>Category:API</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Category:API&amp;diff=104"/>
		<updated>2022-09-21T20:17:22Z</updated>

		<summary type="html">&lt;p&gt;Andrea: Created page with &amp;quot;API Pages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;API Pages&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4a_API_PHP_Example&amp;diff=103</id>
		<title>I4a API PHP Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4a_API_PHP_Example&amp;diff=103"/>
		<updated>2022-09-21T20:15:15Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
The following code will connect and retrieve all the contacts who have a lastname that starts with a b.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * For the return format section of the URL, the following options are available:&lt;br /&gt;
 * 		json 			- returns a json packet WITH header.  The header includes the content type set to application/json&lt;br /&gt;
 * 		json_noheader 	- returns a json packet with NO header.  PHP seems to cannot decode a json packet if it includes &lt;br /&gt;
 * 							a header, the header may be needed depending on how this API is used.&lt;br /&gt;
 * 		xml 			- returns an XML packet WITH header.  This will return the content type set to text/xml&lt;br /&gt;
 * 		xml_noheader 	- returns an xml packet with NO header.  This may be needed depending on your usage.&lt;br /&gt;
 * 		wddx			- an XML packet formatted in the WDDX specification. It includes a header set to text/xml.&lt;br /&gt;
 * 		wddx_noheader	- xml packet formatted to WDDX spec, does not include header.&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $username 		= &#039;adminuser1&#039;; &lt;br /&gt;
 $password 		= &#039;thepassword&#039;;&lt;br /&gt;
 $site_token 	        = &#039;xxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx&#039;;&lt;br /&gt;
 $wsdl_url 		=  &#039;http://www.mysite.org/i4a/utilities/authenticateAdmin.cfc?wsdl&#039;;&lt;br /&gt;
 $search_url 	        = &#039;http://www.mysite.org/i4a/api/json_noheader/membership.contacts/lastname%20like%20b/&#039;;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 // We need to authenticate, but once we have our authKey we won&#039;t need to repeat that&lt;br /&gt;
 // The cache_wsdl option may not be needed, but it was in testing for us and possibly other options may be required for this to work.&lt;br /&gt;
 // For more information see the documentation at http://www.php.net&lt;br /&gt;
 $client     = new SoapClient($wsdl_url,array(&#039;cache_wsdl&#039;=&amp;gt;WSDL_CACHE_NONE) ); &lt;br /&gt;
 $adminXML    = $client-&amp;gt;authenticateAdmin($username,$password,$site_token);&lt;br /&gt;
 $adminJSON = json_decode(json_encode((array) simplexml_load_string($adminXML)),1);&lt;br /&gt;
 dump($adminJSON,&amp;quot;response packet from authentication&amp;quot;);&lt;br /&gt;
 $authKey = ($adminJSON[&#039;@attributes&#039;][&#039;authKey&#039;]);&lt;br /&gt;
 echo &#039;&amp;lt;hr&amp;gt;authKey=&#039;.$authKey.&#039;/&amp;lt;br/&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
 // now we&#039;ve authenticated and have our key, let&#039;s access the API...&lt;br /&gt;
 echo &#039;API URL=&#039;.$search_url . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;url string=&amp;quot;.$search_url.$authKey . &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 // retrieve the http output into a variable.  Could use cURL functions as well most likely.&lt;br /&gt;
 $contactJSON = file_get_contents($search_url.$authKey);&lt;br /&gt;
 echo &amp;quot;&amp;lt;hr&amp;gt;Json Packet:&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 echo $contactJSON;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function dump($vars,$label=&#039;&#039;) {&lt;br /&gt;
	echo &amp;quot;&amp;lt;table border=1&amp;gt;&amp;quot;;&lt;br /&gt;
	echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2&amp;gt;&amp;lt;b&amp;gt;$label&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
	echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&#039;#088A85&#039;&amp;gt;Variable&amp;lt;/td&amp;gt;&amp;lt;td bgcolor=&#039;#088A85&#039;&amp;gt;Value&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
	if (gettype($vars) == &amp;quot;array&amp;quot; || gettype($vars) == &amp;quot;object&amp;quot;) {&lt;br /&gt;
		foreach ($vars as $key =&amp;gt; $value) {&lt;br /&gt;
			echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=&#039;#DDDDDD&#039;&amp;gt;$key (&amp;quot;.gettype($value).&amp;quot;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
			if (gettype($value) == &amp;quot;array&amp;quot; || gettype($value) == &amp;quot;object&amp;quot;) {dump($vars=$value,$label=$key); } else { echo $value; }&lt;br /&gt;
			echo &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	else { echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.gettype($vars) . &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;; echo $vars.&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;; }&lt;br /&gt;
	echo &amp;quot;&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
} &lt;br /&gt;
  &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=102</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=102"/>
		<updated>2022-09-21T20:14:49Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=101</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=101"/>
		<updated>2022-09-21T20:14:20Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_ColdFusion_Example&amp;diff=100</id>
		<title>I4A API ColdFusion Example</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_ColdFusion_Example&amp;diff=100"/>
		<updated>2022-09-21T20:13:58Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A API Guide]]&lt;br /&gt;
&lt;br /&gt;
This example shows the basics of making a call to the API and returning the results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cfm&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cfoutput&amp;gt;&lt;br /&gt;
&amp;lt;cfset wUrl 		= &amp;quot;http://www.mydomain.com/i4a/utilities/authenticate.cfc?wsdl&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfset username		= &amp;quot;*********&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset password		= &amp;quot;*******&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;Cfset site_token 	= &amp;quot;*******-****-****-************&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset search_url	= &amp;quot;http://www.mydomain.com/i4a/api/json/membership.contacts/lastname%20like%20l/&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cfset myConn 		= createObject(&amp;quot;webservice&amp;quot;,wUrl) /&amp;gt;&lt;br /&gt;
&amp;lt;cfset admin 		= myConn.authenticateAdmin(username,password,site_token) /&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var			=&amp;quot;#admin#&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset adminXML		= xmlParse(admin) /&amp;gt;&lt;br /&gt;
&amp;lt;Cfdump var=&amp;quot;#adminXML#&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cfset authKey = adminXML.admin.XmlAttributes.authKey&amp;gt;&lt;br /&gt;
API URL=#search_url#&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;Cfhttp url=&amp;quot;#search_url##authKey#&amp;quot; method=&amp;quot;GET&amp;quot; result=&amp;quot;result&amp;quot; charset=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;cfset contactJSON = result.FileContent /&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;Json Packet:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;Cfdump var=&amp;quot;#contactJSON#&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;cfset contact = deserializejson(contactJSON) /&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var=&amp;quot;#contact#&amp;quot; label=&amp;quot;Decoded Json&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Cfoutput&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=99</id>
		<title>API Return Format</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=99"/>
		<updated>2022-09-21T20:12:22Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A_api_guide]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The API uses the REST methodology and can return data back to the sender in a number of formats.  They are:&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Simply put the return format in the url string right after the /i4a/api/ part of the url.  By default each format will set the content-type in the HTML header.  This is known to cause problems with some browsers and frameworks.  If you are experiencing issues you can append _noheader to the format name and the data will be returned to you &amp;quot;RAW&amp;quot; with no headers being set.  For instance you can could pass:&lt;br /&gt;
&lt;br /&gt;
/i4a/api/json_noheader/membership.contact/24228 and it would return the same json data, but would not populate the HEADER that is returned to the calling page.&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
Json is a compact text based format, that at first glance looks somewhat like a traditional CSV file.  It is becoming very popular with Web 2.0 and is used most often with AJAX.&lt;br /&gt;
&lt;br /&gt;
=== xml ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== wddx ===&lt;br /&gt;
Wddx is nothing more than a specialized XML packet.  It has a defined stucture in how the XML is organized, but otherwise it is identical to an XML document.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* https://www.json.org/ - The source for information on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/JSON - Wikipedia article on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/XML - Wikipedia article on xml format&lt;br /&gt;
* https://en.wikipedia.org/wiki/Wddx - Wikipedia article on wddx format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Additional_Examples&amp;diff=98</id>
		<title>Additional Examples</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Additional_Examples&amp;diff=98"/>
		<updated>2022-09-21T20:12:03Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Filtering on Member Type and Expiration Date using the API==&lt;br /&gt;
&lt;br /&gt;
The i4a system can be configured to use the Individual Database Model or the Organizational Database Model. The simplest way to determine the database model is to check for the presence of Manage Organizations on the Membership dropdown menu in the i4a system. If it is present, the system is configured to use the Organizational Database Model, and if it is absent, it is using the Individual Database Model. &lt;br /&gt;
&lt;br /&gt;
===Selecting a Data Source to use with the API===&lt;br /&gt;
&lt;br /&gt;
Here are the two main views that can be used with the API. Contact i4a for support if you are not able to get what you need using these views, or from the tables in the examples provided.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ams_contactinformation_membertype&#039;&#039;&#039; -  Includes the &amp;quot;membertype&amp;quot; field which contains the record&#039;s Member Type if it is populated. The &amp;quot;paidthru&amp;quot; field contains the record&#039;s Expiration Date. Records with a member type and a future expiration date are current members. &#039;&#039;&#039;&#039;&#039;Use this with the individual database model only.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ams_contactinformation_corptype&#039;&#039;&#039; - Includes the &amp;quot;corptype&amp;quot; field which contains the record&#039;s Member Type if it is populated. The &amp;quot;corpexpiration&amp;quot; field contains the record&#039;s Expiration Date. Records with a member type and a future expiration date are current members. &#039;&#039;&#039;&#039;&#039;Use this with the organizational database model only.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below are some examples specific to each database model:&lt;br /&gt;
&lt;br /&gt;
===Individual Database Model Examples===&lt;br /&gt;
&lt;br /&gt;
The examples below uses the view ams_contactinformation_membertype. This view should only be used with the i4a Individual Database Model:&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation_membertype/membertype=Regular:isActive=1/&amp;lt;authkey&amp;gt; - This example&#039;s only purpose is to show how you could filter for a specific member type using this view. The search string &amp;quot;Regular&amp;quot; should be replaced by the name of a member type that exists in the database you are querying. Returns a json packet that contains all active database records where the member type is Regular. Current and expired members would be returned in this example. &lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation_membertype/membertype is not null/&amp;lt;authkey&amp;gt; - Returns a json packet that contains all matching records that have a member type. Current and expired members would be returned in this example.&lt;br /&gt;
&lt;br /&gt;
===Organizational Database Model Examples===&lt;br /&gt;
&lt;br /&gt;
The following example uses the view ams_contactinformation_corptype. This view should only be used with the i4a Organizational Database Model. &lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation_corptype/corptype=Regular:isActive=1/&amp;lt;authkey&amp;gt; - This example&#039;s only purpose is to show how you could filter for a specific member type using this view. In this specific view, the member type field is called corptype. The search string &amp;quot;Regular&amp;quot; should be replaced by the name of a member type that exists in the database you are querying. Returns a json packet that contains all active database records where the member type is Regular.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[I4A API Guide]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Main_Page&amp;diff=94</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Main_Page&amp;diff=94"/>
		<updated>2022-09-21T19:42:32Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the I4A API Wiki.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I4a provides an API that allows you to access your data remotely and programmatically.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [[I4A api guide]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=Main_Page&amp;diff=93</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=Main_Page&amp;diff=93"/>
		<updated>2022-09-21T19:41:35Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the I4A API Wiki.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I4a provides an API that allows you to access your data remotely and programmatically.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [[I4A API Guide]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=92</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=92"/>
		<updated>2022-09-21T19:40:08Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/firstName like Rob/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=90</id>
		<title>API Return Format</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=API_Return_Format&amp;diff=90"/>
		<updated>2022-09-21T19:24:27Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[I4A_api_guide]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The API uses the REST methodology and can return data back to the sender in a number of formats.  They are:&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Simply put the return format in the url string right after the /i4a/api/ part of the url.  By default each format will set the content-type in the HTML header.  This is known to cause problems with some browsers and frameworks.  If you are experiencing issues you can append _noheader to the format name and the data will be returned to you &amp;quot;RAW&amp;quot; with no headers being set.  For instance you can could pass:&lt;br /&gt;
&lt;br /&gt;
/i4a/api/json_noheader/membership.contact/24228 and it would return the same json data, but would not populate the HEADER that is returned to the calling page.&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
Json is a compact text based format, that at first glance looks somewhat like a traditional CSV file.  It is becoming very popular with Web 2.0 and is used most often with AJAX.&lt;br /&gt;
&lt;br /&gt;
=== xml ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== wddx ===&lt;br /&gt;
Wddx is nothing more than a specialized XML packet.  It has a defined stucture in how the XML is organized, but otherwise it is identical to an XML document.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* https://www.json.org/ - The source for information on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/JSON - Wikipedia article on json format&lt;br /&gt;
* https://en.wikipedia.org/wiki/XML - Wikipedia article on xml format&lt;br /&gt;
* https://en.wikipedia.org/wiki/Wddx - Wikipedia article on wddx format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=89</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=89"/>
		<updated>2022-09-21T19:22:58Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/json/membership.contacts/city like Chicago/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://&amp;lt;yourwebsite.com&amp;gt;/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=88</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=88"/>
		<updated>2022-09-21T19:20:44Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://yourwebsite.com/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://yourwebsite.com/i4a/api/json/membership.contacts/city like Chicago/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;https://yourwebsite.com/i4a/api/&amp;lt;/nowiki&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=87</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=87"/>
		<updated>2022-09-21T19:19:11Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://yoursite.com/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://yoursite.com/i4a/api/json/membership.contacts/city like Chicago/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;https://yoursite.com/i4a/api/&amp;lt;/code&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=86</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=86"/>
		<updated>2022-09-21T19:18:49Z</updated>

		<summary type="html">&lt;p&gt;Andrea: /* REST Authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;yoursite.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://site.com/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://site.com/i4a/api/json/membership.contacts/city like Chicago/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;https://site.com/i4a/api/&amp;lt;/code&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=85</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=85"/>
		<updated>2022-09-21T19:16:05Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations REST API.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object. So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively. There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  &lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain the values needed to authenticate and update them if need be.&lt;br /&gt;
&lt;br /&gt;
=== REST Authentication ===&lt;br /&gt;
REST is the preferred method of authenticating with your API.&lt;br /&gt;
To authenticate with REST you would simply navigate to:&lt;br /&gt;
* &amp;lt;pre&amp;gt;https://&amp;lt;site.com&amp;gt;/i4a/api/authenticate/&amp;lt;USER&amp;gt;/&amp;lt;PASSWORD&amp;gt;/&amp;lt;TOKEN&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get back a JSON packet which will contain your &#039;&#039;&#039;authKey&#039;&#039;&#039; which you can then use to make calls to the API.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Soap Authentication ===&lt;br /&gt;
&#039;&#039;&#039;This method is deprecated and should no longer be used for new projects.&#039;&#039;&#039;&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;https://&amp;lt;site.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode. The API engine uses the REST method. REST allows you to utilize GET, POST and DELETE methods. Currently the i4a API only supports GET, which means the API is &#039;&#039;&#039;read-only&#039;&#039;&#039; at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser. First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://site.com/i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://site.com/i4a/api/json/membership.contacts/city like Chicago/&amp;lt;authkey&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;https://site.com/i4a/api/&amp;lt;/code&amp;gt; - this is the base URL that every API call will have in common.&lt;br /&gt;
* /json/ - this tells the processor what format to return data in. The options here are JSON, XML and WDDX. JSON is the fastest format and also more common when using AJAX. For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - this tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - this allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=john/ - returns records that match firstname=john&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter. This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228/&amp;lt;authkey&amp;gt; - returns an XML packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228/&amp;lt;authkey&amp;gt; - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
The above examples are only relevant when referencing i4a objects. When interacting with views as below, you must always specify the name/value pair.&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/id=24228/&amp;lt;authkey&amp;gt; - Returns a JSON packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname like L/&amp;lt;authkey&amp;gt; - Returns a JSON packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.ams_contactinformation/lastname Like L:isActive=1/&amp;lt;authkey&amp;gt; - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/&amp;lt;authkey&amp;gt; - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/&amp;lt;authkey&amp;gt; - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Additional Examples]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
&amp;lt;!-- * [[i4a api Ajax Example|AJAX Example]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the XML data in a user-friendly format by going into the developer tools for the browsers. For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display JSON data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page. The XML viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display JSON data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats; it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
	<entry>
		<id>https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=41</id>
		<title>I4A API Guide v1 Deprecated March 31, 2024</title>
		<link rel="alternate" type="text/html" href="https://api.i4a.com/index.php?title=I4A_API_Guide_v1_Deprecated_March_31,_2024&amp;diff=41"/>
		<updated>2011-11-03T15:47:24Z</updated>

		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I4A API Guide =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide will outline how to use the Internet4associations API.  The api makes use of the SOAP protocol for authentication only.  All other aspects of the API use REST.&lt;br /&gt;
&lt;br /&gt;
Currently the API determines if the user wishes to retrieve an Object or a Collection based on the plurality of the object.  So requesting: /membership.contact/ and /membership.contacts/ will access the object and the collection respectively.   There is also a /view.XXX/ method that will allow you to retrieve a table or view directly, however that mode is and always will be READONLY.&lt;br /&gt;
&lt;br /&gt;
==  Security ==&lt;br /&gt;
To access any of the API functionality, you must first authenticate.  This can come in one of 2 forms:&lt;br /&gt;
* Use the SOAP method authenticateAdmin that is available from the SOAP WSDL located at: &lt;br /&gt;
** &amp;lt;pre&amp;gt;http://&amp;lt;site.com&amp;gt;/i4a/utilities/authenticate.cfc?wsdl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authenticateAdmin takes 3 parameters, they are:&lt;br /&gt;
*  Username: Must be an administrator username capable of logging onto the site admin.&lt;br /&gt;
*  Password: the password for the user.&lt;br /&gt;
*  Token: The Token is specific to each website.  It will be made available in your site admin.&lt;br /&gt;
&lt;br /&gt;
Information is available on the [[API Settings]] page on how to obtain these values and update them if need be.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Calling the API involves building a URL that the API engine can decode.  The API engine uses the REST method.  REST allows you to utilize GET, POST and DELETE methods.  Currently the i4a api only supports GET, which means the API is read-only at this time.&lt;br /&gt;
&lt;br /&gt;
To access the API you can test it in your browser.  First you should login to your admin, then direct your page to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://site.com/i4a/api/json/membership.contact/24228&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another method could be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://site.com/i4a/api/json/membership.contacts/city like Chicago/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The REST command is broken up into several parts, they are from left-right&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;http://site.com/i4a/api/&amp;lt;/code&amp;gt; - this is the base url that every api call will have in common&lt;br /&gt;
* /json/ This tells the processor what format to return data in.  The options here are Json, XML and WDDX.  Json is the fastest format and also more common when using AJAX.  For more information see [[api_return_format|API Return Format]]&lt;br /&gt;
* /membership.contact/ - This tells the processor what object or table to access.  &lt;br /&gt;
* /city like Chicago/ - This allows you to filter your results.&lt;br /&gt;
&lt;br /&gt;
=== Filtering ===&lt;br /&gt;
Some examples:&lt;br /&gt;
&lt;br /&gt;
* /firstname=don/ - returns records that match firstname=don&lt;br /&gt;
* /City Like Chicago/ - returns records where the city field starts with Chicago&lt;br /&gt;
* /City CONTAINS CAN/ - finds records where the city field contains the string &#039;CAN&#039;&lt;br /&gt;
* /logincount &amp;gt; 500 / (Need to test this&lt;br /&gt;
* /NULL/ - For querying a collection of records, this would allow for NO filter.  This is required because simply leaving the filter empty results in 2 // and the 2nd / is removed by apache during the processing.&lt;br /&gt;
&lt;br /&gt;
== API Objects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Examples ==&lt;br /&gt;
None of these examples include the authKey that would be appended to the end of the string.  It&#039;s assumed that it would be added to all of these in  a real world scenario&lt;br /&gt;
&lt;br /&gt;
* /i4a/api/json/membership.contact/24228 - Returns a json packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/xml/membership.contact/24228 - returns an xml packet for contact record ID = 24228&lt;br /&gt;
* /i4a/api/wddx/membership.contact/24228 - Returns a WDDX packet for contct record ID = 24228&lt;br /&gt;
* /i4a/api/json/view.All Contacts/lastname like L/ - Returns a json packet that would contain all matching records where lastname started with the letter L&lt;br /&gt;
* /i4a/api/json/view.All Contacts/lastname Like L:isActive=1/ - Same as above, but further filters by isActive = 1&lt;br /&gt;
* /i4a/api/json/membership.contacts/ - returns all records from the table related to the ORM object com.om.collections.membership.contacts.&lt;br /&gt;
* /i4a/api/json/view.ams_contact/ - returns the same recordset as the example above, but interacts directly with the table itself.&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;br /&gt;
&lt;br /&gt;
== Implemention Examples ==&lt;br /&gt;
* [[i4a api ColdFusion Example|ColdFusion Example]]&lt;br /&gt;
* [[i4a api PHP Example|PHP Example]]&lt;br /&gt;
* [[i4a api Ajax Example|AJax Example]]&lt;br /&gt;
&lt;br /&gt;
== Testing the API ==&lt;br /&gt;
Testing the API and inspecting the data returned is very easily achieved with any modern browser.  It is worth noting that by default, only Firefox will display XML (if the header is set to text/xml) in a readable format.  It is possible however in both Google Chrome and Safari to view the xml data in a user-friendly format by going into the developer tools for the browsers.  For a better experience however it is recommended you install the following add-ons to each browser for a better experience:&lt;br /&gt;
&lt;br /&gt;
=== Google Chrome ===&lt;br /&gt;
* https://chrome.google.com/extensions/detail/mfnjijpckfecpgchobgcfndicenjldoe - will display json data in a user-friendly format. Note: This is a great extension and displays json in a very good format, but it appears when viewing XML with the plugin below this plugin seems to insert some data at the top of the page.  The xml viewer still works fine and rest assured this information is not IN the XML packet, but rather added in after by your browser and this plugin.&lt;br /&gt;
* https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb - will display XML and WDDX in a friendly format directly in your browser page.&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
* https://addons.mozilla.org/en-US/firefox/addon/10869 - will display json data in a user-friendly format&lt;br /&gt;
&lt;br /&gt;
=== Safari ===&lt;br /&gt;
At this time there appears to be no plugins for Safari that can aid in viewing the data formats, it&#039;s recommended you use either Chrome or Firefox if you are going to be interacting with the API from the browser.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Representational_State_Transfer Wikipedia article on REST&lt;br /&gt;
* http://en.wikipedia.org/wiki/SOAP - Wikipedia Article on SOAP protocol&lt;br /&gt;
&lt;br /&gt;
[[Category:api]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>
	</entry>
</feed>