I4A API 2.0: Difference between revisions
Line 269: | Line 269: | ||
|- | |- | ||
| <code>contactID</code> | | <code>contactID</code> | ||
<small>form | | <small>form | optional</small> | ||
| The contact ID of a given contact/member. | | The contact ID of a given contact/member. Required if email is not provided. | ||
|- | |||
| <code>email</code> | |||
<small>form | optional</small> | |||
| The email address of a given contact/member. Required if contactID is not provided. | |||
|} | |} | ||
''' | '''Examples''': | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 283: | Line 287: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
''' | <syntaxhighlight lang="bash"> | ||
url --location --request POST 'https://yourdomain.com/i4a/api2/membership/' \ | |||
--header 'authKey: XXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX' \ | |||
--header 'Content-Type: application/json' \ | |||
--form 'email="email@domain.com"' | |||
</syntaxhighlight> | |||
'''Responses:''' | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"success": true, | |||
"data": { | |||
"memberstatus": "current", | |||
"ismember": true | |||
}, | |||
"error": "" | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"success": true, | |||
"data": { | |||
"memberstatus": "expired", | |||
"ismember": true | |||
}, | |||
"error": "" | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { |
Revision as of 17:03, 28 October 2022
Authentication
For security purposes, I4A API 2 will only work on a secure port through HTTPS. To access any of the API functionality, you must first authenticate. Information is available on the API Settings page on how to obtain the values needed to authenticate and update them, if need be.
Authentication Endpoint
POST /i4a/api2/authenticate/
Parameters
username
form | required |
See API Settings page on how to obtain the value. |
password
form | required |
See API Settings page on how to obtain the value. |
token
form | required |
See API Settings page on how to obtain the value. |
Example:
curl --location --request POST 'https://<yourdomain.com>/i4a/api2/authenticate/' \
--form 'username="XXXXXXXX"' \
--form 'password="XXXXXXXX"' \
--form 'token="XXXXXX-XXXX-XXXXX-XXXXXXXXXXX"'
Response:
{
"expiration": "{ts '2022-10-25 16:03:47'}",
"success": true,
"authKey": "XXXXXX-XXXX-XXXXX-XXXXXXXXXXX",
"error": ""
}
Retrieving Data
Once you have successfully obtained the authKey, you can then access a few different read-only endpoints. Note: Your authKey will expire after 4 hours.
Contacts Endpoint
Retrieve contact/member data from the database.
POST /i4a/api2/contacts/
Parameters
authKey
header | required |
The authKey you received during authentication. |
Content-Type
header | required |
Set this to application/json .
|
filter
form | optional |
This is the query filter.
Basic usage: Advanced usage: You can write your own query filter as such: |
filterOperator
form | optional |
This can be either 'OR' or 'AND' (default). Only applicable when filter is used with colons. |
pageSize
form | optional |
The number of results to return. Maximum is 100 (default). |
page
form | optional |
The page number, starting at 1 (default). This is useful when your query returns more records than the 'pageSize' allows. |
Example:
curl --location --request POST 'https://yourdomain.com/i4a/api2/contacts/' \
--header 'authKey: XXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--form 'filter="lastName:Doe"'
Response:
{
"success": true,
"data": [
{
"zip": "12345",
"corpexpiration": "",
"c_user_memo": "",
"firstname": "John",
"customid": "649",
"email": "john@site.com",
"contactid": "693681",
"corptype": "",
"country": "US",
"lastname": "Doe",
"iscorp": 0,
"corpjoindate": "",
"id": "693681",
"middle": "",
"c_user_photo": "",
"orgid": "150514",
"suffix": "",
"creationdate": "2021-11-08 15:31:50.0",
"modifiedby": "692686",
"c_user_gender": "",
"modifieddate": "2021-11-08 15:31:50.0",
"isemail": 0,
"c_user_graduationdate": "",
"datedropped": "",
"isactive": 1,
"daterenewed": "",
"company": "",
"region": "",
"c_user_birthday": "",
"prefix": "",
"review": 0,
"c_user_certified": "",
"ccmail": "",
"c_user_uploadbio": "",
"phone": "555-1234",
"state": "OH",
"paidthru": "",
"c_user_end_market": "",
"primarycontact": "693681",
"url": "",
"member_status": "",
"address1": "555 Street",
"isdirectory": 1,
"address3": "",
"address2": "",
"datejoined": "",
"c_user_occupation": "",
"addid": "140467",
"groupid": "693681",
"city": "Cincinnati",
"isprimary": 1,
"informalname": "",
"title": "",
"fax": "",
"c_user_resume": ""
}
],
"error": "",
"page": 1,
"pagesize": "100"
}
Views Endpoint
Retrieve data from any view in the database.
POST /i4a/api2/views/
Parameters
authKey
header | required |
The authKey you received during authentication. |
Content-Type
header | required |
Set this to application/json .
|
view
form | required |
This is the name of the view for the query. |
filter
form | optional |
This is the query filter.
Basic usage: Advanced usage: You can write your own query filter as such: |
filterOperator
form | optional |
This can be either 'OR' or 'AND' (default). Only applicable when filter is used with colons. |
pageSize
form | optional |
The number of results to return. Maximum is 100 (default). |
page
form | optional |
The page number, starting at 1 (default). This is useful when your query returns more records than the 'pageSize' allows. |
Example:
curl --location --request POST 'https://yourdomain.com/i4a/api2/views/' \
--header 'authKey: XXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--form 'filter="TYPE IN ('\''Cash'\'', '\''Income'\'') AND title LIKE '\''%Membership%'\''"' \
--form 'view="chart of accounts"'
Response:
{
"success": true,
"data": [
{
"title": "Membership Dues",
"id": "8",
"gl_number": "6000",
"description": "Membership Dues General",
"type": "Income"
},
{
"title": "Membership Extra Dues",
"id": "32",
"gl_number": "7988-66",
"description": "Membership Extra Dues",
"type": "Income"
}
],
"error": "",
"page": 1,
"pagesize": "100"
}
Membership Endpoint
POST /i4a/api2/membership/
Parameters
authKey
header | required |
The authKey you received during authentication. |
Content-Type
header | required |
Set this to application/json .
|
contactID
form | optional |
The contact ID of a given contact/member. Required if email is not provided. |
email
form | optional |
The email address of a given contact/member. Required if contactID is not provided. |
Examples:
url --location --request POST 'https://yourdomain.com/i4a/api2/membership/' \
--header 'authKey: XXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--form 'contactID="12345"'
url --location --request POST 'https://yourdomain.com/i4a/api2/membership/' \
--header 'authKey: XXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--form 'email="email@domain.com"'
Responses:
{
"success": true,
"data": {
"memberstatus": "current",
"ismember": true
},
"error": ""
}
{
"success": true,
"data": {
"memberstatus": "expired",
"ismember": true
},
"error": ""
}
{
"success": true,
"data": {
"memberstatus": "non-member",
"ismember": false
},
"error": ""
}